RaspberryPiを無線LANにつなぐ

追記2015/01/13

無線LANの設定は wcid-curses を使ったほうが、圧倒的に楽だし、自動再接続もしてくれます。こちら利用しましょう。

RaspberryPiで、無線LANの自動再接続と、有線をさした時は有線でつなぐような設定をする - ITは遊び

使ったモジュール

千円以下で買える、BUFFALO WLI-UC-GNMを利用。

BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM

BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM

設定

"WPA/WPA2 mixedmode - PSK"、"TKIP/AES mixedmode"の認証になっている。

startxでGUIを起動すると、無線LANの設定ユーティリティがある。そちらを使ったほうが楽かもしれないが、結局CUIで作業した。

$ sudo vi /etc/network/interfaces
allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
    wpa-conf /etc/wpa_supplicant/wpa.conf
    address 192.168.1.160
    netmask 255.255.255.0
    network 192.168.1.1
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-nameservers 192.168.1.150

サーバとして使うので、あくまで静的IPを割り振る。

有線の"eth0"は、固定IPにして、線を外してもうまく行かなかったので、"auto eth0"から"allow-hotplug eth0"にして、DHCPにした。初回起動時、IPが割り振られず、無線LANに対して悪さしないのでよしとする。

無線の"wlan0"は、無線LANを挿したら設定ができていた。こちらはstaticで構築する。

wpa-confの設定は以下のとおり。

$ sudo vi /etc/wpa_supplicant/wpa.conf
network={
    ssid="SSIDを入れる"
    key_mgmt=WPA-PSK
    psk="パスワードを入れる"
}

ネットワークを再起動する。allow-hotplugのせいか、再起動で自動起動しなかったので、

$ sudo service networking restart
$ sudo ifdown wlan0
$ sudo ifup wlan0

IPと、つないでいるWiFiを確認する。

$ iwconfig
wlan0     IEEE 802.11bgn  ESSID:"SSIDの名前"
          Mode:Managed  Frequency:2.422 GHz  Access Point: 10:6F:3F:25:81:5D
          Bit Rate=135 Mb/s   Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=70/70  Signal level=-33 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:14  Invalid misc:67   Missed beacon:0

$ ifconfig
wlan0     Link encap:イーサネット  ハードウェアアドレス cc:e1:d5:15:97:c2
          inetアドレス:192.168.1.100 ブロードキャスト:192.168.1.255  マスク:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:6053 エラー:0 損失:620 オーバラン:0 フレーム:0
          TXパケット:2978 エラー:0 損失:0 オーバラン:0 キャリア:0
      衝突(Collisions):0 TXキュー長:1000
          RXバイト:1075629 (1.0 MiB)  TXバイト:437098 (426.8 KiB)

ping確認を実施する。eth0が悪さしている時もあった。pingに"-I wlan0"のオプションをつけると、wlan0がちゃんと動いているか確認できる。

$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
From 192.168.1.101 icmp_seq=1 Destination Host Unreachable

$ ping 192.168.1.1 -I wlan0
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=3.59 ms

最後に、ちゃんと無線LANで自動的につながるか、マシンを再起動して確認する。

$ sudo reboot

pingを売って動いたので、よしとする。

しかしこの状態、USB無線LANを抜いて、有線LANを入れても自動的には認識してくれない。

この先

WiFiルータを再起動した時、自動で再接続してくれない。これをなんとかせねば。