Přepojování USB WiFi v OpenWrt

Přepojování USB WiFi v OpenWrt
« kdy: 12. 08. 2022, 16:36:44 »
Zdravím borce přes OpenWrt. Mám jeden starší x86-64 stroj, který používám jako router/AP (OpenWrt 21.02.…) s tím, že WiFi je tam realizováno pomocí USB donglu. V /etc/config/wireless mi vygeneroval config, který po dalších drobných úpravách vypadá např. takto:
Kód: [Vybrat]
config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11g'
        option path 'pci0000:00/0000:00:1d.7/usb2/2-2/2-2:1.0'
        option country 'CZ'
        option cell_density '3'
        option txpower '20'
        option channel '11'
        option htmode 'HT40'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option encryption 'psk2+ccmp'
        option key 'nejakykey'
        option ssid 'nejakysid'

Pak jsem ale přehodil USB WiFi do jiného portu a přidala se tam sekce config wifi-device 'radio1' s option path 'pci0000:00/0000:00:1d.7/usb2/2-5/2-5:1.0' + odpovídající config wifi-iface 'default_radio1', která obsahovala nějaký default s otevřeným SID OpenWrt. Chápu to tak, že cesta k tomu USB fífulu se přepojením do jiného portu mění a OpenWrt ji považuje za další zařízení a tedy mu udělá vlastní konfiguraci.

Můj dotaz zní: lze to udělat blbuvzdorně nějak tak, aby daná konfigurace byla vázaná spíš na MAC adresu daného WiFi adaptéru než na to, kam je fyzicky připojen? Aby až to zase někdo přehodí jinam, se to chovalo pořád stejně. A tím nemyslím udělat kopec sekcí …radioX pro všechny USB porty s identickou konfigurací a různými cestami :).

Pokud by to jinak nešlo, ještě mě zajímá, jestli lze beztrestně udělat něco jako kotel sekcí typu config wifi-device 'radioX' (každý se svou option path podle daného USB portu) a k nim společnou sekci config wifi-iface 'default_radio0' s nějakou možností odkázat se na všechny ty wifi-device? Protože v tom wireless souboru by jinak byla hromada config wifi-iface lišící se jen tím odkazem na daný device, ale všechno by jinak bylo identické/duplicitní.

Díky.
« Poslední změna: 12. 08. 2022, 16:41:39 od WIFT ​​​​​​​​​​ »


Re:Přepojování USB WiFi v OpenWrt
« Odpověď #1 kdy: 12. 08. 2022, 20:05:32 »
Neumím s OpenWRT, ale pokud to neumí, dá se to určitě řešit v udev.

k3dAR

  • *****
  • 3 029
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Přepojování USB WiFi v OpenWrt
« Odpověď #2 kdy: 13. 08. 2022, 09:01:44 »
asi to primo nepujde,
neprimo pres zminenej udev leda si napsat skript co po pripojeni path toho usb nahradi v /etc/config/wireless a asi restartne wireless... pripadne ohackovat skript(y) co to automaticke pridani ted zajistujou
Kód: [Vybrat]
/lib/netifd/mac80211.sh
/lib/netifd/wireless/mac80211.sh
/lib/wifi/mac80211.sh

Re:Přepojování USB WiFi v OpenWrt
« Odpověď #3 kdy: 15. 08. 2022, 23:26:09 »
Díky za info. Zkrátka budu hlídat, že to někdo nepřehodil jinam, a pokud ano, prostě udělám víc identických configů. Cesta nejmenšího odporu imho. S udev jsem zatím do styku nepřišel, takže až bude čas (v příštím životě ještě nemám nic naplánováno), tak pak možná :).

Re:Přepojování USB WiFi v OpenWrt
« Odpověď #4 kdy: 16. 08. 2022, 03:21:10 »
podobny problem obcas resim s eth. popisovacka/nalepka "kabel sem ->" to zatim vzdy vyresila naprosto neprustrelne.


Re:Přepojování USB WiFi v OpenWrt
« Odpověď #5 kdy: 16. 08. 2022, 06:45:56 »
OpenWrt neznám, ale v udev se dá podle vendor-id přiřadit rozhraní (např. radio0) a je jedno ve kterém USB portu wifi dongle je.

k3dAR

  • *****
  • 3 029
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Přepojování USB WiFi v OpenWrt
« Odpověď #6 kdy: 16. 08. 2022, 08:01:58 »
OpenWrt neznám, ale v udev se dá podle vendor-id přiřadit rozhraní (např. radio0) a je jedno ve kterém USB portu wifi dongle je.
myslim ale ze OpenWRT nekonfiguruje rozhrani ale zarizeni dle /sys/devices/* a navic viz dale:

@WIFT dalsi poznatek, ackoliv by udev slo doinstalovat, by default OpenWRT misto nej pouziva hotplug...
a vidim (na sverm routeru) pravidla v /etc/hotplug.d/ieee80211/ (pousti je v abecednim poradi)
10-wifi-detect mozna je prvopocatek te tve pridavane konfigurace, ale zaroven vidim 00-wifi-migration coz na letmy pohled vypada ze je co sem psal at si napises, tedy ze z detekovaneho vlozeneho zarizeni zjisti path a zmeni ji ve stavajici sekci  /etc/config/wireless...
takze velmi teoreticky by mozna stacilo v tom souboru /etc/hotplug.d/ieee80211/00-wifi-migration pridat detekci vsech tvych usb cest a vyvolat zmenu...
za radek "case ${path} in" pridat
Kód: [Vybrat]
"pci0000:00/0000:00:1d.7/usb2/2-2/2-2:1.0"|\
"pci0000:00/0000:00:1d.7/dalsi_tva_cesta"|\
"pci0000:00/0000:00:1d.7/usb2/2-5/2-5:1.0")
WIFI_PATH_CHANGED=1
;;

a pak je mozna (stale velmi teoreticky) ze hotplug pravidlo 00-wifi-migration zmeni na novou path v /etc/config/wireless a naslednej 10-wifi-detect uz neuvidi novou wifi takze nic uz neprida... :-)

pripadne mozna misto toho vyjmenovani tvejch usb cest, uplne na prasaka nechat vyvolat zmenu "path" pri jakekoliv vlozene a hotplug zachycene ieee80211
v /etc/hotplug.d/ieee80211/00-wifi-migration jen zmenit
Kód: [Vybrat]
*)
return 0
;;
na
Kód: [Vybrat]
*)
WIFI_PATH_CHANGED=1
;;

jfila

Re:Přepojování USB WiFi v OpenWrt
« Odpověď #7 kdy: 16. 08. 2022, 09:22:18 »
Něco podobného jsem řešil, ale pro USB tiskárny. Měl jsem simlink pro každou tiskárnu a právě pomocí hotplugu je vytvářel. Podle PID a VID jsem rozpoznal o jaké záření se jedná a vytvořil simlink.