ハードスイッチによる hostapd の起動・停止

USBメモリーでhostapdを起動する案・・・「hostapd USBスイッチ追加」の続き。

Wi-Fiアダプタが外付けでUSBハブの個別スイッチにてON-OFFできる場合は、USBメモリーの検出・非検出でワンクッション置く必要もなく、Wi-Fiアダプタの検出・非検出をトリガーにhostapdを起動・停止すれば良く、新たに常駐スクリプトを設置。

次の様に起動して常駐しておく。
/usr/local/bin/hostap_auto_sw.sh wlx9cefd5fb7b50 2>&1 | logger -t hostap_auto_sw.sh &

hostapdを停止する前にデバイスを外すことになり、やや強引だがシステム上の問題は皆無。

これで、USBメモリーの無駄な電力を節約できる。
ケースの中にあるオンボードのデバイスではこれは使えず、わざわざ個別スイッチ付きのUSBハブを買った甲斐があった。

いずれにせよ、そこまでしてhostapdに拘る価値があるかは別問題(笑)

----------------------------------------
パンダ、当日届いて早速使用。

目論見通り、USBメモリーとは無関係に個別スイッチONでhostapdがバッチリ起動。
性能的にもRTL8192EUとほぼ同じで問題無し。

USBハブの個別スイッチに付属のLED表示で、hostapdが起動中であることが判り、視認性もプラス。

ただ、このデバイスは電界強度が高い分消費電力が高めで、ピーク500mA程度まで上がる。
ハブ経由で供給している5Vが瞬間的に4.5Vを下回ることがある・・・当面誤動作は起きてないけど・・・

以下、USBハブの個別スイッチONによるhostapdの起動から、USBハブの個別スイッチOFFによるhostapdの停止までに関係するログ。

*個別スイッチON
Dec 3 19:49:16 gw0 kernel: [1499954.012399] usb 1-4.4: new high-speed USB device number 59 using xhci_hcd
Dec 3 19:49:17 gw0 kernel: [1499954.131537] usb 1-4.4: New USB device found, idVendor=148f, idProduct=5372, bcdDevice= 1.01
Dec 3 19:49:17 gw0 kernel: [1499954.131545] usb 1-4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 3 19:49:17 gw0 kernel: [1499954.131550] usb 1-4.4: Product: 802.11 n WLAN
Dec 3 19:49:17 gw0 kernel: [1499954.131554] usb 1-4.4: Manufacturer: Ralink
Dec 3 19:49:17 gw0 kernel: [1499954.220767] usb 1-4.4: reset high-speed USB device number 59 using xhci_hcd
Dec 3 19:49:17 gw0 kernel: [1499954.332542] ieee80211 phy13: rt2x00_set_rt: Info - RT chipset 5392, rev 0223 detected
Dec 3 19:49:17 gw0 kernel: [1499954.345220] ieee80211 phy13: rt2x00_set_rf: Info - RF chipset 5372 detected
Dec 3 19:49:17 gw0 kernel: [1499954.368527] rt2800usb 1-4.4:1.0 wlx9cefd5fb7b50: renamed from wlan0
Dec 3 19:49:18 gw0 kernel: [1499955.757615] ieee80211 phy13: rt2x00lib_request_firmware: Info - Loading firmware file ‘rt2870.bin’
Dec 3 19:49:18 gw0 kernel: [1499955.757668] rt2800usb 1-4.4:1.0: firmware: direct-loading firmware rt2870.bin
Dec 3 19:49:18 gw0 kernel: [1499955.757674] ieee80211 phy13: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.36
Dec 3 19:49:18 gw0 kernel: [1499955.945277] IPv6: ADDRCONF(NETDEV_UP): wlx9cefd5fb7b50: link is not ready
Dec 3 19:49:18 gw0 kernel: [1499955.946274] br0: port 3(wlx9cefd5fb7b50) entered blocking state
Dec 3 19:49:18 gw0 kernel: [1499955.946279] br0: port 3(wlx9cefd5fb7b50) entered disabled state
Dec 3 19:49:18 gw0 kernel: [1499955.946510] device wlx9cefd5fb7b50 entered promiscuous mode
Dec 3 19:49:18 gw0 hostap_auto_sw.sh: hostAP manually srarted 2020年 12月 3日 木曜日 19:49:18 JST
Dec 3 19:49:20 gw0 kernel: [1499957.302902] IPv6: ADDRCONF(NETDEV_CHANGE): wlx9cefd5fb7b50: link becomes ready
Dec 3 19:49:20 gw0 kernel: [1499957.302977] br0: port 3(wlx9cefd5fb7b50) entered blocking state
Dec 3 19:49:20 gw0 kernel: [1499957.302980] br0: port 3(wlx9cefd5fb7b50) entered forwarding state

*個別スイッチOFF
Dec 3 21:46:43 gw0 kernel: [1507001.062346] usb 1-4.4: USB disconnect, device number 59
Dec 3 21:46:43 gw0 kernel: [1507001.063051] xhci_hcd 0000:00:15.0: WARN Cannot submit Set TR Deq Ptr
Dec 3 21:46:43 gw0 kernel: [1507001.063054] xhci_hcd 0000:00:15.0: A Set TR Deq Ptr command is pending.
Dec 3 21:46:43 gw0 kernel: [1507001.083958] br0: port 3(wlx9cefd5fb7b50) entered disabled state
Dec 3 21:46:43 gw0 kernel: [1507001.103075] device wlx9cefd5fb7b50 left promiscuous mode
Dec 3 21:46:43 gw0 kernel: [1507001.103083] br0: port 3(wlx9cefd5fb7b50) entered disabled state
Dec 3 21:46:49 gw0 hostap_auto_sw.sh: hostAP manually stopped 2020年 12月 3日 木曜日 21:46:49 JST

hostapd停止前のwlx9cefd5fb7b50 がUP状態で強引にデバイスを切り離すのでウォーニングが出るが、運用上は一切問題無し!