Raspberry Pi に Wi-Fi設定(無線LAN設定)を行ったので、その内容を記載しています。
OSは raspbian(wheezy)です。
Raspberry Pi は電源が多く取れないので、省エネ機能を搭載したWi-Fiモジュールを利用しています。
利用したのは、Raspberry Pi 用としても評価が高い、PLANEX の Wi-Fi USBアダプタ「GW-USNANO2A」です。値段は1,000円ちょいで、消費電力は省エネ効果で最大約1.3Wらしいです。
なお、作業時は、有線LANでも接続しています。
また、何か問題があった時に対応できるように、手元にHDMIモニターとUSBキーボードも用意して作業したほうが良いと思います。(私は本作業内でも一度使いました。)
1.USBアダプタを Raspberry Pi のUSBポートに差し込む
Wi-Fi USBアダプタを、Raspberry Pi のUSBポートに差し込むと、自動認識されます。
認識状況は、lsusbコマンドで確認できます。(最終行のPLANEXがWiFi USBアダプタです。)
$ lsusb Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS] $
認識が出来ていたら、次にWiFi用のネットワーク設定を行います。
2.wpa_passphrase コマンドで、設定する値を生成
まず PreShared-Key のハッシュ値を生成します。
接続する無線LAN環境の「SSID」と「PreShared-Key」を wpa_passphraseコマンドの引数に与えて実行します。
例えば、SSIDが「mySSID」、PreShared-Keyが「myPASSPHRASE」の場合、以下のようにコマンドを実行します。
$ which wpa_passphrase /usr/bin/wpa_passphrase $ wpa_passphrase mySSID myPASSPHRASE network={ ssid="mySSID" #psk="myPASSPHRASE" psk=b04b5f9f0f161db17816f6c29029662630c22450ec0fcedacd070a19c684cbf3 } $
コマンドの出力結果として、ハッシュ化された「psk」の値が表示されます。
この出力値を用いて、/etc/wpa_supplicant/wpa_supplicant.conf ファイルの設定を行います。
3./etc/wpa_supplicant/wpa_supplicant.conf を設定
既存の /etc/wpa_supplicant/wpa_supplicant.conf ファイルを vi などで開いて、下記のように設定します。各設定値は、ご利用のWiFi環境に合わせてください。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="mySSID" psk=b04b5f9f0f161db17816f6c29029662630c22450ec0fcedacd070a19c684cbf3 key_mgmt=WPA-PSK proto=WPA2 pairwise=CCMP group=CCMP priority=2 }
上の設定は、WPA2-PSK 環境です。
ちなみに「CCMP」は AES暗号の事らしいです。(AES in Counter mode with CBC-MAC)
4./etc/network/interfaces を設定
次は、/etc/network/interfaces ファイルを設定します。
Wi-Fiに関する箇所は「wlan0」が該当します。
固定IPで設定する場合は、下記のように設定します。IPアドレス情報は環境に合わせてください。
auto wlan0 allow-hotplug wlan0 iface wlan0 inet static address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.1 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
以上で、設定は完了です。
5.再起動
念のため、HDMIモニターやUSBキーボードを手元に用意した上で、Raspberry Pi を「reboot」コマンドか「shutdown -r now」で再起動してください。
起動後にWi-Fi用に割り当てたIPアドレスにPingが通り、SSHでもログイン出来れば、一旦設定は完了になります。
6.パワーマネジメント機能をOFFにする
このままの設定では、SSH接続しにくい状態などになる事例が存在するようです。
原因は、PLANEX の Wi-Fi USBアダプタ「GW-USNANO2A」で、パワーマネジメント機能が働き、Wi-Fi接続できなくなるようです。
ちなみに、iwconfig コマンドで、パワーマネジメントに関する設定が確認できますが、「GW-USNANO2A」の場合、パワーマネジメントをOFFにしていない時も「off」と表示されるようです。
$ iwconfig wlan0 IEEE 802.11bgn ESSID:"mySSID" Nickname:"<WIFI@REALTEK>" Mode:Managed Frequency:2.462 GHz Access Point: 00:22:CF:16:xx:xx Bit Rate:72.2 Mb/s Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Power Management:off Link Quality=100/100 Signal level=72/100 Noise level=0/100 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 lo no wireless extensions. eth0 no wireless extensions. $
対策としては、/etc/modprobe.d/8192cu.conf ファイルを作成し、パワーマネジメント機能を無効にする事が良いらしいです。
$ sudo vi /etc/modprobe.d/8192cu.conf $ cat /etc/modprobe.d/8192cu.conf options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1 $
なお、rtw_power_mgnt が「0」の場合、パワーマネジメント機能が無効になるようです。その代り、USBアダプタ自体が熱を持ちやすくなりますので、トレードオフかもしれません。
以下、再起動後の確認です。
$ cat /sys/module/8192cu/parameters/rtw_power_mgnt 0 $ cat /sys/module/8192cu/parameters/rtw_enusbss 1 $ cat /sys/module/8192cu/parameters/rtw_ips_mode 1 $
備考
/sbin/iwlist コマンドは、無線LAN環境を調べるコマンドとして使えます。
Wi-Fi環境で接続しているChannelは、先ほどのiwconfig コマンドでも確認できましたが、以下のコマンドでも確認できます。
$ iwlist wlan0 channel wlan0 13 channels in total; available frequencies : Channel 01 : 2.412 GHz Channel 02 : 2.417 GHz Channel 03 : 2.422 GHz Channel 04 : 2.427 GHz Channel 05 : 2.432 GHz Channel 06 : 2.437 GHz Channel 07 : 2.442 GHz Channel 08 : 2.447 GHz Channel 09 : 2.452 GHz Channel 10 : 2.457 GHz Channel 11 : 2.462 GHz Channel 12 : 2.467 GHz Channel 13 : 2.472 GHz Current Frequency:2.462 GHz (Channel 11) $
以下のコマンドで、Wi-Fiネットワークをスキャンする事もできます。先ほど「/etc/wpa_supplicant/wpa_supplicant.conf」で設定した「pairwise」や「group」の値も確認できます。(出力は省略します。)
$ iwlist wlan0 scanning