Arch Linux で自動的にWi-Fi接続されなくなった

NetworkManager と Realtek Wi-Fiでうまくいかない

しばらく点けっぱなしにしてた Arch Linux マシーンを再起動したら Wi-Fi 自動接続してくれなくなった。パッケージをアップグレードしたので、毎度のローリング・リリースに纏わる問題か。ともかくNetworkManagerを使うのが我的本流(?)なので、wicdとかにせず解決しておきたい、と思った。

こういう事は以前にもあったのだが、OS再インストールとかでうやむやになっていたような気が…。ネットワークって難しいし。

アイコン(nm-applet)をクリックすると表示されるはずのWi-Fiネットワークの利用可能一覧が表示されない。けれど、”非表示Wi-Fiネットワークに接続…” からならプロファイルを選べるし、あるいは、”nmcli connection up <profile name>” でとりあえず繋がった。

しかしこのままでは起動時に自動接続してくれない。せっかくの NetworkManager なのだからいちいち手動でつなぐっていうのはなしにしたい。

そこで /etc/NetworkManager/system-connection 下にあるプロファイルファイルの [connect] セクションに autoconnect=true と直接書き加えてみたのだけれど、だめだった。

そこでやっとログを覗いてみたら、ログイン後から先程手動接続するまでの間に、

<warn>  [1474950733.7129] device (wlp0sxxxxxx): set-hw-addr: new MAC address D2:CF:56:xx:xx:xx not successfully set (scanning)
<info>  [1474950733.7132] device (wlp0sxxxxxx): supplicant interface state: inactive -> disabled
<info>  [1474950733.7137] device (wlp0sxxxxxx): supplicant interface state: disabled -> inactive

という行の繰り返しが大半を占めている。つなごうとしてつながらない感じなんだろうか。

使っている無線LAN子機は Planex の GW-USSuper300。台座のマグネットで金属にバチンと貼り付けて使えるやつ。

$ lsusb
----
Bus 001 Device 003: ID 2019:4901 PLANEX GW-USSuper300 802.11bgn Wireless Adapter [Realtek RTL8191SU]

使われているのは Realtek RTL8191SU とでた。

アップグレードされたものは networkmanager 1.4.1dev+33+gc87b89b-1 。ネットで調べると 1.4.x の不具合対象としてRealtekとBroadcomが引っかかってくる。

ドライバ不具合とかが原因かも知れないけれど、結局、NetworkManager のバージョンアップが原因でこうなったからダウングレードすればいいじゃんということで、キャッシュを漁ってみると 1.2.5 というパッケージファイルが見つかったのでダウングレードした。

$ ls -1 /var/cache/pacman/pkg/networkmanager-*
----
/var/cache/pacman/pkg/networkmanager-1.2.2-1-x86_64.pkg.tar.xz
/var/cache/pacman/pkg/networkmanager-1.2.5dev+5+g99e34d7-1-x86_64.pkg.tar.xz
/var/cache/pacman/pkg/networkmanager-1.4.1dev+33+gc87b89b-1-x86_64.pkg.tar.xz
----
$ sudo pacman -U /var/cache/pacman/pkg/networkmanager-1.2.5dev+5+g99e34d7-1-x86_64.pkg.tar.xz

“extra/networkmanager 1.4.1dev+33+gc87b89b-1” を “1.2.5dev+5+g99e34d7-1” にダウングレード。

これで再起動してみたら、元通り、なんの問題もなく自動的につながってくれた。

これでしばらく様子をみることにしよう。

でも pacman -Syu とやってアップグレードかけると候補にまた NetworkManager があがってしまう。これじゃあ同じことの繰り返しになるので /etc/pacman.conf に “IgnorePkg = networkmanager” と追記しておいた。こうしておくとパッケージ更新を無視してくれると ArchWiki にかいてあった。

… という、結局ダウングレードっていうオチ。でもダウングレードとか今まであんまやってなかったなと思って、その備忘メモとして。