Rasipberry Piを動作させる際、できれば使用するケーブルは少ないにこしたことはありません・・・・・というわけで、なるべく少なくするために、Raspberry Piを無線LAN接続してみました。
使用するUSB無線LANアダプタはたまたま手持ちだったWLI-UC-GNMです。(何度か改訂)
まず、コマンドラインで動作することを確認していきます。まずは、
$ sudo iwlist wlan0 scanning
で、LANアダプタがアクセスポイントの存在を認識している事を確認します。次に、接続するESSIDとWEPのKEYを設定します。
$ sudo iwconfig wlan0 essid xxxxxxxxxxxxx key s:xxxxx
さらに、DHCPクライアントを動作させて、IPアドレスの取得を行います。
$ sudo dhclient wlan0
これが終了したら、
$ ifconfig
として、IPアドレスの取得状況を表示します。
ここまでで問題がなければ、起動時に取得するように設定していきます。
具体的には、/etc/network/intertace に以下の内容を追加することになります。
auto wlan0 allow-hotplug wlan0 iface wlan0 inet dhcp wireless-essid xxxxxxxxxxxxxxxxxxxx wireless-key s:xxxxx
設定後に気づいたのですが、Ethernetと無線LANで同じセグメントのIPアドレスになってしまっていて、ややこしい状態になっていました。そこで、無線LAN側は設定変更を行って、IPアドレスを別セグメントに変更しました。
・・・が、やはり何か変です。Raspberry Pi側からネットワークにうまくアクセスできないケースがあります。調べてみると、外からwlan0へはアクセスできるのですが、Raspberry Piからwlan0経由で外にアクセスできません。
そこで、こちらを参照して、「sudo apt-get install ifmetric」としてifmetricパッケージをインストールした後、wlan0とeth0に優先順位づけをしてみたのですが・・・うまくいきません・・・。
調べてみると、DNSがうまく引けていないようです。姑息ですが、resolv.conf に両方のDNSサーバを書いて誤魔化しました。(ルータをDNSにしないで外部を引きにいけばいいという話もありますが、プロバイダのDNSサーバがどこからでもひけるのかよくわからないので、それぞれルータを指すことにしました)
「sudo apt-get install resolvconf」として、/etc/network/interfaceに記述されたDNS情報が/etc/resolv.confに反映されるようにしました(で、理解はあっていると思う)。
また、eth0はケーブルが抜けていてもインタフェースとしては存在するので、metric 0にしているとケーブルが抜けるとRaspberry Pi側から接続できなくなってしまいます。ですので、wlan0側をmetric 0にしています。その場合、当然無線LANのAPが落ちていると接続できません。生きている方の経路を選択してくれればうれしいのですが、いまのところやり方が分かりません。なにかやり方があると思うのですが・・・。
最終的にはこうなりました。
</etc/network/interfaces>
auto lo iface lo inet loopback auto eth0 iface eth0 inet static metric 1 address 192.168.1.4 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 allow-hotplug wlan0 #iface wlan0 inet dhcp iface wlan0 inet static metric 0 address 192.168.0.4 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 192.168.0.1 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
</etc/wpa_supplicant/wpa_supplicant.conf>
# Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key # IEEE 802.11 authentication network={ ssid="xxxxxxxxxxxxxxxxx" key_mgmt=NONE wep_key0="xxxxx" wep_tx_keyidx=0 priority=5 auth_alg=SHARED }
あと、運用してみてわかったことですが、発熱がすごいです。長持ちしない予感がします。
・・・・あ、運用しているRaspberry Piは /etc/cpuinfo でみると Revision 0003、つまりF1とF2が削除されて0Ωになっているバージョンです。それでも電源のLEDが電圧不安定のためかチラチラしていてEthernetに負荷がかかると落ちます。ですので、無線LANを動かすときはEthernetを抜いて負荷を軽くしています。Revision 0002ではセルフパワーHUB経由でないとおそらく動かないでしょう。
どうせAPの近くで運用するので、
$ sudo iwconfig wlan0 txpower 5
とか、速度もどうせ要らないので、
$ sudo iwconfig wlan0 rate 1M
とかやって消費電力が落ちないかと思ったのですが、LEDのチラチラ具合を見る限りは大差ないようです。