intel Edisonでドハマリ

書籍『intel EdisonではじめるIoTプロトタイピング』が先日発売されました。これを参考にintel Edisonで遊ぼうと目論み、書籍の発売日である19日にintel Edison kit for Arduinoを購入に秋葉原へ向かいました。が、秋月もマルツもEdison単体やBreakout版は在庫があるのにArduino版のみ売り切れ。マジっすか。

仕方がないので帰宅してマルツの通販で昼過ぎに注文したところ、当日の晩に発送されて翌朝には配送されてきました。素晴らしい。

余っていた12V 2AのACアダプタとUSBケーブル2本を用意し、書籍とintelのドキュメントを参考にセットアップを開始したのですが、どうもこのUSBケーブルに不具合があったようです。Edisonがうまく認識されずにUSBケーブルの抜き差しを繰り返していたところ、Windowsからまったく認識されなくなってしまいました。ドライバのインストール→削除→Windows再起動を繰り返しても解決しません。また、インストーラのファーム更新機能もうまく動作せずエラーになります。

Edison単体でFlashの初期化ができればよいのですが、これがどうも単純にはできないっぽいです。途方に暮れながら情報を漁ってみましたが、どうにも解決策が見つかりません。見つかるのは基本的にドライバ等が導入されておりEdisonが正しく認識されている状態でのファームの書き換え方法ばかりです。そりゃまあそうでしょうね。

ファームのzipの中にflashallなる更新スクリプトがあるようなので、これを試してみました。結果的にはこれが解決の糸口になりました。Macのターミナルから下記のコマンドを実行したところ、

$ brew update
$ brew install dfu-util gnu-getopt coreutils
$ cd ファームの展開先
$ chmod +x flashall.sh
$ ./flashall.sh

途中の再起動のフェーズで止まってしまったために完全なファームの更新には失敗したのですが、再びEdisonがUSBストレージとして認識されるようになり、screenやTeraTermからのシリアル接続もできるようになりました。

再度Windowsに戻り、インストーラを実行してドライバ、Flash Tool Lite, IDEをインストールします。上述の通り、インストーラのファーム更新機能はエラーになるのでここでは実行しません。従来はドライバ等を個別にインストールする必要があったようですが、現在のバージョンでは、この統合インストーラひとつで用が済むようになっており、FTDIのドライバ等を個別にインストールする必要はないようです (たぶん)。ただし、このインストーラが完了した時点では、USB仮想ネットワークドライバ (RNDIS) は認識されないことに注意して下さい。RNDISドライバが認識されないので、Flash Tool Liteでのファーム書き換えもまだできません。

書籍やウェブの情報では、ファームを更新するにはUSBストレージ領域にファームをコピーしてreboot ota云々とあります。しかしこの時点ではコピー先の領域の容量が800MB弱に対してファームの容量が1GBほどあり、コピーすることができません。

ここで、再度flashall.shを実行します。今回はWindows上で作業しているので、cygwinから実行してみることにします。flashall.batを実行したらエラーになりましたが、flashall.shは無事に実行でき、ファームの更新にも成功しました。コマンド自体はMacと同じです。

$ cd ファームの展開先
$ chmod +x flashall.sh
$ ./flashall.sh

途中の再起動のフェーズで一旦止まったように見えましたが、うかつに手を出さず辛抱強く待ったところ、処理が継続され、無事に更新することができました。単にファイルを更新するだけでなく、パーティションテーブルも書き換えてるっぽいです。

この時点でRNDISドライバが認識されるようになり、Windows側でIPアドレスを設定すればEdisonにpingが通るようになります。まだWiFiの設定が残っていますが、これでようやくintel Edisonの初期化処理が完了しました。

intel Edisonでドハマリ」への1件のフィードバック

  1. ピンバック: Parallella 開発環境 | CB1300SFのある生活

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です