あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

(Raspbian Stretch+)NetworkManager+一部のUSB無線LANドングルで接続できない場合の回避方法

Raspbian Stretchが出て、特に変わるところもなくいつも通りに初期セットアップして使おうとしていたんですが、無線LANは相変わらずNetworkManagerで設定していたら、自動接続できたりできなかったりすることに気づきました。NetworkManagerのセットアップはここにAnsible Playbookを置いてます。

github.com

で、調べてみると/var/log/syslogあたりでNetworkManagerが接続しようとして認証のあたりで失敗し続ける様子が見られました。ググると以下の内容に該当していました。

#842422 - network-manager: NetworkManager fails to authenticate with old 802.11bg USB devices - Debian Bug report logs
Bug #1681513 “Ubuntu 17.04/17.10: New feature in NetworkManager ...” : Bugs : network-manager package : Ubuntu

だいたいの報告例はRalinkで、私の手持ちで再現したものもすべてRalinkでした。回避方法は2つほどあるようですが、/etc/NetworkManager/NetworkManager.confに以下の設定を追記することで回避できました。

[device]
wifi.scan-rand-mac-address=no

wifi.scan-rand-mac-addressはアクセスポイントのスキャンをする時にランダムなMACアドレスに詐称して実行するオプションで、プライバシーの観点からそういう機能がついているようです。昔はwpa_supplicantの機能との組み合わせだったようですが、1.4.0からNetworkManager自身でできるようになったそうです。↓のブログを斜め読みしただけだけど。

MAC Address Spoofing in NetworkManager 1.4.0 – Thomas Haller's Blog

Rsspbianに限らず、たぶんNetworkManagerが入っていれば該当するのかもしれません。なおRaspbian StretchのNetworkManaferのバージョンは1.6.2-3でした。プライバシー的な問題を気にしなければ、回避方法のままで良いのかなあ。Wi-Fi Playbookに追加するか悩ましい。