自動で wifi に繋がるようにしてみた
ももんが Advent Calendar 2012 ニ日目
一日目は さっちゃん(@ne_sachirou)で、二時間でももんがを作るヾ(〃l _ l)ノ゙ でした。
1 はじめに
やっぱり Advent Calendar 2012 のネタが思いつかなかったので今朝やったことを書いておくね。
引越しの時に、MobileCube を買ってそれでネットに繋いでいたんだけど、パソコンを起動する毎に、毎回:
% ~/bin/wireless-up.zsh
してた。
wireless-up.zsh の中身はこんな感じ:
#!/bin/zsh sudo /sbin/ifconfig wlan0 up sudo /usr/sbin/wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf sudo /usr/sbin/dhcpcd wlan0
マジでうざいんでこれを、自動でやって欲しかった。
2 手作業でつなげてみる
まずは、dhcpcd と wpa_supplicant をインストールしよう。
% yaourt -S dhcpcd wpa_supplicant
yaourt が無かったら、pacman でもいいよ。
aur じゃないから。
まずは、wpa_passphrase コマンドを打って /etc/wpa_supplicant.conf に書く設定を確認しなきゃいけないんだけど、
${ssid} と ${secret_passphrase} があって分かりにくいと思ったので、MomongaCube っていう架空の WiMAX Wifi ルーターを登場させよう。
MomongaCube の裏にシールが貼ってあって、シールの表面にこう書いてある:
SSID: (momongacube)420666 KEY: momongamomonga
下で打ってる ${ssid} と ${secret_passphrase} はそれぞれ、(momongacube)420666 と momongamomonga に脳内置換してね。
% sudo wpa_passphrase '${ssid}' '${secret_passphrase}'
すると、
network={ ssid="${ssid}" #psk="${secret_passphrase}" psk="......................" }
って標準出力に表示されるので、これを /etc/wpa_supplicant.conf に目コピするか、コピーするかしてファイルの末尾に書いとこう。
または:
% sudo wpa_passphrase '${ssid}' '${secret_passphrase}' >> /etc/wpa_supplicant.conf
ってやると、末尾に追加されるので、楽だね。
これで wireless-up.zsh が使えるようになるよ。
3 自動でやってみる
今度は 2 を自動でやってくれるようにしよう。
netcfg をインストールするよ:
% yaourt -S netcfg
/etc/network.d っていうディレクトリができるので、/etc/network.d/examples の設定のお手本ファイルを /etc/network.d/ にコピーしとこう。
名前は何でもいいんだけど、momongacube にしておこうね。
% sudo cp /etc/network.d/examples/wireless_wpa /etc/network.d/momongacube
使うのは WiMAX Wifi ルーターなので、お手本にするのは wireless_wpa だね☆
wireless_wpa の中身はこんな感じ:
CONNECTION='wireless' DESCRIPTION='A simple WPA encrypted wireless connection' INTERFACE='wlan0' SECURITY='wpa' ESSID='MyNetwork' ## Uncomment if the supplied ESSID is hexadecimal #ESSID_TYPE='hex' KEY='WirelessKey' IP='dhcp' # Uncomment this if your ssid is hidden #HIDDEN=yes
変更するところは、ESSID と KEY だから、他のところはいじらないでね。
ESSID に ${ssid} を、KEY に ${secret_passphrase} を書いて保存。
こうするとこんな風になるんじゃないかな:
CONNECTION='wireless' DESCRIPTION='A simple WPA encrypted wireless connection' INTERFACE='wlan0' SECURITY='wpa' ESSID='${ssid}' ## Uncomment if the supplied ESSID is hexadecimal #ESSID_TYPE='hex' KEY='${secret_passphrase}' IP='dhcp' # Uncomment this if your ssid is hidden #HIDDEN=yes
後は:
% sudo systemctl enable netcfg
って打ったり、/etc/conf.d/netcfg の NETWORKS の括弧の中に momongacube って書いたり、
NETWORKS=(momongacube)
/etc/rc.conf の DAEMONS のとこに:
DAEMONS=(... net-auto-wireless ...)
って書いとけばおっけー。
明日は宝条みちる(@hojyo_michiru)さんです。 三(〃l _ l)ノ