EagletからIntel Edisonのファームウェアとパッケージを最新化

![edsion-eaglet.png](https://qiita-image-store.s3.amazonaws.com/0/59581/33a0155b-e2db-1234-504a-b4ce843cfbd5.png)
1年ほど前に購入したIntel Edisonのファームウェアをアップデートしたので、そのやり方をメモしておきます。

ベースボードは[SwitchScience版Eaglet](https://www.switch-science.com/catalog/2070/)を使います。

コマンドはMacから接続することを前提に書いていますので、Windowsだと読み替えが必要です。

## 1. Macと接続する
![edison-serial.png](https://qiita-image-store.s3.amazonaws.com/0/59581/c3c78018-6c27-653a-70de-963d5e5c01e7.png)

### シリアルコンソールへの接続
ベースボードに出ているシリアルポートにUSBシリアル変換基板を接続してMacからシリアルコンソールを見れるようにします。

EdisonのI/Oは1.8Vですが、Eagletは3.3Vへ変換する回路が搭載されているので、3.3Vで接続できるシリアル変換基板が使えます。

今回は[サンハヤトのUSBシリアル変換基板](http://www.sunhayato.co.jp/material2/index.php/item?cell003=%E6%95%99%E8%82%B2%E5%AE%9F%E7%BF%92%E3%83%BB%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C%E8%A3%BD%E5%93%81&cell004=IC%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB&name=%E6%B0%97%E5%9C%A7%E3%83%BB%E6%B8%A9%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%EF%BC%88%E3%83%AC%E3%83%99%E3%83%AB%E5%A4%89%E6%8F%9BIC%E4%BB%98%E3%81%8D%EF%BC%89%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%80%80MM-TXS03&id=758&label=1)を使いました。

**シリアル変換基板の電圧設定を3.3Vにするのを忘れないようにしてください。**

```
ベースボード <-> USBシリアル変換基板

TX         <-> RX
RX         <-> TX
GND        <-> GND
```

### EdisonをUSBで接続
ボードのmicroUSBポートとMacのUSBをケーブルで接続するとファームウェアを書き込むためのディスクとして認識されます。

## 2. ファームウェアのアップデート

Edisonのファームウェアをアップデートするにはディスクとして認識されたEdisonにファームウェアのイメージを書き込む必要があります。

過去のバージョンのファームウェアはダウンロードしたイメージを直接ディスクに展開すれば問題ありませんでした。
しかし、最新のファームウェアはイメージサイズが認識されるディスクサイズを上回っており、マニュアル等に記載されているコマンドではアップデートできませんでした。

そこで、Intelから提供されているFlash Tool Liteというソフトウェアを使ってファームウェアアップデートを行います。 

https://software.intel.com/en-us/iot/hardware/edison/downloads から最新のイメージとFlash Tool Liteをダウンロードします。
今回は`Release 2.1 Yocto* complete image`と`Flash Tool Lite(OS X)`を選択してダウンロードします。

Flash Tool Liteのインストールを行い起動します。
起動すると以下のような画面になります。
![edison-flash-lite-ss.png](https://qiita-image-store.s3.amazonaws.com/0/59581/40352ab2-d06b-a8ec-59b1-1bb36e0ec12b.png)
Browseボタンから上でダウンロードしたイメージファイルを選択すると解凍が始まります。
解凍が終わるとStart to flashボタンが押せるようになるので、押してEdisonを接続するとファームウェアの書き込みが始まります。
基板上のLEDがチカチカしなくなれば完了です。

## 3. シリアルコンソールに接続する

以下の手順で接続します。

```bash
# xxxxxxの部分は環境によって異なるので置き換えてください。
$ screen /dev/tty.usbserial-xxxxxx 115200 -L
# 何も出てこない時はEnterを押すと出てきます。
Poky (Yocto Project Reference Distro) 1.7.2 edison ttyMFD2

edison login: root # root でログイン
root@edison:~# configure_edison --version # firmwareバージョンを確認
159.devkit
root@edison:~# uname -a # kernelのバージョンを確認
Linux edison 3.10.17-poky-edison+ #1 SMP PREEMPT Fri Jun 19 12:06:40 CEST 2015 i686 GNU/Linux
```

## 4. EdisonをWiFiへ接続する

```bash
root@edison:~# 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: # 設定するパスワードを入力

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): # デバイス名を設定

Configure Edison: WiFi Connection
...
Enter 0 to rescan for networks.
Enter 1 to exit.
Enter 2 to input a hidden network SSID.
Enter a number between 3 to 7 to choose one of the listed network SSIDs: # SSIDの選択

Password must be between 8 and 63 characters.
What is the network password?: # WiFiの暗号化キーを入力

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://192.168.x.x or http://xxxxxxx.local in your browser.
```

ここまで出れば終わりです。最後に出てきたURLへアクセスするとEdison上に立っているWebサーバーにアクセスできます。

## 5. OSのパッケージのアップデートを行う

4の続きでEdisonにログインした状態で以下を実行します。

```bash
root@edison:~# opkg update
root@edison:~# opkg upgrade
```

以上で完了です。