DHCPを使わずに無線LANに接続する
普通はDHCPクライアントが自動的にIPアドレスを取得してくれるが、今回はDHCPサーバにしたかったので dhcpcd5 と isc-dhcp-client をpurge してから以下の方法でネットワーク情報を設定した。
resolvconf のインストール
「dpkg -l |grep resolvconf」で確認して、もし入っていないなら「sudo apt-get install resolvconf 」でインストールする。
Raspbian Lite 等ではデフォルトではインストールされていない。
これで /etc/network/interfaces 中に dns-nameservers を記述できるようになる
/etc/network/interfaces の編集
source-directory /etc/network/interfaces.d auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto wlan0 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf wireless-power off allow-hotplug wlan1 iface wlan1 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf wireless-power off iface default inet dhcp iface home inet static address xxx.xxx.xxx.xxx network xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx broadcast xxx.xxx.xxx.xxx gateway xxx.xxx.xxx.xxx dns-nameservers xxx.xxx.xxx.xxx
ポイントはwpa-conf ではなく wpa-roamを使うことと、 ネットワーク情報を記述するインタフェースを別途追加しておくこと。
ついでに wireless-power off で無線LANの省電力機能を無効化している。実際に無効化されたかどうかは「iwconfig」コマンドで確認できる。
アクセスポイントのパスワードの暗号化
「wpa_passphrase (your_ssid_name)」を実行して標準入力にパスワードを打ち込むと次のような出力が得られる
network={ ssid="(your_ssid_name)" #psk="**********" psk=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
"**********" の部分には生のパスワードが、 XXX... の部分には暗号化されたパスワードが入る。ダブルクオートの有無に注意。
暗号化されたパスワードだけコピペして、すぐにCTRL+Lで画面を消してしまおう。
/etc/wpa_supplicant/wpa_supplicant.conf の編集
country=JP ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="(your_ssid_name)" psk=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX priority=0 id_str="home" }
ssidとpskの部分は先ほど得られた内容に置き換える。ダブルクオートの有無に注意。暗号化されたパスワードの前後にダブルクオートをつけてはいけない。
id_strには、 /etc/network/interfaces 中の、ネットワーク情報を記述したインタフェースの名前を指定する