Ubuntu 14.04 LTSなマシンで無線LAN接続するのに苦労したのでメモ。自分はタコなので(最近はあんまりタコって言わなくなった気がする…)、間違いとかあると思う。
最近のnmcliではコマンドの書式が違うので使えない。というか、調べても最近のnmcliの事しか見つからなかったので、あえて古い情報を書くに至ったというわけ。
古いnmcliは見えているアクセスポイント、つまり非ステルスなSSIDにしか繋ぎにいかない仕様?バグ?らしく、普通にステルスなSSIDを指定しても「Error: No network with SSID 'STEALTH_AP' found.」と直ぐ様エラーを返してきやがる。
なので、先にiwlistでステルスSSIDを指定した上でAPのスキャンを行い、ステルスSSIDを可視化してやる。(ステルス機能とはAPが自ら名前を名乗らないというだけで、正しい名前を読んであげれば応答するのである。)
# iwlist wlan0 scanning essid STEALTH_AP # nmcli device wifi connect STEALTH_AP password PASSWORD
認識されているSSIDは nmcli device wifi で確認できる。
$ nmcli device wifi SSID BSSID MODE FREQ RATE SIGNAL SECURITY ACTIVE 'DIRECT-PE-BRAVIA' 4A:E2:44:xx:xx:xx Infrastructure 2437 MHz 54 MB/s 90 WPA2 no 'STEALTH_AP' CC:E1:D5:yy:yy:yy Infrastructure 2447 MHz 54 MB/s 97 WPA2 no 'guest2' DC:FB:02:zz:zz:zz Infrastructure 2462 MHz 54 MB/s 37 WPA WPA2 no
ちなみに、古くないnmcliではhiddenオプションが追加されており、hidden yesとすることでステルスSSIDに直接繋げるようだ。ついでにいうと、NetworkManager自体は昔からhiddenオプションを持ってるので、D-Busで叩いてやればふつーに繋がる……というか、nmcliはNetworkManagerのD-Busラッパーでしかないわけだが、なぜそこの実装をサボったんだよっていう。
nmcli device wifi connect SSID password PASSWORD
nmcli device wifi connect SSID password PASSWORD iface wlan0
無線LAN以外も表示されることに注意
nmcli connection list
nmcli connection up id プロファイル名
プロファイルは初回接続時に/etc/NetworkManager/sustem-connections/の下に自動で作られる。デフォルトではSSID名になるが、nameオプションで名前指定が可能。
/-はっきり言ってLinuxはクソだと思う。-/
無線LAN接続するためのコマンドが iwconfig, wpa_cli, nmcli と3つあり、それぞれ出来ることが違ってて、同じコマンドでもバージョンで書式が微妙に違うっていうのは、多様的で自由ソフトウェアのあるべき姿を体現しており、Linuxは大変に素晴らしいものだなぁと思いました。ラブアンドピース!