Debian でローテクでやってるんで wifi の設定も貧弱で
/etc/netwerk/interfaces を手で書き直してました
コメントにしたりコメントアウトにしたり
どうなのよそれ、と
で、Debian 系だとその interfaces で mapping っつーの使います
script を走らせて状況判断させて
事前にしてある任意の設定で interface を up できる
っつーのは知ってたけど今までそこまで使い込むことなかったんですが
やるべ、と、一大決心をして、ググりました
何も見ないし何も知らない | テーマ:コンピューター・Web
ん〜、惜しい、その最後のとこに書いてある
「Address(Mac Address)をsedで抜き出したらうまくいくかもしれない。」
それが欲しいんだ!
つわけで自分で作ればいいかと考え直しました
interfaces の mapping から復習しました
$ man interfacesしたら復習できました
例えば
wlan0 という interface に対してスクリプトで動的に設定したい、
という場合
mapping wlan0みたいに書きます
script /usr/local/sbin/my_script.sh
map spam ham
map egg bacon
で、ifup wlan0 と wlan0 を有効にしようとすると
/usr/local/sbin/my_script.sh に引数 wlan0 が渡され
更に map で始まる行の map 以外の部分が標準入力に渡されます
つまり、
$ echo -e "spam ham\negg bacon" | /usr/local/sbin/my_script.sh wlan0したみたいになるわけです
でで、このコマンドの出力結果の文字列が
実際に設定されます
ででで、今回は wifi AP の MAC ADDRESS を登録しといて
実際に行う動作の設定へと導いてあげることにしました
/etc/network/interfaces はこんな感じにしたい
mapping wlan0で、あとは /usr/local/sbin/my_script.sh が
script /usr/local/sbin/my_script.sh
map XX:XX:XX:XX:XX:XX office
map YY:YY:YY:YY:YY:YY home
iface wifi-office inet dhcp
wpa-driver wext
wpa-scan-ssid 1
wpa-ap-scan 1
wpa-ssid "office api"
wpa-psk "xxxxxxxxxxxxxxxxxxxxxxxx"
iface wifi-home inet dhcp
wpa-driver wext
wpa-scan-ssid 1
wpa-ap-scan 1
wpa-ssid "office home"
wpa-psk "yyyyyyyyyyyyyyyyyyyyyyyy"
出力結果として "wifi-office" か "wifi-home" を出力してくれれば
それぞれの設定を施して AP に繋ぎにいってくれるはずです
じゃぁ /usr/local/sbin/my_script.sh どうすんのよ、というと
上のサイトと Debian の examples を見たらこんな感じに
#!/bin/shどうも sleep が短かいのか
LANG=C
set -e
# 対象 interface で scan して wifi AP の MAC ADDRESS 集め
INTERFACE=$1
ifconfig $INTERFACE up
sleep 1
MACADDRESS_LIST=$(iwlist $INTERFACE scan | sed -n -e 's/^.*Address: \([0-9A-F:]*\).*$/\1/p')
ifconfig $INTERFACE down
which=""
# read は標準入力から1行読んで変数に入れる
while read testmac scheme; do
if [ "$which" ]; then continue; fi
for MACADDRESS in $MACADDRESS_LIST; do
# 設定されてる MAC ADDRESS があれば対応する設定を $which に
if [ "$testmac" = "$MACADDRESS" ]; then which="$scheme"; fi
done
done
#仕上に出力、hit しなかったら "wifi-default" と出す
echo wifi-${which:-default}
ちょっと調整しないと一発で成功とまではいってないんですが
これで一々設定ファイルいじらなくてもよくなりました
でもさ、どーせさ、みんな Ubuntu 使ってるからさ
こんなことしなくてもサクサク設定できちゃってるわけでしょ?
ぷんぷん
0 件のコメント:
コメントを投稿