この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
AWSチームのすずきです。
Intel Edison、reboot otaコマンドによりOS(Yocto linux)の更新、リカバリが実施可能です。
参考:09: Edison Getting Started Guideをやってみる
reboot otaコマンドが利用出来ない状況からの復旧や、別OSの導入などの場合には、 USB接続した別PCより、Intel EdisonのFlashROMの書換が必要となる場合があります。
参考:15: Intel Edison上のOSが起動しなくなった / rootパスワードを忘れた時には
FlashROMの書換に利用する「dfu-util」、MacOSX環境でもBrewを用いた導入が可能ですが、これが正常に機能しない事がありました。
確実なFlashROMの書換が期待できる実行環境として、Linux(Ubuntu)をOSX上のVMware Fusion上で稼働させ、Intel EdisonのFlashROMの書換が可能な事を確認できました。その手順を以下に示します。
実行環境
OS
- Mac:MacBook Air (2014)
- OS:OSX Yosemite (10.10.2)
- 仮想ホスト:VMware Fusion 6.0.x
- 仮想OS設定
- OS:Ubuntu Server 14.04.1 LTS
- 最小インストール
- 追加パッケージ:ssh unzip screen dfu-util
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ssh
sudo apt-get unzip screen dfu-util
USB接続設定
- EdisonのJ3、J16にUSBで接続。
- VMware Fusion上で、認識した以下のデバイスは
「動作を確認」→「この仮想マシン(Linux)に接続」
とし、Edisonリブート後の再接続を可能とします。
- Future Devices FT232R USB UART(J3)
- Intel Edison(J16)
VMware Fusion USB設定画面
Edison Flash更新
イメージ入手と更新スクリプト実行
- VM上のLinux(Ubuntu)にログインします。
- Edison用のイメージファイルを入手します。
- 同梱のスクリプト(flashall.sh)を実行します。
rel1 ww42-14 実行例
$ mkdir -p /tmp/ww42-14; cd /tmp/ww42-14
$ wget http://downloadmirror.intel.com/24389/eng/edison-image-rel1-maint-rel1-ww42-14.zip
$ unzip http://downloadmirror.intel.com/24389/eng/edison-image-rel1-maint-rel1-ww42-14.zip
$ sudo ./flashall.sh
Using U-Boot target: edison-blank
Now waiting for dfu device 8087:0a99
Please plug and reboot the board
Edisonの再起動
- 「flashall.sh」を実行した環境で「Please plug and reboot the board」と表示されている間に、 Intel Edison Arduinoボード上のRESETボタン(SW1UI5)を押下します。
- Edisonの起動をトリガとしてFlashROMの更新処理が開始します。
- フラッシュ更新の所要時間は5〜10分程度です。
- Edison上のデータ、USBストレージ領域を含めて全て消去されます。必要なデータはMicroSDなどの外部媒体に退避させて下さい。
- EdisonのUSBコンソール(J3)にて進捗を確認する事をお勧めします。
- USBコンソール、VM上のLinuxで/dev/ttyUSB0として認識している場合、以下で確認が可能です。
$ sudo screen /dev/ttyUSB0 115200 -L
flashall.sh 実行ログ
$ sudo ./flashall.sh
[sudo] password for ubuntu:
Using U-Boot target: edison-blank
Now waiting for dfu device 8087:0a99
Please plug and reboot the board
Flashing IFWI
##################################################] finished!
##################################################] finished!
Flashing U-Boot
##################################################] finished!
Flashing U-Boot Environment
##################################################] finished!
Flashing U-Boot Environment Backup
##################################################] finished!
Flashing boot partition (kernel)
##################################################] finished!
Flashing rootfs, (it can take up to 5 minutes... Please be patient)
##################################################] finished!
Rebooting
U-boot & Kernel System Flash Success...
Your board needs to reboot twice to complete the flashing procedure, please do not unplug it for 2 minutes.
Edison コンソールログ
$ sudo screen /dev/ttyUSB0 115200 -L
******************************
PSH KERNEL VERSION: b0182727
WR: 20104000
******************************
(略)
U-Boot 2014.04 (Oct 12 2014 - 15:29:52)
Watchdog enabled
DRAM: 980.6 MiB
MMC: tangier_sdhci: 0
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
Target:blank
Partitioning already done...
Flashing already done...
GADGET DRIVER: usb_dnl_dfu
#
DFU complete CRC32: 0x677be95a
DOWNLOAD ... OK
Ctrl+C to exit ...
#
DFU complete CRC32: 0x677be95a
DOWNLOAD ... OK
Ctrl+C to exit ...
#
DFU complete CRC32: 0x7d41232d
DOWNLOAD ... OK
Ctrl+C to exit ...
#
DFU complete CRC32: 0x6d41a02b
DOWNLOAD ... OK
Ctrl+C to exit ...
#
DFU complete CRC32: 0x6d41a02b
DOWNLOAD ... OK
Ctrl+C to exit ...
#
DFU complete CRC32: 0xdaddfa4a
DOWNLOAD ... OK
Ctrl+C to exit ...
################################################################
DFU complete CRC32: 0xdb8b7821
DOWNLOAD ... OK
Ctrl+C to exit ...
resetting ...
******************************
PSH KERNEL VERSION: b0182727
WR: 20104000
******************************
SCU IPC: 0x800000d0 0xfffce92c
PSH miaHOB version: TNG.B0.VVBD.0000000c
microkernel built 23:15:13 Apr 24 2014
(略)
Kernel command line: "root=PARTUUID=012b3303-34ac-284d-99b4-34e03a2335f4 rootfstype=ext4 console=ttyMFD2 earlyprintk=ttyMFD2,keep loglevel=4 systemd.unit=multi-user.target hardware_id=00 g_multi.iSerialNumber=58ff0c93bfef8929ea50d421e69542c6 g_multi.dev_addr=02:00:86:95:42:c6"
Starting kernel ...
(略)
Welcome to Linux!
(略)
Poky (Yocto Project Reference Distro) 1.6 edison ttyMFD2
edison login:
2回の再起動後、新OSの操作が可能となります。
おまけ
Intel Edison 用のOSイメージ入手先リスト(2015年2月時点)