■Wheezyに無線LANドライバを導入する。
基本的に以下の方法で出来る。使用したドライバはWin7用。
ただしWheezy側にトラップが2つ(後述)ある。
使用したのは「V5-171-F58D/S」。これでWindows8ともお別れが出来る。
Squeezeに無線LANドライバを導入する
http://d.hatena.ne.jp/labunix/20130302
■Wheezy上での無線LANドライバの確認
Windows8では、最新版でこっそり対応しているメーカが多いようだが、
「制限された〜」でデフォルトドライバでは動かないことがある。
また、ドライバの再インストールを要することもしばしば。
$ sudo lspci -v | grep Wireless
03:00.0 Network controller: Atheros Communications Inc. AR9462 Wireless Network Adapter (rev 01)
■最新の無線LANドライバのダウンロード
以下のリンクで確認。ダウンロード用のURLが異なるのでご注意を。
念の為、XP、7、8の三種類のドライバを保存しておく。
http://www.atheros.cz/atheros-wireless-download.php?chipset=76&system=1
http://www.atheros.cz/atheros-wireless-download.php?chipset=76&system=6
http://www.atheros.cz/atheros-wireless-download.php?chipset=76&system=7
$ URL="http://download2.dvd-driver.cz/atheros/drivers/ar5xxx"; \
WINXP="xp3264-10.0.0.216-whql.zip"; \
WIN7="win7-10.0.0.227-whql.zip"; \
WIN8="win8-10.0.0.217-whql.zip"; \
wget $URL/${WINXP}; \
wget ${URL}/${WIN7}; \
wget $URL/${WIN8}
■32bit/64bitの違いは、「NTX86/NTamd64」。
$ w3m -dump "http://www.atheros.cz/atheros-inf-file.php?inf=275&chipset=74&system=5" | grep -A 2 "\[Manufacturer\]"
[Manufacturer]
%ATHEROS% = Atheros, NTX86.6.1, NTX86.6.0, NTX86.6.2
%GIGABYTE% = Gigabyte, NTX86.6.1, NTX86.6.0, NTX86.6.2
$ w3m -dump "http://www.atheros.cz/atheros-inf-file.php?inf=276&chipset=74&system=5" | grep -A 2 "\[Manufacturer\]"
[Manufacturer]
%ATHEROS% = Atheros, NTamd64.6.1, NTamd64.6.0, NTamd64.6.2
%GIGABYTE% = Gigabyte, NTamd64.6.1, NTamd64.6.0, NTamd64.6.2
■ダウンロードした無線LANドライバの確認
$ for list in *.zip;do zipinfo "$list";done
Archive: win7-10.0.0.227-whql.zip
Zip file size: 2462449 bytes, number of entries: 6
-rw-a-- 2.0 fat 3109888 b- defX 13-Feb-19 11:00 athr.sys
-rw-a-- 2.0 fat 80287 b- defX 13-Feb-21 09:28 athrext.cat
-rw-a-- 2.0 fat 80291 b- defX 13-Feb-21 09:28 athrextx.cat
-rw-a-- 2.0 fat 3868160 b- defX 13-Feb-19 11:00 athrx.sys
-rw-a-- 2.0 fat 542671 t- defX 13-Feb-19 11:00 netathr.inf
-rw-a-- 2.0 fat 545386 t- defX 13-Feb-19 11:00 netathrx.inf
6 files, 8226683 bytes uncompressed, 2461845 bytes compressed: 70.1%
Archive: win8-10.0.0.217-whql.zip
Zip file size: 2134565 bytes, number of entries: 6
-rw-a-- 2.0 fat 80053 b- defX 12-Nov-08 04:28 athw8.cat
-rw-a-- 2.0 fat 332320 t- defX 12-Oct-27 09:00 athw8.inf
-rw-a-- 2.0 fat 2809344 b- defX 12-Oct-27 09:00 athw8.sys
-rw-a-- 2.0 fat 80063 b- defX 12-Nov-08 04:28 athw8x.cat
-rw-a-- 2.0 fat 333926 t- defX 12-Oct-27 09:00 athw8x.inf
-rw-a-- 2.0 fat 3701760 b- defX 12-Oct-27 09:00 athw8x.sys
6 files, 7337466 bytes uncompressed, 2133973 bytes compressed: 70.9%
Archive: xp3264-10.0.0.216-whql.zip
Zip file size: 1699716 bytes, number of entries: 6
-rw-a-- 2.0 fat 2121248 b- defX 12-Oct-24 09:00 athw.sys
-rw-a-- 2.0 fat 3022016 b- defX 12-Oct-24 09:00 athwx.sys
-rw-a-- 2.0 fat 74193 b- defX 12-Oct-26 13:48 netathw.cat
-rw-a-- 2.0 fat 284322 t- defX 12-Oct-24 09:00 netathw.inf
-rw-a-- 2.0 fat 74339 b- defX 12-Oct-26 13:48 netathwx.cat
-rw-a-- 2.0 fat 446180 t- defX 12-Oct-24 09:00 netathwx.inf
6 files, 6022298 bytes uncompressed, 1699112 bytes compressed: 71.8%
■Windowsドライバの取り込み
$ sudo apt-get install -y ndisgtk
$ unzip win7-10.0.0.227-whql.zip
Archive: win7-10.0.0.227-whql.zip
inflating: athr.sys
inflating: athrext.cat
inflating: athrextx.cat
inflating: athrx.sys
inflating: netathr.inf
inflating: netathrx.inf
$ sudo ndiswrapper -i netathrx.inf
installing netathrx ...
$ sudo ndiswrapper -l
netathrx : driver installed
device (168C:0034) present (alternate driver: ath9k)
$ sudo ndiswrapper -m
adding "alias wlan0 ndiswrapper" to /etc/modules.conf ...
$ cat /etc/modules.conf
alias wlan0 ndiswrapper
$ grep "ndiswrapper" /etc/modules || \
echo "ndiswrapper" | sudo tee -a /etc/modules
ndiswrapper
$ sudo depmod -a
$ lsmod | grep ath9k
ath9k 73578 0
ath9k_common 12728 1 ath9k
ath9k_hw 322112 2 ath9k_common,ath9k
ath 21370 3 ath9k_hw,ath9k_common,ath9k
mac80211 192806 1 ath9k
cfg80211 137243 3 mac80211,ath,ath9k
■ESSIDをブロードキャストしない設定なので、
他所のESSIDが見えるだけ。
$ sudo /sbin/ifconfig wlan0 up
$ sudo iwlist wlan0 scan | grep ESSID
ESSID:"SWS1day"
ESSID:"001softbank"
■DHCPにも応答しないので、手動で設定
$ sudo iwconfig wlan0 essid "ESSID" key "s:PASSWORD"
$ sudo iwconfig wlan0 | \
sed s/"ESSID.*"/"ESSID:\"ESSID\""/ | \
sed s/"\(Encryption key:\).*"/"\qXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX"/
wlan0 IEEE 802.11abgn ESSID:"ESSID"
Mode:Managed Access Point: Not-Associated Tx-Power=16 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
qXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX
Power Management:off
$ grep -A 10 "auto wlan0" /etc/network/interfaces | \
sed s/"\(wireless-essid \).*"/"\1ESSID"/ | \
sed s/"\( wireless-key1 \).*"/"\1s:PASSWORD"/ | \
sed s/"[0-9]"/X/g
auto wlanX
allow-hotplug wlanX
iface wlanX inet static
address XX.XX.X.XX
netmask XXX.XXX.XXX.X
network XX.XX.X.X
broadcast XX.XX.X.XXX
wireless-essid ESSID
wireless-key1 s:PASSWORD
up route add -net XX.XX.X.XXX/XX gw XX.XX.X.XXX wlanX
$ sudo /etc/init.d/networking restart
$ ping -c 2 $WLANIP | sed s/"$WLANIP"/"XXX.XXX.XXX.XXX"/g
PING XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 56(84) bytes of data.
64 bytes from XXX.XXX.XXX.XXX: icmp_req=1 ttl=64 time=0.059 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_req=2 ttl=64 time=0.033 ms
--- XXX.XXX.XXX.XXX ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.033/0.046/0.059/0.013 ms
■トラップは2つ。
「linux-wlan-ng」と「/etc/init.d/networking」。
$ sudo /etc/init.d/networking restart
[....] Running /etc/init.d/networking restart is deprecated because it may not r[warnble some interfaces ... (warning).
[....] Reconfiguring network interfaces...cat: /sys/module/p80211/parameters/wlan_wext_write: No such file or directory
FATAL: Module p80211 not found.
Failed to load p80211.ko.
run-parts: /etc/network/if-pre-up.d/linux-wlan-ng-pre-up exited with return code 1
ifup: interface eth0 already configured
done.
■「inux-wlan-ng」は使わない場合を考慮していないので、
全く話にならない。
「/sys/module/p80211/parameters/wlan_wext_write」も「p80211」のモジュールのロードも必要としていない。
$ sudo apt-get purge -y linux-wlan-ng
■「networking」スクリプトは、システムが稼働中なら「ifdown -a」と「ifup -a」を使う。
「run/ifstate」なんて要らないと思う。
■eth0をダウンしてwlan0でpingチェック
その他、ルーティングが必要であれば、「up」行を追加。
$ sudo ifdown eth0
$ ping -c 5 $MYGW | sed s/"[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"/"XXX.XXX.XXX.XXX"/g
PING XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 56(84) bytes of data.
64 bytes from XXX.XXX.XXX.XXX: icmp_req=1 ttl=64 time=2.79 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_req=2 ttl=64 time=1.92 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_req=3 ttl=64 time=1.94 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_req=4 ttl=64 time=1.94 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_req=5 ttl=64 time=2.13 ms
--- XXX.XXX.XXX.XXX ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 1.920/2.149/2.796/0.336 ms