Linuxmaniaトップ活用ガイドLinuxで無線LANを使おう(Fedora)

Linuxデスクトップを使おう




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使用例



手順1: デバイスドライバのインストール

 無線LAN の利用に先立ち、まず 無線LANデバイス のドライバをインストールする必要があります。

 Linux には WLI2-PCI-G54S を正しく扱えるドライバが存在しませんので、
 NDISwrapper を利用して Windows用ドライバ をインストールします。



1. 無線LANデバイス に搭載されているチップを調べます。


 まず、無線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 チップを搭載していることがわかります。



2. 搭載されているチップの情報を NDISwrapper の対応デバイスリストページ で探します。


 このページの 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版のインストールを行います。



3. 無線LANデバイス の Windows用ドライバ を用意します。


 2. で見つけた項目からリンクをたどり、bcmwl5a.inf と bcmwl5.sys をダウンロードします。



4. NDISwrapper をインストールします。


 Fedora公式リポジトリ には NDISwrapper が収録されていません。
 幸い、Livnaリポジトリ と Atrpmsリポジトリ には収録されていますので、
 今回は Livnaリポジトリ から yum でインストールします。


# rpm -ivh livna-release-8.rpm  # Livnaリポジトリを登録
# yum install ndiswrapper

※カーネルがアップデートされた場合は、PCの再起動が必要になります。



5. 用意した Windows用ドライバ を NDISwrapper でインストールします。


# 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デバイスが認識されました。
 しかし、他のドライバが代わりにロードされてしまっているようです。



6. 先にロードされているドライバをアンロードします。


# rmmod ssb
ERROR: Module ssb is in use by b43

 b43ドライバ から利用されているようですので、b43ドライバ も一緒にアンロードします。


# rmmod b43
# rmmod ssb


7. NDISwrapper を起動します。


  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)が認識されました。



8. 無線LANインターフェイスに NDISwrapper を関連づけます。


# ndiswrapper -m
adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper ...
# depmod -a

 6. でアンロードしたドライバが自動的にロードされてしまわないように、ブラックリストに追加しておきます。


# gedit /etc/modprobe.d/blacklist

 最後に以下の2行を追加し、保存します。


blacklist b43
blacklist ssb



手順2: WEP で接続する (GUI編)

※既にデバイスドライバがインストール済の状況を想定しています。
 無線LANのデバイス名は「wlan0」とします。
 無線LANのESSIDは「WIRELESS-W」、暗号化キーは「WIRELESSPASSWORD」とします。
 (実際の設定にあわせて適宜読み替えてください)



1. GUI で設定を行う下準備をします。


 設定ファイル /etc/sysconfig/network-scripts/ifcfg-wlan0 を作成します。


# gedit /etc/sysconfig/network-scripts/ifcfg-wlan0

 以下の内容を保存します。


DEVICE=wlan0
BOOTPROTO=dhcp
ONBOOT=yes


2. GUI [ネットワーク設定] を起動します。


 メニューから [システム]→[管理]→[ネットワーク] を実行します。





3. wlan0 の行をダブルクリックし、[ワイヤレスデバイス設定] ウィンドウを開きます。




 [ハードウェアデバイス] タブを選択し、[マックアドレスにバインド] にチェックを入れて[検出] ボタンを押します。




 [ワイヤレス設定] タブを選択し、以下の作業を行います。





 作業が終わったら、[OK] を押します。



4. [起動] ボタンを押し、無線LANインターフェイスが有効になることを確認します。




# 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 


5. 次回から、無線LANインターフェイスが自動的に有効になります。




手順3: WEP で接続する (CUI編)

※既にデバイスドライバがインストール済の状況を想定しています。
 無線LANのデバイス名は「wlan0」とします。
 無線LANのESSIDは「WIRELESS-W」、暗号化キーは「WIRELESSPASSWORD」とします。
 (実際の設定にあわせて適宜読み替えてください)



1. 無線LANデバイスを認識していることを確認します。


# 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


2. 無線LANが見えていることを確認します。


# 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」が見えています。



3. 無線LANデバイスに、WEPに必要な情報(ESSIDと暗号化キー)を教えてやります。


※暗号化キーを指定する際は、キーの先頭に「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)が正しく表示されていることを確認します。



4. 無線ルータからIPアドレス等の情報を取得できるか確認します。


# 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 を終了させます。



5. 無線ルータと通信できるか確かめます。


# 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


6. 無線LANインターフェイス を 自動起動可能にします。


# 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


7. 無線LANインターフェイス が正しく起動するか確認します。


 無線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


8. 次回から、無線LANインターフェイスが自動的に有効になります。




手順4: WPA2 で接続する

 WPA2 を利用する場合は、手動で設定ファイルを編集する必要があります。

※既にデバイスドライバがインストール済の状況を想定しています。
 無線LANのデバイス名は「wlan0」とします。
 無線LANのESSIDは「WIRELESS」とします。(実際の設定にあわせて適宜読み替えてください)



0. 無線LANの暗号化をWPA2 に変更します。


※無線ルータごとに設定が異なるため、本記事では解説しません。
 設定方法については、無線ルータの取扱説明書をご覧下さい。

※無線ルータによっては、WPA-PSK(AES) のように少し表記が異なる場合があります。



1. WPAの接続に必要なパスフレーズを生成します。


# 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=暗号化された暗号化キー(実際には数十文字の数字)
}


2. 1. で生成した内容に、必要な情報を追加します。


# 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=暗号化された暗号化キー(実際には数十文字の数字)
}


3. WPA2 による接続が正しく行われるか確認します。


 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 による接続は正しく動作しています。



4. 無線ルータからIPアドレス等の情報を取得できるか確認します。


# 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 を終了させます。



5. 無線ルータと通信できるか確かめます。


# 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 キーで停止します。



6. wpa_supplicant サービスの設定を変更します。


# gedit /etc/sysconfig/wpa_supplicant

 以下の2箇所を編集し、保存します。


INTERFACES="-i wlan0"
DRIVERS="-D wext"


7. wpa_supplicant サービスを起動します。


# 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


8. 無線LANインターフェイス を ifup コマンドで起動可能にします。


 /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


9. 無線LANインターフェイス が正しく起動するか確認します。


 無線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


10. PC起動時に 無線LANインターフェイスが自動的に有効になるよう設定します。


 /etc/rc.d/rc.local を編集します。


# gedit /etc/rc.d/rc.local

 最後に以下の2行を追加し、保存します。


service wpa_supplicant start
ifup wlan0


11. 次回の起動から、無線LANインターフェイスが自動的に有効になります。




[作成日 2008/4/4]