ここでは EV3 をアクセスポイント化するまでの手順を説明します。
Raspberry Pi とほとんど手順は同じなので、詳しいことは以下のサイトなどを参考にしてください。
無線LANアダプタは GW-USNANO2A を使います。 まず上記のサイトにもあるように 8192CU は hostapd にはデフォルトで対応していないので、クロス環境で以下のコマンドを入力してコンパイルを行います。
wget http://12244.wpc.azureedge.net/8012244/drivers/rtdrivers/cn/wlan/0001-RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip unzip 0001-RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip cd RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/wpa_supplicant_hostapd/ tar zxvf wpa_supplicant_hostapd-0.8_rtw_r7475.20130812.tar.gz cd wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd/ make
コンパイルが終了したら、hostapdをEV3 に転送してください。
sftp robot@<IPアドレス> put hostapd
/etc/network/interfaces に以下の記述を追加してください。
auto lo iface lo inet loopback iface eth0 inet dhcp auto wlan0 iface wlan0 inet static address 192.168.11.1 netmask 255.255.255.0
以下のコマンドで hostapd をインストールしてください。
sudo apt-get install hostapd
インストールが完了したら、先ほど転送した hostapdを/usr/sbin にコピーしてください。
cp hostapd /usr/sbin/hostapd
/etc/hostapd/hostapd.conf は以下のように記述します。 ssid、wpa_passphrase は適宜変更してください。
interface=wlan0 driver=rtl871xdrv ssid=ev3_0 hw_mode=g channel=6 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=ev3atx9fr wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
/etc/default/hostapd を以下のように変更します。
#DAEMON_CONF="" → DAEMON_CONF="/etc/hostapd/hostapd.conf"
ネットワークを再起動します。
sudo /etc/init.d/networking restart
以下のコマンドで hostapd を起動します。
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf -dd
これで他の PC から設定した SSID が見えるようにはなったはずです。
以下のコマンドで DHCP サーバーをインストールします。
sudo apt-get install isc-dhcp-server
/etc/dhcp/dhcpd.conf を以下のように修正してください。
# option definitions common to all supported networks... #option domain-name "example.org"; #option domain-name-servers ns1.example.org, ns2.example.org; ping-check true; #default-lease-time 600; #max-lease-time 7200; authoritative; subnet 192.168.11.0 netmask 255.255.255.0 { option routers 192.168.11.1; option broadcast-address 192.168.11.255; option subnet-mask 255.255.255.0; option domain-name "local"; option domain-name-servers 8.8.8.8,8.8.4.4; default-lease-time 600; max-lease-time 7200; range 192.168.11.101 192.168.11.199; }
/etc/default/isc-dhcp-server を以下のように修正します。
INTERFACES="wlan0"
最後の rc.local に以下の記述を追加します。
ifdown wlan0 ifup wlan0 service hostapd start service isc-dhcp-server start
再起動する前に このページの手順で無線LANを設定している場合は、Wireless and Networks→Wifi→Powered を OFF に設定してください。また Wireless and Networks→Offline Mode を ON にしてください。
これで全ての手順が終了したので、再起動して接続できるかを確認してください。 失敗する場合は有線で EV3 と接続して設定が正しく行われているかを確認してください。
EV3 のボタン操作でアクセスポイントを起動する手順を説明します。
まず /home/robot に以下のスクリプトファイル(ここでは start_ap.sh) を作成してください。
#!/bin/sh sudo ifdown wlan0 sudo ifup wlan0 sudo service hostapd start sudo service isc-dhcp-server start
以下のコマンドで権限を変更してください。
chmod +x start_ap.sh
このファイルを EV3 のボタン操作で File Browser→start_ap.sh で起動するのですが、EV3 のボタン操作で sudo 実行時のパスワードが入力できないので sudo をパスワードなしで実行できるように設定します。
以下のコマンドを入力してください。
sudo visudo
そして以下の記述を追加してください。
robot ALL=(ALL) ALL %robot ALL=(ALL) NOPASSWD: ALL
これで準備完了です。EV3 のボタン操作で File Browser→start_ap.sh を起動してください。