はじめに
2015年3月26日(木)に「Intel Edison勉強会 第2回目: OSのアップデートが来ました!」というのがあり、私も「Intel Edison Compute Module Firmware Release 2 BETA WW05-15」についてのセッションを受け持ちました。その際に使用した資料(スライド)の配布と、当日口頭で話をした内容を盛り込んでまとめたメモを公開します。
資料(スライド)について
当日使用した資料(PowerPoint形式のスライド)をPDF化したファイルを用意しました。このファイルは以下の条件で提供するものです:
- 「Intel Edison勉強会」で使用された資料を共有する目的で配布するものであり、他の意図は全くありません。
- このファイルはありのままで提供されるもので、発表者である“さかきけい”は内容について事前に問題点を承知しているか否かにかかわらず、一切保証しません。
- 発表以後に気付いた内容の誤りや誤字などは修正していません。
- 各種商標および登録商標等については概ね省略しています。
- “さかきけい”に限らず、他の関係者は一切責任を負いません。利用する方々の責任においてのみ、使用することができます。
- 本ファイルの著作権などの諸権利(日本国が各国と結んでいる条約上の権利を含む)について“さかきけい”はすべてを留保します。
【PDF】自己の責任において使用することに同意してダウンロードします。
メモにまとめたものについて
以下にメモにまとめたものを公開します。資料(スライド)にセッションの発表時に口頭で説明したものを盛り込んだ上で、プラス・アルファしたものです:
Intel Edison Compute Module
Firmware R2-beta-WW05-15
R1最後のリリースと比較してR2で変更されたことのまとめ
・・・・のようなものです。
作成:さかきけいhttps://kei-sakaki.jp/
どこまでやるの?
- 全部紹介したいのはやまやまですが、細かいところまで始めると数時間必要になるので、大きな変更・追加を中心にしたいと思います。
- Intel Corporationが作成したページの情報を基本にそこから派生した情報を拾っています。
Intel Edisonファーム・ウェアの種類
バージョン | 内容 |
---|---|
初期プレインストール版 | シリアル・コンソールで文字入力を取りこぼすバージョンとして有名です。 |
Release-1 WW36-14 | Intel Edison発売時に公開されていたバージョンで、最初からこのバージョンに更新して使用することが推奨されていたもので、シリアル・コンソールで文字入力を取りこぼさなくなっています。 |
Release-1 maint WW42-14 | 日本でのIntel Edison発売後すぐに公開されたバージョンです。このため初めて使うときにはこのバージョンを使っていた人も多いのではないかと思います。 現在のところR1最後のリリース版です。 |
Release-2 beta WW05-15 | Release 2のベータ版です。概ねRelease 2の機能はこれで固まっているのだろうと思われます。 |
ファームウェアの更新方法について
R2-beta-ww05-15ではパーティションの構成が変更されているので、一般的な方法(USBで接続した時に認識されるストレージにファームウェア・イメージを載せて、Linuxコマンド・ラインから「reboot ota
」を実行する方法)ではなく、「flashall.bat
」あるいは「flashall.sh
」を実行して完全に新しいファーム・ウェアで初期化する方法を使用することをお勧めします。
※初期化なので設定内容やユーザーのファイル等は全部消えます!
Windows 7での更新例
- 更新に使用する「
dfu-util.exe
」を入手します。今回は下記URLよりビルド済みのものをダウンロードさせていただきました:
https://dl.dropboxusercontent.com/u/54378433/dfu-util/dfu-util.exe
- Intel Corporationのサイトからr2-beta-WW05-15のイメージ・ファイルをダウンロードして任意のフォルダーに展開します。
- そのフォルダーに先ほどダウンロードしたdfu-util.exeを置きます。
- Intel Edisonが該当パソコンに接続されていないこと、および電源が切れていることを確認します(すぐに接続して使用できるようにしておきます)。
- 展開したフォルダーの「flashall.bat」を実行します。
- Intel Edisonをパソコンへ接続して起動させます。
- しばらくするとIntel Edisonを検出してイメージの書き込みが開始されるので終了するまで待ちます。私の環境では5分ほどかかりました。
- 「flashall.bat」の実行終了後2分間は接続したままにして電源を落とさないようにして待ちましょう(flashall.batの最後にそういう表示が出ます)。
- 正常に起動すれば完了です。
Windows 7で更新を行った際の表示例
ファーム・ウェアの更新後の状態
以下にRelease 1最後のバージョンであるr1-maint-ww42-14、flashall.bat
で書き込んだRelease 2のベータ版であるr2-beta-ww05-15、およびreboot ota
で書き込んだRelease 2のベータ版であるr2-beta-ww05-15において、パーティションがどのように設定されているかを示します。
r1-maint-ww42-14
Poky (Yocto Project Reference Distro) 1.6 edison ttyMFD2
edison login: root
root@edison:~# uname -a
Linux edison 3.10.17-poky-edison+ #1 SMP PREEMPT Tue Oct 14 15:19:49 CEST 2014 i686 GNU/Linux
root@edison:~# cat /etc/version
edison-rel1-maint-weekly_build_16_2014-10-14_14-56-19
root@edison:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 475080 329920 108464 75% /
devtmpfs 491736 0 491736 0% /dev
tmpfs 492048 0 492048 0% /dev/shm
tmpfs 492048 496 491552 0% /run
tmpfs 492048 0 492048 0% /sys/fs/cgroup
tmpfs 492048 496 491552 0% /etc/machine-id
systemd-1 5638 5184 454 92% /boot
tmpfs 492048 56 491992 0% /tmp
systemd-1 2337308 3588 2317336 0% /home
tmpfs 492048 0 492048 0% /var/volatile
/dev/mmcblk0p5 1003 19 913 2% /factory
/dev/mmcblk0p10 2337308 3588 2317336 0% /home
/dev/mmcblk0p7 5638 5184 454 92% /boot
r2-beta-ww05-15(flashall.bat
で更新の場合)
Poky (Yocto Project Reference Distro) 1.6.1 edison ttyMFD2
edison login: root
root@edison:~# uname -a
Linux edison 3.10.17-poky-edison+ #1 SMP PREEMPT Fri Jan 30 14:16:35 CET 2015 i686 GNU/Linux
root@edison:~# cat /etc/version
weekly-120
root@edison:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 1458032 381136 992360 28% /
devtmpfs 491416 0 491416 0% /dev
tmpfs 491728 0 491728 0% /dev/shm
tmpfs 491728 500 491228 0% /run
tmpfs 491728 0 491728 0% /sys/fs/cgroup
systemd-1 5862 5400 462 92% /boot
tmpfs 491728 4 491724 0% /tmp
systemd-1 1337936 2052 1319500 0% /home
tmpfs 491728 0 491728 0% /var/volatile
/dev/mmcblk0p5 1003 19 913 2% /factory
/dev/mmcblk0p10 1337936 2052 1319500 0% /home
/dev/mmcblk0p7 5862 5400 462 92% /boot
r2-beta-ww05-15(reboot ota
で更新の場合)
Poky (Yocto Project Reference Distro) 1.6.1 edison ttyMFD2
edison login: root
root@edison:~# uname -a
Linux edison 3.10.17-poky-edison+ #1 SMP PREEMPT Fri Jan 30 14:16:35 CET 2015 i686 GNU/Linux
root@edison:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 475080 372568 65816 85% /
devtmpfs 491416 0 491416 0% /dev
tmpfs 491728 0 491728 0% /dev/shm
tmpfs 491728 504 491224 0% /run
tmpfs 491728 0 491728 0% /sys/fs/cgroup
systemd-1 5862 5400 462 92% /boot
tmpfs 491728 4 491724 0% /tmp
tmpfs 491728 0 491728 0% /var/volatile
/dev/mmcblk0p5 1003 19 913 2% /factory
/dev/mmcblk0p7 5862 5400 462 92% /boot
systemd-1 2337308 3592 2317332 0% /home
/dev/mmcblk0p10 2337308 3592 2317332 0% /home
パーティション設定の差
flashall.bat
でIntel Edison Compute Moduleへ書き込んだr2-beta-ww05-15は、r1-maint-ww42-14とは異なるパーティションになっています。具体的にはルート・ファイル・システム(/
)が463MBから1423MBに増量されています。当然全体の容量は変わらないので、減ったパーティションもあります。それが/home
パーティションで、ルート・ファイル・システムが拡大した分減っています。
一方でreboot ota
でIntel Edison Compute Moduleに書き込んだr2-beta-ww05-15ではルート・ファイル・システムの容量は増加しておらず、また/home
パーティションも減っていません。このようにパーティションの設定が変更されていないわけです。このために、Release 2への移行時にはflashall.bat
を使用する方法でIntel Edison Compute Moduleへ書き込みを行うべきです。
Release-1で提供される機能
出典: IDF14 / Intel® Edison Technology for Engineers: Hardware, Software, and Cloud / P.35
Release-2で提供される機能
出典: IDF14 / Intel® Edison Technology for Engineers: Hardware, Software, and Cloud / P.36
ただし赤色の強調は筆者によるものです。
赤色の着色を行った部分がRelease-2で拡張された部分です。ただし、この表はIDF14で2014年12月に実装予定として発表されたもので、すべてが実現されているというものではありません。
R2-beta-WW05-15の新機能
- Wi-Fiダイレクト
- Bluetooth LE(Low Energy)と8個の新たなプロファイルのサポート
- 拡張されたデバイスからデバイスおよびデバイスからクラウドへのメッセージング、セキュリティーおよび認証
Wi-Fiの改善
Wi-Fiダイレクト、多用途およびアドホック・ネットワークのサポート
機能 | 詳細 |
---|---|
Wi-Fiピア・ツー・ピア接続とWi-Fiダイレクト | 2つのIntel Edison Compute Module(またはIntel Edisonとスマートフォン)がダイレクトにWi-Fi接続をアクセス・ポイントを介すことなく行うことができます。 |
Wi-Fiの多用途化 | 同時にWi-Fiダイレクト・オペレーションによるアクセス・ポイントへの接続を可能にします。 |
Wi-Fi IBSSモード | アクセス・ポイントを一切含まないマルチ・ノード・アドホック・ネットワークの新規作成が可能です。 |
詳細:
Intel® Edison Wi-Fi User Guide
Bluetoothベース・レート・プロファイル
機能 | 詳細 |
---|---|
Hands-Free Profile(HFP) | ハンズ・フリー・ユニットまたはオーディオ・ゲートウェイへの接続が可能になります。 |
Advanced Audio Distribution Profile(A2DP) | Intel Edison開発ボードからオーディオを流すことが可能になります。 |
Serial Port Profile(SPP) | Intel Edison開発ボードからオーディオを流すことが可能になります。 |
Device ID Profile(DIP) | 基本的なデバイス・クラスの範囲を超えて、Intel Edison開発ボードの識別を拡張します。 |
詳細:
Intel® Edison Products Bluetooth* User Guide
Bluetooth LEとObject Exchange(OBEX)プロファイル
機能 | 詳細 |
---|---|
Time Profile(TIP) | Intel Edisonが日付、時間、タイムゾーン、および夏期時間に関する情報を得て関連制御機能を構成することが可能になります。 |
Proximity Profile(PXP) | Intel Edisonと別デバイスの間の近接モニタリングを可能にします。 |
Generic Attribute Profile (GATT) Profile越しのHuman Interface Devices (HID) | Intel Edisonがキーボードやゲーム・コントローラーのようなBLEが有効なHIDと接続することが可能になります。 |
File Transfer Profile (FTP) | Intel Edisonがどのファイルとフォルダーがどのように当方と先方の間で閲覧できるか、およびファイルの送信と受信が可能かを定義します。 |
詳細:
Intel® Edison Products Bluetooth* User Guide
Internet of Things (IoT)通信ライブラリー
機能 | 詳細 |
---|---|
認証と暗号化が可能なWi-FiおよびBluetooth上に拡張されたデバイスとデバイスおよびデバイスとクラウドへのメッセージング | MQTT*、ZeroMQ*およびRESTfulを活用したローカルとリモートのセンサー・グリッド。 |
既知の課題
- オンボードのMCUをサポートしていません。
現在はバリデーション中であり、将来のリリースに含まれる見込みです。 - XDK-deamonがエラーを起こします。
XDK IDEを使用している場合に影響を受けます。Intel Edisonを使用しているデバイスを再起動することで回復します。 - Intel Edisonのホスト名に小文字しか使用できません。
Iotkit comm D2D(CとNode.js)が影響を受けます。 - C/C++でZMQサーバー・クライアントによるコミュニケーションに失敗します。
- Iotkitの1.6.4への更新による問題があります。
Arduino IDEを使用するIoT開発キットが影響を受けます。クラウド接続を行わないバージョンへダウングレードすることで回避することができます。将来のリリースで修正される可能性があります。 - connmanがWi-Fiネットワークをスキャンできないことがあります。
- Wi-Fiのスキャニングが不安定です。
現在のwpa_cliコマンドによる実装ではWi-Fiアクセス・ポイントの検索に6秒をかけています。この6秒による検索がいくつかのアクセス・ポイントを検出するためには早すぎることがあることが原因です。 - rootfsサイズの拡大による各種影響があります。
これまでのReleaseではrootfsのサイズが小さすぎることでいろいろな問題が発生していました。これを解消するためにRelease-2ではrootfsのサイズを拡大しました。ただし、前述のようにreboot ota
による更新ではパーティションの構成は変更されません。これらの変更を適用するためにはflashall.bat
あるいはflashall.sh
による初期化を伴う更新を行うべきです。
修正された課題
- 非常に数が多い(78項目)ので個別の紹介は省略します。それだけ力を入れて対応しているということだろうと思います。
- 「未修正の課題」に残っていないものは修正されたと考えることができるので、そういう視点で「未修正の課題」を見ていただくか、リリース・ガイドの一覧でご確認ください。
未修正の課題
課題番号 | 内容 |
---|---|
EDISON-1804 | configure_edisonで設定したIntel Edisonの名前が正しくない。 |
EDISON-1921 | Intel Edison Breakout BoardでSWリブート後にホスト・モードに正しく切り替わらない。 |
EDISON-2033 | SPIのパケット間で遅延が起こる。 |
EDISON-2196 | connmanのテザリング(例えばUSB Ethernet→Wi-Fi)が動作しない。 |
EDISON-2228 | システム・モードでパルス・オーディオが実行されている。 |
EDISON-2230 | 構成の実行中、Wi-Fiデバイスは未知あるいは不正な状態になる。 |
EDISON-2231 | Intel Edisonボード上のviがエラー”vi: Can’t read user input”を出して失敗する。 |
EDISON-2281 | mDNSのエラーでnode.jsサンプルのimport iotkit-commが失敗する。 |
EDISON-2300 | Mosquitto*デーモンがrootで実行されている。 |
EDISON-2326 | GPIO 48をexportした後、SSHが遅くなる。 |
EDISON-2336 | LinuxとMac OS XにおけるXDKで、存在するのにもかかわらずログ・オンが、あるいは新しいアカウントの登録ができない。 |
EDISON-2354 | Wi-Fiの遅延時間が想定よりも高い:120秒毎に遅延する。 |
EDISON-2355 | ビルドをフラッシュした後にシリアル・コンソールが壊れる。 |
EDISON-2356 | Arduinoの7ピンを出力に設定するとWi-Fi接続が不安定になる。 |
Intel Edisonのシリアル・コンソールの文字取りこぼし問題
ちょっとわき道にそれますが、これは結構重要だという気がするので、Release-1の話ではあるのですが触れておきたいと思います。
Intel Edison Compute Moduleには2つのUARTシリアル・ポートがあります。1つはRX(受信)とTX(送信)のみ、1つはUARTのフルセットです(いずれもNational Semiconductor NS16650A相当のレジスター・セットに同NS16750相当のFIFOを備えています)。このうち、シリアル・コンソールはRXとTXのみで構成されるUARTを使用しています。
Intel Edison Compute ModuleのSoCはスリープ・モードを備えています。これを使用することでバッテリーの駆動時間を増やすことができます。普通ならこの機能をオンにします。その、オンにしていたのが初期のIntel Edison Compute Moduleに搭載されていたファーム・ウェアです。しかし、スリープ・モードに遷移するとRXとTXのみから構成されるUARTは電源が切られてしまいます。そのためスリープ・モードではデータを受信することができません。これが初期ファーム・ウェアにおいて、シリアル・コンソールのキー入力が取りこぼされる原因です。
そこでRelease-1 WW36-14ではIntel Edison Compute ModuleのSoCをスリープ・モードに遷移させないように仕様変更がなされました。ただし、これによって若干バッテリーの持ち時間が減ることになってしまっています。
これはIntel Edison Compute Moduleに採用されているSoCの仕様であるため、今後も改修されることはないでしょう。
ちなみにもう一方フルセットUARTはスリープ・モードでも電源を切られることはないので、こちらを使用していればスリープ・モードを活用することができます。
まとめ
先日公開したメモ“Intel Edison向け新ファームウェアR2のβ版(WW05-15)について”で記述した内容を含む形で加筆・修正し、「Intel Edison勉強会用」に再編を行ったのがこのメモと資料(スライド)です。
少しでもご覧になった方の参考になれば幸いです。