Linuxで無線LANを使おう(Fedora)
本記事では、Linuxで無線LANを利用するための手順を紹介します。
手順1: デバイスドライバのインストール
手順2: WEP で接続する (GUI編)
手順3: WEP で接続する (CUI編)
手順4: WPA2 で接続する
[利用環境]
OS: Fedora 8 (i386)
無線ルータ: NEC Aterm WR8500N
無線LANデバイス: BUFFALO WLI2-PCI-G54S
無線LAN の利用に先立ち、まず 無線LANデバイス のドライバをインストールする必要があります。
Linux には WLI2-PCI-G54S を正しく扱えるドライバが存在しませんので、
NDISwrapper を利用して Windows用ドライバ をインストールします。
まず、無線LANデバイス に搭載されているチップを調べます。
WLI2-PCI-G54S では、PCIIDから情報を得ることができます。
# lspci (前略) 06:01.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02) (後略)
lspci の出力から、WLI2-PCI-G54S が Broadcom BCM4318 チップを搭載していることがわかります。
このページの 41. 以降に BCM4318 の項目があります。
(前略) 41. Card: Broadcom Corporation BCM4318 AirForce One 54g 802.11g Wireless LAN Controller (rev 02) Ndiswrapper version: 1.1-4 Chipset name: Broadcom BCM4318 PCIID: 02:03.0 (rev 02) Windows driver location: http://biginoz.free.fr/linux/bcmwl5a.inf. Also need .sys file http://biginoz.free.fr/linux/bcmwl5.sys Using Ubuntu 5.10 on Dell Inspiron 1300 42. Card: Broadcom Corporation BCM4318 AirForce One 54g 802.11g Wireless LAN Controller (rev 02) Ndiswrapper version: 1.11 Chipset name: Broadcom BCM4318 PCIID: 30:02.0 (rev 02) Windows driver location: ftp://ftp.support.acer-euro.com/notebook/aspire_3020_5020/driver/winxp64bit/80211g.zip Driver: WL_Broadcom,XP64 Using Fedora Core 5 x86_64 on HP Pavilion zv6000 with AMD64. Worked after adding “noapic nolapic acpi=off” to kernel command line obtained from http://www.linuxquestions.org/questions/showthread.php?p=2132310#post2132310 (後略)
32bit版と64bit版双方の動作報告がありました。どうやら、それぞれ違うドライバが必要なようです。
今回は、32bit版のインストールを行います。
2. で見つけた項目からリンクをたどり、bcmwl5a.inf と bcmwl5.sys をダウンロードします。
Fedora公式リポジトリ には NDISwrapper が収録されていません。
幸い、Livnaリポジトリ と Atrpmsリポジトリ には収録されていますので、
今回は Livnaリポジトリ から yum でインストールします。
# rpm -ivh livna-release-8.rpm # Livnaリポジトリを登録 # yum install ndiswrapper
※カーネルがアップデートされた場合は、PCの再起動が必要になります。
# ndiswrapper -i bcmwl5a.inf installing bcmwl5a ... forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 # ndiswrapper -l bcmwl5a : driver installed device (14E4:4318) present (alternate driver: ssb)
無線LANデバイスが認識されました。
しかし、他のドライバが代わりにロードされてしまっているようです。
# rmmod ssb ERROR: Module ssb is in use by b43
b43ドライバ から利用されているようですので、b43ドライバ も一緒にアンロードします。
# rmmod b43 # rmmod ssb
ndiswrapperモジュールをロードします。
# modprobe ndiswrapper # iwconfig wlan0 IEEE 802.11g ESSID:off/any Nickname:"localhost.localdomain" Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated Bit Rate:54 Mb/s Tx-Power:25 dBm RTS thr:2347 B Fragment thr:2346 B Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
無線LANインターフェイス(wlan0)が認識されました。
# ndiswrapper -m adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper ... # depmod -a
6. でアンロードしたドライバが自動的にロードされてしまわないように、ブラックリストに追加しておきます。
# gedit /etc/modprobe.d/blacklist
最後に以下の2行を追加し、保存します。
blacklist b43 blacklist ssb
※既にデバイスドライバがインストール済の状況を想定しています。
無線LANのデバイス名は「wlan0」とします。
無線LANのESSIDは「WIRELESS-W」、暗号化キーは「WIRELESSPASSWORD」とします。
(実際の設定にあわせて適宜読み替えてください)
設定ファイル /etc/sysconfig/network-scripts/ifcfg-wlan0 を作成します。
# gedit /etc/sysconfig/network-scripts/ifcfg-wlan0
以下の内容を保存します。
DEVICE=wlan0 BOOTPROTO=dhcp ONBOOT=yes
メニューから [システム]→[管理]→[ネットワーク] を実行します。
[ハードウェアデバイス] タブを選択し、[マックアドレスにバインド] にチェックを入れて[検出] ボタンを押します。
[ワイヤレス設定] タブを選択し、以下の作業を行います。
作業が終わったら、[OK] を押します。
# ifconfig wlan0 Link encap:Ethernet HWaddr 01:23:45:67:89:AB inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::216:1ff:fee8:2e59/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:62 errors:0 dropped:0 overruns:0 frame:0 TX packets:86 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4832 (4.7 KiB) TX bytes:9415 (9.1 KiB) Interrupt:22 Memory:90004000-90006000
※既にデバイスドライバがインストール済の状況を想定しています。
無線LANのデバイス名は「wlan0」とします。
無線LANのESSIDは「WIRELESS-W」、暗号化キーは「WIRELESSPASSWORD」とします。
(実際の設定にあわせて適宜読み替えてください)
# iwconfig wlan0 IEEE 802.11g ESSID:off/any Nickname:"localhost.localdomain" Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated Bit Rate:54 Mb/s Tx-Power:25 dBm RTS thr:2347 B Fragment thr:2346 B Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
# iwlist wlan0 scan wlan0 Scan completed : Cell 01 - Address: 98:76:54:32:10:AB ESSID:"WIRELESS-W" Protocol:IEEE 802.11g Mode:Managed Frequency:2.452 GHz (Channel 9) Quality:100/100 Signal level:-23 dBm Noise level:-96 dBm Encryption key:on Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s 48 Mb/s; 54 Mb/s Extra:bcn_int=100 Extra:atim=0 (後略)
ここでは、WEPで暗号化されている無線LAN「WIRELESS-W」が見えています。
※暗号化キーを指定する際は、キーの先頭に「s:」をつける必要があります。
暗号化キーが「WIRELESSPASSWORD」なら、「s:WIRELESSPASSWORD」とします。
# iwconfig wlan0 essid "WIRELESS-W" key "s:WIRELESSPASSWORD" # iwconfig wlan0 IEEE 802.11g ESSID:"WIRELESS-W" Nickname:"localhost.localdomain" Mode:Managed Frequency:2.452 GHz Access Point: 98:76:54:32:10:AB Bit Rate=54 Mb/s Tx-Power:25 dBm RTS thr:2347 B Fragment thr:2346 B Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xx Security mode:restricted Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
iwconfig の出力結果に、ESSIDと暗号化キー(Encryption key)が正しく表示されていることを確認します。
# dhclient -d wlan0 Internet Systems Consortium DHCP Client V3.0.6-Fedora Copyright 2004-2007 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ Listening on LPF/wlan0/01:23:45:67:89:AB Sending on LPF/wlan0/01:23:45:67:89:AB Sending on Socket/fallback DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.1 bound to 192.168.0.2 -- renewal in 34429 seconds.
IPアドレスの取得に成功したら、Ctrl+Cキー を押し、dhclient を終了させます。
# ping -c 4 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.473 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=1.07 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.455 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=255 time=1.17 ms --- 192.168.0.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.455/0.794/1.174/0.331 ms
# gedit /etc/sysconfig/network-scripts/ifcfg-wlan0
以下の内容を保存します。
DEVICE=wlan0 BOOTPROTO=dhcp ONBOOT=yes TYPE=Wireless ESSID=WIRELESS-W
さらに、暗号化キーを格納するファイルも作成します。
# echo 'KEY=s:WIRELESSPASSWORD' > /etc/sysconfig/network-scripts/keys-wlan0 # chmod 600 /etc/sysconfig/network-scripts/keys-wlan0
無線LANインターフェイス を起動するには、ifup コマンドを利用します。
無線LANインターフェイス を停止するには、ifdown コマンドを利用します。
※メニュー→[システム]→[管理]→[ネットワーク] でも起動・停止可能ですが、
初回の利用前に一度、無線LANインターフェイスの設定画面を開く必要があります。
# ifup wlan0 wlan0 のIP情報を検出中... 完了。 # ifconfig wlan0 Link encap:Ethernet HWaddr 01:23:45:67:89:AB inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::216:1ff:fee8:2e59/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:65 errors:0 dropped:0 overruns:0 frame:0 TX packets:91 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5219 (5.0 KiB) TX bytes:9527 (9.3 KiB) Interrupt:22 Memory:90004000-90006000
WPA2 を利用する場合は、手動で設定ファイルを編集する必要があります。
※既にデバイスドライバがインストール済の状況を想定しています。
無線LANのデバイス名は「wlan0」とします。
無線LANのESSIDは「WIRELESS」とします。(実際の設定にあわせて適宜読み替えてください)
※無線ルータごとに設定が異なるため、本記事では解説しません。
設定方法については、無線ルータの取扱説明書をご覧下さい。
※無線ルータによっては、WPA-PSK(AES) のように少し表記が異なる場合があります。
# wpa_passphrase "WIRELESS" "暗号化キー" > /etc/wpa_supplicant/wpa_supplicant.conf # cat /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=wheel network={ ssid="WIRELESS" #psk="暗号化キー" psk=暗号化された暗号化キー(実際には数十文字の数字) }
# gedit /etc/wpa_supplicant/wpa_supplicant.conf
以下のように編集し(赤字の部分を追加)、保存します。
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=wheel network={ ssid="WIRELESS" key_mgmt=WPA-PSK proto=WPA WPA2 pairwise=CCMP TKIP group=CCMP TKIP WEP104 WEP40 #psk="暗号化キー" psk=暗号化された暗号化キー(実際には数十文字の数字) }
WPA2 による接続を行うには、wpa_supplicant を実行します。
wpa_supplicant の出力を確認するため、wpa_supplicant をフォアグラウンドで起動します。
# wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 -Dwext Trying to associate with 98:76:54:32:10:ab (SSID='WIRELESS' freq=2452 MHz) Associated with 98:76:54:32:10:ab WPA: Key negotiation completed with 98:76:54:32:10:ab [PTK=CCMP GTK=CCMP] CTRL-EVENT-CONNECTED - Connection to 98:76:54:32:10:ab completed (auth) [id=0 id_str=]
wpa_supplicant を動作させたまま、別の端末ウィンドウで iwconfig コマンドの結果を確認します。
# iwconfig wlan0 IEEE 802.11g ESSID:"WIRELESS" Nickname:"localhost.localdomain" Mode:Managed Frequency:2.452 GHz Access Point: 98:76:54:32:10:AB Bit Rate=54 Mb/s Tx-Power:25 dBm RTS thr:2347 B Fragment thr:2346 B Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx Security mode:restricted Power Management:off Link Quality:100/100 Signal level:-24 dBm Noise level:-96 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
ESSID と Access Point が正しく表示されていれば、WPA2 による接続は正しく動作しています。
# dhclient -d wlan0 Internet Systems Consortium DHCP Client V3.0.6-Fedora Copyright 2004-2007 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ Listening on LPF/wlan0/01:23:45:67:89:AB Sending on LPF/wlan0/01:23:45:67:89:AB Sending on Socket/fallback DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.1 bound to 192.168.0.2 -- renewal in 34429 seconds.
IPアドレスの取得に成功したら、Ctrl+Cキー を押し、dhclient を終了させます。
# ping -c 4 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.473 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=1.07 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.455 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=255 time=1.17 ms --- 192.168.0.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.455/0.794/1.174/0.331 ms
通信できることを確認したら、3. で起動した wpa_supplicant を Ctrl+C キーで停止します。
# gedit /etc/sysconfig/wpa_supplicant
以下の2箇所を編集し、保存します。
INTERFACES="-i wlan0" DRIVERS="-D wext"
# service wpa_supplicant start wpa_supplicant の起動中: /etc/wpa_supplicant/wpa_supplicant.conf、-iwlan0、-Dwext [ OK ] # /sbin/iwconfig wlan0 IEEE 802.11g ESSID:"WIRELESS" Nickname:"localhost.localdomain" Mode:Managed Frequency:2.452 GHz Access Point: 98:76:54:32:10:AB Bit Rate=54 Mb/s Tx-Power:25 dBm RTS thr:2347 B Fragment thr:2346 B Power Management:off Link Quality:100/100 Signal level:-11 dBm Noise level:-96 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
/etc/sysconfig/network-scripts/ifcfg-wlan0 を編集します。
# gedit /etc/sysconfig/network-scripts/ifcfg-wlan0
以下の内容で保存します。
DEVICE=wlan0 BOOTPROTO=dhcp ONBOOT=no TYPE=Wireless
(もし存在すれば ) /etc/sysconfig/network-scripts/keys-wlan0 を削除します。
# rm /etc/sysconfig/network-scripts/keys-wlan0
無線LANインターフェイス を起動するには、ifup コマンドを利用します。
無線LANインターフェイス を停止するには、ifdown コマンドを利用します。
※メニュー→[システム]→[管理]→[ネットワーク] でも起動・停止可能です。
# ifup wlan0 wlan0 のIP情報を検出中... 完了。 # ifconfig wlan0 Link encap:Ethernet HWaddr 01:23:45:67:89:AB inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::216:1ff:fee8:2e59/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:65 errors:0 dropped:0 overruns:0 frame:0 TX packets:91 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5219 (5.0 KiB) TX bytes:9527 (9.3 KiB) Interrupt:22 Memory:90004000-90006000
/etc/rc.d/rc.local を編集します。
# gedit /etc/rc.d/rc.local
最後に以下の2行を追加し、保存します。
service wpa_supplicant start ifup wlan0