YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-03-20 (水)


[一語一絵/IT系]

Linux Wifiまとめ / 2015-04-02 (木)

WLI-UC-GNWLI-UC-GNMWLI-UC-GNM2という3つの新定番が確立した、LinuxなWifi環境のおさらい。

製品名VID:PIDコントローラドライバ使用可否
GW-US54GXS2019:5303zd1211bzd1211rw
GW-USMicroN2019:ed14RT3070-×
GW-USWExtreme2019:ed17RTL8188CUSrtl8192cu
GW-US300MiniS2019:ab24RT2870rt2800usb
WLI-UC-GN0411:015dRT3070rt2800usb
WLI-UC-GNM0411:01a2RT8070rt2800usb
WLI-UC-GNM20411:01eeRT3070rt2800usb
WDC-433SU2M7392:b711MT7610U-×
ここまで、GUIなNetwork-Managerで動作確認を行ってきた結果を右の表に纏めてみた。

しかし、お仕事的にはサーバやリモート端末などNetwork-Managerを使えないターミナルUI環境での活用が中心なので、次のステップとしてwpa_supplicantでの動作検証を行う。

まずは[External]Community Help Wikiに従い、実行中のNetwork-Managerを停止し、自動起動の設定を手動起動に変更する。

yano@Trusty:~$ sudo stop network-manager
yano@Trusty:~$ echo "manual" | sudo tee /etc/init/network-manager.override
Network-Managerも設定ファイルの代わりにGUI操作を被せただけで、実態としてはお馴染みwpa_supplicantなので簡単…と思いつつ、なかなか接続に到らず難儀。
yano@Trusty:~$ sudo start network-manager
として再びNetwork-Managerで接続した時のログを比較してみたりしたが、何かが足りないというのはわかってもそれを活性化する為のwpa_supplicantの設定を行っているつもりなので、まさに行き詰まった状態に陥った。

まずは、ubuntuを再起動してからUSBドングルを指すというケースにおいて、接続&通信できる事で良しとするところまでハードルを下げて、最終的には /etc/wpa_supplicant/wpa_supplicant.conf/etc/networking/interfaces

yano@Trusty:~$ cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root

network={
    scan_ssid=0
    proto=WPA RSN
    key_mgmt=WPA-PSK
    auth_alg=OPEN
    pairwise=CCMP TKIP
    group=CCMP TKIP
    ssid="TEST-WIFI"
    #psk="passphrase"
    psk=9271f8b3376c756b2eafb25b0632b0b09a6b51bf688cc6f79ede98fcad114a74
}
yano@Trusty:~$
yano@Trusty:~$ cat /etc/networking/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

# primary interface
auto eth0
iface eth0 inet dhcp

# secondery interface
allow-hotplug wlan0
# manual wlan0
iface wlan0 inet dhcp
#   wpa-driver      nl80211
#   wpa-driver      wext
   wpa-conf        /etc/wpa_supplicant/wpa_supplicant.conf

yano@Trusty:~$
という構成で確認できた。

参考まで/etc/wpa_supplicant/wpa_supplicant.confに記述していたパラメータは/etc/networking/interfaces自体に

yano@Trusty:~$ cat /etc/networking/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

# primary interface
auto eth0
iface eth0 inet dhcp

# secondery interface
allow-hotplug wlan0
# manual wlan0
iface wlan0 inet dhcp
#   wpa-driver      nl80211
#   wpa-driver      wext
#   wpa-conf        /etc/wpa_supplicant/wpa_supplicant.conf
    wpa-scan-ssid   0
    wpa-proto       WPA RSN
    wpa-key-mgmt    WPA-PSK
    wpa-auth-alg    OPEN
    wpa-pairwise    CCMP TKIP
    wpa-group       CCMP TKIP
    wpa-ssid        "TEST-WIFI"
    #psk="passphrase"
    wpa-psk         9271f8b3376c756b2eafb25b0632b0b09a6b51bf688cc6f79ede98fcad114a74

yano@Trusty:~$
という風に直接書く事もできる。USBデバイスに関わらず同じWiFiに接続させるのならば前者、USBデバイス毎に異なるWiFiに接続させるのならば後者という具合に使い分ける、…という使い分けが便利そうだ。

ちなみに、ドライバインタフェースは古来より[External]wireless-extensionsとしてお馴染みのwextと、新しくユーザーランドで動作するようにセキュリティ改善されたnl80211の2種類がある。最終的にはrt2800usb等のドライバに依存する事になるので闇雲にnl80211にしてしまうのも微妙かと思われるが、指定しないと両インタフェースが共存するようなので、基本的には特に指定しないのが無難と思われる。

上記のように/etc/networking/interfaceswpa_supplicantの設定を行う事で、ethインタフェースのようにコマンドラインから

yano@Trusty:~$ sudo ifup wlan0
yano@Trusty:~$ sudo ifdown wlan0
という具合に制御できるハズだが、そう簡単にはうまくいかないのが世の常。動作確認では思い込みや先入観を排除し、USBドングルの抜き差しやubuntuのrebootも含めてトライして頂きたい。

【4/6追記】実機環境で追試してみたところ/etc/networking/interfacesの"manual"モードやifdown/ifupの操作でも問題無く動いたので、上記コマンドライン系の不具合は[External]Oracle VM VirtualBox由来の環境問題である可能性あり。

【参照】
●株式会社バッファロー BUFFALO http://buffalo.jp/
無線LAN子機
BUFFALO WLI-UC-GNM
BUFFALO WLI-UC-GNM2
●Amazon.co.jp https://www.amazon.co.jp/
BUFFALO Air Station NFINITI 11n/g/b USB用 無線子機 WLI-UC-GNM 713円
BUFFALO 11n対応 11g/b 無線LAN子機 親機-子機デュアルモード対応モデル WLI-UC-GNM2 909円