はじめに

Raspberry Piで無線LANに対応しているのはRaspberry Pi3からなので、手持ちのRaspberry Pi2では搭載されていない。
しかしUSBのWifiアダプターを利用して無線化することができそうなのでやってみた。

USB Wifiアダプター

いろんな評判を見て、Edimaxのものにした。

Wireless 802.11n USB Adapter

Raspbianでドライバーがプリインストールされているので、USBに指したらすぐに使える。
少電力で発熱も少ないと評判も良かった。
後から知ったのだけど、Raspberry Piは電力が非力なので、消費電力が少ないもののほうが安定稼働するらしい。
ネットワークが不安定とか個人的に最悪なので、少々高い値段には目をつむった。

wifi設定

USBに接続後、以下のコマンドで認識されていることを確認。

$ lsusb
Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]

USB接続は出来ている模様。

次に無線LANインターフェイスの確認をする。

$ iwconfig

eth0      no wireless extensions.

lo        no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:""  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:2.422 GHz  Access Point: 1C:B1:7F:F3:CC:B6   
          Bit Rate:150 Mb/s   Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=95/100  Signal level=64/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

認識されているっぽい。

アクセスポイントの情報を調べる。

$ iwlist wlan0 scan

これで暗号化プロトコルとかを調べられる。
自分の場合は、 CCMP とか WPA2 とか。

次にWifiの設定。

アクセスポイントに対するpskを取得する。

$ wpa_passphrase {ssid} {passphrase}

network={
        ssid="{ssid}"
        #psk="{passphrase}"
        psk=foobarpiyo...
}

その結果を踏まえて /etc/wpa_supplicant/wpa_supplicant.conf を編集する。

  ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
  update_config=1
+ network={
+     ssid="{ssid}"
+     psk=foobarpiyo
+     key_mgmt=WPA-PSK
+     proto=WPA2
+     pairwise=CCMP
+     group=CCMP
+     priority=2
+ }

priority=2 ってなんだろうと思って調べたら、2番目に優先するネットワーク設定という意味らしい。
有線があればそれを優先してほしいので、とりあえず 2 としてみた。

次にネットワークのインターフェイスを定義する。

/etc/network/interfaces.d/ 配下にファイルを生成。

自分はファイル名を wlan0 という名前にしてみた。
我が家はルーター側でMacアドレスによる固定IP化をしているので、クライアント側ではDHCPにお任せ設定にしている。

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

各種設定が終わったら wlan0 を有効化する。

$ ifdown wlan0 && ifup wlan0

これで、iwconfig とかで調べてみて、IPアドレスが振られていればOK。
普段はGUIでやっているけど、CLIでやると結構手間だったかな。

安定化

一応これで接続できるようになるんだけど、不安定。
一定期間使っていないと反応が遅くなったり、接続中もブツブツ切れたり。

フォーラムにそのものズバリの質問が上がっていたので、これを参考に対応。
まあ、パワーマネジメントが非力のRaspberry Piと相性が悪いという話っぽい。

Edimax Wifi adapter seems to go to sleep if not used (solved

とりあえず以下の内容で、/etc/modprobe.d/8192cu.conf というファイルを新規作成すればいいらしい。

# Disable power management
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0

設定後、再起動で作業完了.
確かに安定した気がする。
少なくともレスポンスが良くなったと思う。

おわりに

費用対効果としてはどうなのかなと思うのだけど、Raspberry Piのために利用していたイーサーネットコンバータを撤去できたので、個人的には満足。