wifi設定 - HondaLab/Robot-Intelligence GitHub Wiki

EV3本体をつかった設定の場合

Wireless and Networks 内のWi-FiをPower Onにし,ESSIDとPASSWDを入力する. All Netowk Connections でIPアドレスなどを手動で設定すると,外部からログインできる.

参考

この方法では,EV3のボタンを操作して文字入力をする必要があるので,手間がかかる.

下記のUSBでログインしてから設定ファイルを作成する方法をおすすめする.

USBでログインしてwpa_supplicant を設定する

USBネットワークでログインしている場合は,コマンドを実行するか,スクリプトを作成することで,wifiを有効にすることができる.

IPアドレスなど設定する

ifconfig インターフェイス名 172.16.xxx.yyy
ifconfig インターフェイス名 netmask 255.255.255.0

confファイルを作成する.

cd /opt
wpa_passphrase ESSID KEY > wpa_supplicant.conf

wpa_supplicantの実行

pkill wpa_supplicant
wpa_supplicant -B -iインターフェイス名 -c/opt/wpa_supplicant.conf

pkill はすでに実行されているwpa_supplicantがある場合,必要である.

rc.localで自動的にwifi接続する

以上の操作をEV3の起動のたびに自動的に行うためには,rc-local serviceを利用する.

たとえば, /opt/wpa.shというファイルを下記の内容でつくる.

#!/usr/bin/sh

intf=wlan0
addr=172.16.xxx.yyy/24

pkill wpa_supplicant
sleep 1
wpa_supplicant -B -i $intf -c /opt/wpa_supplicant.conf
sleep 1
ifconfig $intf $addr

addrの/24の意味はサブネットマスクを24ビットにする,つまり255.255.255.0にするという意味である.

つぎに /etc/rc.local に下記の内容を追加する.

#!/usr/bin/sh

/opt/wpa.sh

exit 0

さいごに各スクリプトに実行パーミッションを付与して,rc-local serviceを再起動する.

# chmod u+x /opt/wpa.sh
# chmod u+x /etc/rc.local
# systemctl restart rc-local 

rc.localに直接wifi関連のコマンドを並べても可能だが, rc.localにはそれ以外の機能も記述する可能性があるので,このように/opt/wpa.shとして別スクリプトにして それをrc.localから呼び出す形のほうがスッキリするであろう.

この状態にしておけば,EV3の電源をいれただけで,自動的にwpa_supplicantが実行され,wifi接続が 行われる.

参考ページ

wifiの設定

systemdに登録する方法

rc-localサービスを用いないで 直接 wpaサービスをつくる方法もある.

スクリプトを作成して,起動時に自動的に実行するためには,stretchの場合,systemdに登録する必要がある. 参考:https://qiita.com/tkato/items/6a227e7c2c2bde19521c