#!/bin/sh # Eigene Anpassungen (09.10.2026) nach einem Firmware-Update erneut anwenden. Idempotent. # Pfade lassen sich zum Testen ueberschreiben: H=... W=... anpassungen-anwenden H="${H:-/lib/netifd/hostapd.sh}" W="${W:-/lib/netifd/netifd-wireless.sh}" MARK="Eigene Anpassung 09.10.2026" OK=0 # 1) Landal-Client: VHT (und damit HE) abschalten if [ -f "$H" ] && ! grep -q "$MARK" "$H"; then awk -v mark="$MARK" ' { print } /^wpa_supplicant_add_network\(\)/ { f = 1 } f && !d && /\[ -n "\$ocv" \] && append network_data "ocv=\$ocv"/ { print "" print "\t# " mark ": Die Landal-Zugangspunkte kuendigen HE an, antworten aber nur mit VHT;" print "\t# der Treiber bricht dann ab. Ohne VHT (und damit ohne HE) verbindet sich der Client per HT." print "\t[ \"$_w_mode\" = \"sta\" ] && [ \"$ssid\" = \"Free WiFi Landal\" ] && append network_data \"disable_vht=1\" \"$N$T\"" d = 1 }' "$H" > "$H.neu" && grep -q "$MARK" "$H.neu" && sh -n "$H.neu" && { cp "$H" "$H.orig-vor-anpassung"; cat "$H.neu" > "$H"; OK=$((OK+1)); } rm -f "$H.neu" fi # 2) WLAN-Geraete am selben AP: multicast_to_unicast Vorgabe 0 if [ -f "$W" ] && ! grep -q "$MARK" "$W"; then sed 's|^\(\t\)\(\[ \${multicast_to_unicast:-\)1\(} -gt 0 -o \${proxy_arp:-0} -gt 0 \] \&\& json_add_boolean isolate 1\)|\1# '"$MARK"': Vorgabe 0 statt 1, damit sich WLAN-Geraete am selben Zugangspunkt erreichen\n\1\20\3|' "$W" > "$W.neu" \ && grep -q "$MARK" "$W.neu" && sh -n "$W.neu" && { cp "$W" "$W.orig-vor-anpassung"; cat "$W.neu" > "$W"; OK=$((OK+1)); } rm -f "$W.neu" fi # 3) OpenWrt 25.12: Landal-Client ohne VHT (die Client-Konfiguration entsteht in supplicant.uc) U="${U:-/usr/share/ucode/wifi/supplicant.uc}" if [ -f "$U" ] && ! grep -q "$MARK\|Eigene Anpassung 10.10.2026" "$U"; then awk '{ print } /^\tconfig\.scan_ssid = 1;$/ && !d { print "" print "\t/* Eigene Anpassung 10.10.2026: Die Landal-Zugangspunkte kuendigen HE an, antworten aber nur mit VHT." print "\t * Ohne VHT (und damit ohne HE) verbindet sich der Client per HT und laeuft stabil. */" print "\tif (config.mode == '"'"'sta'"'"' && config.ssid == '"'"'Free WiFi Landal'"'"')" print "\t\tconfig.disable_vht = true;" d = 1 }' "$U" > "$U.neu" && grep -q "Eigene Anpassung 10.10.2026" "$U.neu" && { cp "$U" "$U.orig-vor-anpassung"; cat "$U.neu" > "$U"; OK=$((OK+1)); NEEDS_WIFI=1; } rm -f "$U.neu" fi logger -t anpassungen "angewendet: $OK Anpassung(en)" [ "$NEEDS_WIFI" = 1 ] && echo "WLAN-Client neu starten: wifi down radio1; sleep 3; wifi up radio1" echo "angewendet: $OK"