0%

Intel Edisonの初期設定とChromebookからシリアル接続してWi-Fiの確認をする

EdisonからChromebookのUSBテザリングを使いインターネットに接続することができました。ファームウェアの更新とEdisonの初期設定をして開発の準備をします。EdisonはNode.jsがデフォルトでインストールされているので初期設定が終了したら開発に入ることができます。

ファームウェアの更新

工場出荷状態のファームウェアは古いようなので最新のイメージをダウンロードして更新します。

Chromebookでイメージのダウンロード

ChromebookとEdisonのJ16のUSBコネクタを接続するとファイルアプリからEdisonの名前でドライブがマウントされます。まだフォルダには何もはいっていません。

edison-mount.png

Intel Edison Software DownloadサイトからYocto complete imageをダウンロードします。ダウンロードしたedison-image-ww05-15.zipをダブルクリックして展開して、中身をすべてEdisonフォルダにコピーします。

EdisonにSSH接続

Chromeブラウザを開き、ctrl + alt + tからcroshを起動してshellを実行します。

crosh> shell

EdisonはJ16コネクタをChromebookと接続してUSBテザリングします。Edisonを使いたいときにネットワーク設定をするスクリプトを用意します。

~/Downloads/edison-setup.sh
sudo sh -c 'echo 1 >> /proc/sys/net/ipv4/ip_forward'
sudo ifconfig usb0 192.168.2.1 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o mlan0 -j MASQUERADE
sudo iptables -A FORWARD -i mlan0 -o usb0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i usb0 -o mlan0 -j ACCEPT
ssh root@192.168.2.15

スクリプトを実行してEdisonにSSH接続します。

$ bash ~/Downloads/edison-setup.sh

デフォルトゲートウェイの設定をしてインターネット接続ができることを確認します。

$ route add default gw 192.168.2.1
$ route -n
$ ping -c 1 www.yahoo.co.jp

Edisonでファームウェアの更新

ファームウェアの更新前のバージョンはedison-weekly_build_56_2014-08-20_15-54-05です。

$ cat /etc/version 
edison-weekly_build_56_2014-08-20_15-54-05

reboot otaコマンドを実行するとEdisonが再起動します。ファームウェアが更新されるのでしばらく待ちます。

$ reboot ota

Chromebookからリムーバルデバイスが再認識されるのでEdisonにSSH接続します。更新されたバージョンを確認するとweekly-120でした。configure_edisonコマンドを--upgradeフラグを付けて実行すると、ファームウェアは最新版になったようです。今後はコマンドからファームウェアの更新ができるようになります。

$ cat /etc/version 
weekly-120
$ configure_edison --upgrade
The latest version is already installed.

初期設定

configure_edisonコマンドを--setupフラグを付けて実行して初期設定をします。

$ configure_edison --setup

パスワードとデバイス名

ダイアログでは最初にパスワード設定をします。

Configure Edison: Device Password

Enter a new password (leave empty to abort)
This will be used to connect to the access point and login to the device.
Password: *********
Please enter the password again: *********

次にデバイス名を入力します。edisonにしました。

Configure Edison: Device Name

Give this Edison a unique name.
This will be used for the access point SSID and mDNS address.
Make it at least five characters long (leave empty to skip): edison
Is edison correct? [Y or N]: Y

Do you want to set up wifi? [Y or N]: Y

Wi-Fiの設定

次にWi-Fiの設定に入ります。今回の環境ではWi-Fiのアクセスポイントはステルスモードなので、2 (Manually input a hidden SSID)をタイプしてSSIDを手動で入力します。暗号化方式は環境にあわせて設定します。

Configure Edison: WiFi Connection

Scanning: 1 seconds left

0 : Rescan for networks
1 : Exit WiFi Setup
2 : Manually input a hidden SSID
....

Enter 0 to rescan for networks.
Enter 1 to exit.
Enter 2 to input a hidden network SSID.

Enter a number between 3 to 6 to choose one of the listed network SSIDs: 2
Please enter the hidden network SSID: xxxx
Is xxxx correct? [Y or N]: Y

0: OPEN
1: WEP
2: WPA-Personal(PSK)
3: WPA-Enterprise (EAP)

Select the type of security [0 to 3]: 2
Password must be between 8 and 63 characters.
What is the network password?:
Initiating connection to xxxx. Please wait...
Attempting to enable network access, please check 'wpa_cli status' after a minute to confirm.
Done. Please connect your laptop or PC to the same network as this device and go to http://xxx.xxx.xxx.xxx or http://edison.local in your browser.

ダイアログで入力したWi-Fiの設定はRaspberry Piと同様にwpa_supplicant.confに保存されます。scan_ssid=1も入っています。

/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
config_methods=virtual_push_button virtual_display push_button keypad
update_config=1
fast_reauth=1
device_name=Edison
manufacturer=Intel
model_name=Edison

network={
ssid="xxx"
scan_ssid=1
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
eap=TTLS PEAP TLS
psk="xxx"
}

パッケージの更新

opkgコマンドを使いパッケージの更新をします。まずopkg updateしてパッケージのリストを更新します。

$ opkg update
Downloading http://iotdk.intel.com/repos/1.1/intelgalactic/Packages.
Updated list of available packages in /var/lib/opkg/iotkit.

opkg upgradeを実行するとlibmraa0とupmパッケージが更新されました。

$ opkg upgrade
...
upm (0.1.9) already install on root.
libmraa0 (0.6.1) already install on root.
Configuring libmraa0.
Configuring upm.

時刻合わせ

timedatectlコマンドを実行するとタイムゾーンがUTCになっています。

$ timedatectl
Local time: Fri 2015-03-06 01:33:41 UTC
Universal time: Fri 2015-03-06 01:33:41 UTC
RTC time: Fri 2015-03-06 01:33:41
Time zone: Universal (UTC, +0000)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a

タイムゾーンをAsia/Tokyoに設定します。

$ timedatectl set-timezone Asia/Tokyo
$ timedatectl
Local time: Fri 2015-03-06 10:34:59 JST
Universal time: Fri 2015-03-06 01:34:59 UTC
RTC time: Fri 2015-03-06 01:34:59
Time zone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a

Node.js

EdisonはデフォルトでNode.jsとnpmがデフォルトで使えます。

$ node -v
v0.10.28
$ npm -v
1.4.9

Chromebookからシリアル接続をしてWi-Fiの確認

ChromebookとJ16コネクタで接続していましたが、シリアル接続の場合はJ3コネクタとつなぎます。J16コネクタは電源アダプタに接続します。ChromeウェブストアからSerial Monitorをインストールしてシリアル接続のテストをします。

port-monitor.png

pingコマンドを送信して、インターネット接続の確認ができました。

ping-test.png