宇宙一わかりにくいラズパイ入門(仮称)②
宇宙一わかりにくいラズパイ入門(仮称)①の続きです。
宇宙一わかりにくいラズパイ入門(仮称)②では、無線LAN設定をしてインターネット接続までやってしまうよ!
宇宙一わかりにくいラズパイ入門(仮称)の趣旨
Raspberry Pi2 Model B に Raspbian(Jessie)をインストールして「IoT×Blockchain までやってしまうよ!」な企画を開始しました。はっきり言って「超絶わかりにくい」ので良質な書籍やブログを読むことをオススメします。皆様の貴重なお時間をムダにするのは本懐ではありません。興味がある方だけ読んでみてください(にっこり)
無線LANアダプター(WLI-UC-GNM2)の確認
CUIで進めますね。GUIの方は[Ctrl] + [Alt] + [F1]~[F5] を押しましょう。CUIになります。
pi@raspberrypi:~ $ uname -a Linux raspberrypi 4.1.17-v7+ #838 SMP Tue Feb 9 13:15:09 GMT 2016 armv7l GNU/Linux # OS情報 pi@raspberrypi:~ $ lsb_release -d Description: Raspbian GNU/Linux 8.0 (jessie) # OSは Rasbian-Jessie pi@raspberrypi:~ $ lsusb Bus 001 Device 005: ID 0411:01ee BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070] # WLI-UC-GNM2 を確認 Bus 001 Device 007: ID 06cb:0009 Synaptics, Inc. Composite TouchPad and TrackPoint Bus 001 Device 006: ID 04b3:3019 IBM Corp. Bus 001 Device 004: ID 04b3:3016 IBM Corp. UltraNav Keyboard Hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
無線LAN関係のファイルを確認
2つのファイルです。
- /etc/network/interfaces
- /etc/wpa_supplicant/wpa_supplicant.conf
interfaces デフォルト値と設定変更
大切なことはオリジナルファイルをコピー(cp)してから設定変更すること。そして確認作業(diff)をすることです。面倒かもしれないけど、これは君たちの将来のためのアドバイスです!
pi@raspberrypi:~ $ sudo cp -p /etc/network/interfaces /etc/network/interfaces.old pi@raspberrypi:~ $ sudo nano /etc/network/interfaces auto lo iface lo inet loopback iface eth0 inet manual # 有線LAN設定部分 allow-hotplug wlan0 # 無線LAN(wlan0)の設定部分 iface wlan0 inet manual # manual を dhcp に変更 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf allow-hotplug wlan1 # 無線LAN(wlan1)の設定部分 iface wlan1 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf [Ctrl] + [o] で上書き、[Ctrl] + [x] で終了
pi@raspberrypi:~ $ diff /etc/network/interfaces /etc/network/interfaces.old < iface wlan0 inet dhcp (変更後) --- > iface wlan0 inet manual(変更前)
wpa_supplicant.conf デフォルト値と設定変更
ここはとても大切。しっかりやりましょう。皆さんのルータが WPA2-PSK(AES)の場合を想定しています。SSID をステルスモードにしていてもOK。
pi@raspberrypi:~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 pi@raspberrypi:~ $ sudo cp -p /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.old pi@raspberrypi:~ $ sudo su - # 管理者権限(root)に昇格
無線LAN接続時の Key を16進数にしてわからないようにしてあげましょう。これには wpa_passphrase コマンドを使います。[SSID]と[Key]は皆さんのルータが知っています。なお、コマンド途中で >> なるものがありますが、これは指定ファイルが存在し、そのファイルの末尾に上書きする便利機能(リダイレクト)です。
root@raspberrypi:~# wpa_passphrase [SSID] [Key] >> /etc/wpa_supplicant/wpa_supplicant.conf root@raspberrypi:~# cat /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="foobaz" #psk="foobazbar" psk=xxxxxxxxxxxxxxxxxx }
root@raspberrypi:~# nano /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="foobaz" # SSID scan_ssid=1 # ステルスモードの場合は1、でない場合は0(1のままでOK) key_mgmt=WPA-PSK # 暗号化方式 proto=WPA2 # セキュリティ強度(WPA2=RSN) pairwise=CCMP # CCMPはAES、TKIPはRC4 group=CCMP priority=1 # 優先度を上げるとより早く照合(あとで重要!) #psk="foobazbar" # Key(平文)は消しておきましょう psk=xxxxxxxxxxxxxxxxxx # Key(16進数) } [Ctrl] + [o] で上書き、[Ctrl] + [x] で終了
root@raspberrypi:~# diff /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.old < scan_ssid=1 < key_mgmt=WPA-PSK < proto=WPA2 < pairwise=CCMP < group=CCMP < priority=1 --- > #psk="foobazbar" # 削除済み
インターフェース(wlan0)の再起動と動作確認
root@raspberrypi:~# ifdown wlan0 && ifup wlan0 # &&は「かつ」の意味 root@raspberrypi:~# ifconfig wlan0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 root@raspberrypi:~# iwconfig wlan0 IEEE 802.11bgn ESSID:"foobaz" # しっかりWi-Fiインターフェイスあり。 root@raspberrypi:~# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlan0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 root@raspberrypi:~# ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=29.9 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=30.0 ms root@raspberrypi:~# exit # 管理者権限(root)から降格 logout pi@raspberrypi:~ $
DNSの設定
これをしないとインターネットに繋がらないのと等しいのでやってしまうよ。
注意点は /etc/resolv.conf ではなく、/etc/resolvconf.conf です。
pi@raspberrypi:~ $ sudo cp -p /etc/resolvconf.conf /etc/resolvconf.conf.old pi@raspberrypi:~ $ sudo nano /etc/resolvconf.conf # If you run a local name server, you should uncomment the below line and # configure your subscribers configuration files below. #name_servers=127.0.0.1 name_servers=8.8.8.8 # Google先生のDNSを追加 [Ctrl] + [o] で上書き、[Ctrl] + [x] で終了 root@raspberrypi:~ $ diff /etc/resolvconf.conf /etc/resolvconf.conf.old < name_servers=8.8.8.8
ラズパイ再起動と確認
pi@raspberrypi:~ $ sudo reboot pi@raspberrypi:~ $ cat /etc/resolv.conf # Generated by resolvconf nameserver 8.8.8.8 pi@raspberrypi:~ $ sudo ping www.google.com PING www.google.com (216.58.197.132) 56(84) bytes of data. 64 bytes from nrt12s01-in-f4.1e100.net (216.58.197.132): icmp_seq=1 ttl=53 time=30.0 ms 64 bytes from nrt12s01-in-f4.1e100.net (216.58.197.132): icmp_seq=2 ttl=53 time=107 ms
パワーマネジメント機能を切る
Raspberry Pi で無線LANの反応が悪い原因は、無線LANアダプターのパワーマネジメント機能がONになっているためなので、一応やっておきましょう。
pi@raspberrypi:~ $ sudo iwconfig wlan0 power off
pi@raspberrypi:~ $ iwconfig
Power Management:off # offになっていることを確認
(それでも続く)
※ Amazon Web Services、“Powered by Amazon Web Services”ロゴ、及び本ブログで使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
※ SORACOM、その他のSORACOMサービスは、株式会社ソラコムの登録商標または商標です。