Raspbian Jessie Lite の Wi-Fi 設定

Raspbian Jessie Lite に Wi-Fi の 設定を行います. Raspberry Pi へは SSH で 接続しているものとします. 今回は Raspberry Pi Zero ではなく、Wi-Fi が ついている Raspberry Pi 3 で 設定していきます.

作業環境

  • Windows 7
  • Raspbian Jessie Lite
  • Raspberry Pi 3 Model B

Wi-Fi の 国コード を 設定

設定画面の説明に Set the legal channels used in your country と あるように、国ごとに利用できるチャンネルが異なるために設定を行います. 各国の利用できるチャンネルは List of WLAN channels に まとまっています.
sudo raspi-config コマンドから、以下の順で設定します.

  1. 5 Internationalisation Options を 選択
  2. I4 Change Wi-fi Country を 選択
  3. JP Japan を 選択

最後に Finish を 選択し、再起動します.

Wi-Fi へ 接続

まずは現在の設定とアクセスポイントの一覧を見てみます.
設定ファイルは /etc/wpa_supplicant/wpa_supplicant.conf で、先に設定した Wi-Fi の 国コード JP が 反映されているのが分かります.
また iwlist scan で アクセスポイントの一覧を見ることができます. iwconfig wlan0IEEE 802.11bgn と 出ているように IEEE 802.11n/g/b で 接続できるアクセスポイントとなります. (ちゃんとリスト確認しないで、IEEE 802.11n/a の SSID を 入力して接続できずにはまりました…)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pi@raspberrypi:~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

pi@raspberrypi:~ $ iwconfig wlan0
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on

pi@raspberrypi:~ $ sudo iwlist wlan0 scan | grep ESSID
ESSID:"ABC-1234-56789X"
ESSID:"DEF-9876-54321X"
ESSID:...

接続するアクセスポイントが無事にリストに表示されていたら、wpa_passphrase コマンドで設定ファイルに接続情報を追記します.

1
pi@raspberrypi:~ $ sudo sh -c 'wpa_passphrase [SSID] [PASSPHRASE] >> /etc/wpa_supplicant/wpa_supplicant.conf'

その後、設定ファイルに書かれている平文のパスワードを消します. テキストエディタで編集します. Raspbian の デフォルト・エディタ nano で 開きます.
普段は vim なので使い慣れないですが、デフォルトとのことなので使ってみます. vim と 異なりファイルを開いた直後から編集ができます. 行削除はなさそうなので、#psk="xxx" の 行を地道に削除していきます. (範囲を指定しない切り取り ^K で 一行切り取りもありでした. 使い慣れてないので手間がかかってしまった.)
保存 は ^O で、終了 は ^X です. 画面下に表示されています. Windows では、それぞれ Ctrl + OCtrl + X に なります.

1
2
3
4
5
6
7
8
9
pi@raspberrypi:~ $ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="ABC-1234-56789X"
#psk="----PLAIN-PASSPHRASE----" <- この行を削除します
psk=055f68fd257ed0b7d41c6adb757a0a44fe1400737cac7f0fbefd6196ac66bf9a
}

ネットワーク・インターフェースを再起動し、アクセスポイントへ接続できているか確認します.

1
2
3
4
5
6
7
8
9
10
11
pi@raspberrypi:~ $ sudo ifdown wlan0
pi@raspberrypi:~ $ sudo ifup wlan0
pi@raspberrypi:~ $ iwconfig wlan0
wlan0 IEEE 802.11bgn ESSID:"ABC-1234-56789X"
Mode:Managed Frequency:2.462 GHz Access Point: 21:5E:4E:97:XX:XX
Bit Rate=65 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=69/70 Signal level=-41 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

パワーマネジメント の 設定

Wi-Fi の パワーマネージメントによってネットワークアクセスが不安定になったり、遅延が生じるケースがあります. その際にはパワーマネージメントを切ることで改善されることがあります.
パワーマネージメントを切るということは、電力消費が上がったり、Wi-Fi モジュールの熱を逃がす時間が得られないなどのトレードオフが発生しますが、必要に応じて設定をします.

設定は /etc/network/interfaceswireless-power off を 追記します.
以下に wireless-power off を 記述した部分を抜粋します.

1
2
3
4
5
pi@raspberrypi:~ $ sudo nano /etc/network/interfaces
allow-hotplug wlan0
iface wlan0 inet manual
wireless-power off
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

再起動し iwconfig wlan0 コマンドで Power Management:off に なっていることを確認します.

1
2
3
4
5
6
7
8
9
10
pi@raspberrypi:~ $ sudo reboot
pi@raspberrypi:~ $ iwconfig wlan0
wlan0 IEEE 802.11bgn ESSID:"ABC-1234-56789X"
Mode:Managed Frequency:2.462 GHz Access Point: 21:5E:4E:97:XX:XX
Bit Rate=65 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=69/70 Signal level=-41 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

設定については、こちらの Disable power management for Ralink RT5370 を 参考にさせて頂きました.

固定 IP アドレス を 設定する

avahi-daemon が 動作しているため Bonjour の クライアントが入っていれば、LAN 内では ホスト名.local で Raspberry Pi へ アクセスすることができます.
そのため 固定 IP を 設定しなくても困らないケースが多いとは思いますが、備忘録として 固定 IP の 設定方法を残しておきます. (ミニマム構成にするために avahi-daemon を 止めるというケースは想定されますね.)

環境

  • IP アドレス: 192.168.0.100
  • ネットマスク: 255.255.255.0
  • デフォルト GW: 192.168.0.1

設定は /etc/dhcpcd.conf の 一番最後に以下の内容を記述します.

1
2
3
4
5
pi@raspberrypi:~ $ sudo nano /etc/dhcpcd.conf
interface wlan0
static ip_address=192.168.0.100/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

interface wlan0 は 無線 LAN の ネットワーク・インターフェース、有線 LAN で IP アドレス を 固定する場合は wlan0eth0 にします.

DHCP の クライアント を 再起動し、設定した IP アドレス で アクセスできるか確認します.

1
pi@raspberrypi:~ $ sudo service dhcpcd reload

SD カード 作成時 に Wi-Fi 設定をしておく (2017.03.07 追記)

Raspberry Pi 3 や Raspberry Pi Zero W の OS イメージ を Raspbian で 作る際に、あらかじめ wpa_supplicant.conf を 作っておくことで、初回起動時から Wi-Fi へ 接続しておくことができます.

詳しくは、こちら ラズパイ の OS イメージを焼くときは Etcher が 便利 & UI カッコいい を ご参照ください.


Raspberry Pi 3

ラズパイを始めるには 全部入りの Raspberry Pi 3 が 手ごろではないでしょうか. Raspberry Pi Zero - ラズベリー・パイ ゼロRaspberry Pi Zero W - ラズベリー・パイ ゼロ W は 国内では入手しずらいため値上がりしてしてますし、GPIO ピン も 自分で付ける必要があったりと色々と手がかかります. その分楽しいというのもありますが.
届くまで時間がかかってもよい場合は こちら Raspberry Pi Zero の 購入 で 記事にしました Pimoroni さん から購入する手もあります.

Raspberry Pi 3 の 電源

Raspberry Pi 3 は 5V/3A の 電源が必要になります. スマホの充電アダプタでは出力が足りない場合もあるので確認が必要です.

マイクロ SD カード

ラズパイ の OS や ストレージに必要です. 16GB あれば十分だと思いますが、用途次第なので お好みのサイズで用意します.

USB の WiFi モジュール

内臓 WiFi が 無い Raspberry Pi 2 や Raspberry Pi Zero の 場合は、USB の WiFi モジュール を 使いすることで使えます. いろいろな種類がありますが PLANEX さん のがよさそうです.

USB の 変換アダプタ

Raspberry Pi Zero で USB 機器を使う場合に、マイクロ USB の 製品があると便利ですが、上記 WiFi モジュール のように マイクロ USB ではない場合は、この製品が便利です.
なんと USB の コネクタ内に入ってしまうので、通常の変換製品より圧倒的に出っ張りが少ないです!


無事 Wi-Fi へ 接続できるようになりました. 小型なのがラズパイの魅力だから Wi-Fi で ネットに接続できることで更に取り回しが楽になりますね.