Intel Galileo FWアップデート、シリアルコンソール・Ethernetリモート接続
Galileoには専用のArduino IDE (Integrated Development Environment – 統合開発環境) があり、この上で普通にArduinoスケッチを書くことができます。
Galileo用のArduino IDEの現行バージョンは1.5.3。インテルのmakerコミュニティサイトからダウンロードできます。
Maker Faire Rome配布バージョンのGalileoは、『スケッチを一切アップロードせず、最初にファームウェアアップデートすべし!』と注意書きがありますが、Galileoのファームウェアアップデートも、この専用IDEから行えます。
ファームウェアのアップデートは、IDEのヘルプメニューから行えます。
ファームウェアのアップデートを選ぶと、ACアダプタが繋がっているかの確認ダイアログが出ます。
母艦にUSBでつないだ場合、USB給電だけでGalileoを使ってしまいそうですが、Galileoは常時ACアダプタ給電しないと壊れる可能性があると警告があります。
ファームウェアの書き換えは通常より多くの電力が必要になるし、書き換えの途中で落ちれば、壊れる可能性はさらに高くなるでしょう、ご注意。
ファームウェアの書き換え中には6分ほどかかりますが、これが出たら無事終了。
無事終わったので、お約束のLED点滅をやってみました。
これは、13番ピンに接続された本体LEDを点滅させて動作の確認をするスケッチ、通称『Lチカ』。Arduinoの”Hello World”みたいなもんですかね。
本家ArduinoではArduino IDEが、スケッチをマイクロコントローラのコードにコンパイルして、転送しています。Galileoでは、同じく専用IDEがコンパイルしてるのですが、GalileoのYocto Linux上で動作しているArduinoランタイム用のelfという拡張子のx86コードにコンパイルしていると思われます。
Galileoにはビデオ出力がないため、そのままではGalileo上のLinux側で起きている画面を見ることができません。見るためには、シリアルコンソールで接続する必要があります。
Ethernetポートの隣がシリアルポートです。ここにミニジャックで接続、シリアル-USBコンバータ経由で母艦に接続、PuTTYなどでシリアルコンソール接続します。
Galileo IDEからスケッチをGalileoに転送、実行している間どうなっているのか、IDEとシリアルコンソールを並べて、動画を取ってみました。
Galileoが/sketch/sketch.elfファイルがあるか、IDEからファイルが転送されてくるか待ち状態に入っているところに、IDEからblink.cpp.elfがGalileoに転送されると、/sketch/sketch.elfにリネーム転送、実行する流れがわかります。
GalileoのLinux画面を見るには、シリアルコンソール以外に、Ethernet/Telnet経由で見る方法があります。
情報出典:Using Galileo Linux over Ethernet(Telnet) [Intel Maker Community]
DHCPサーバがある環境では、以下のスケッチを実行します。
void setup() {
// telnetdを実行:
system(“telnetd -l /bin/sh”);
}void loop() {
// 10秒おきにifconfig eth0の結果を出力:
system(“ifconfig eth0 > /dev/ttyGS0”);
sleep(10);
}
Galileoを繋いで、上記のスケッチを実行すると、telnetdを起動して、10秒おきにGalileoのイーサネットに割り付けられたIPアドレスを送ってくれます。
割り付けられたアドレスはIDEのツールからシリアルモニタで表示。
あとは表示されたIPアドレスにPuTTYなどでつなげばOK。
[豆知識] 画面右上に表示されている”Clanton“は、Galileoに搭載されているCPU、Quark X1000の開発コード名です。
先ほどのIntel Maker Communityのスレッドに、母艦と固定アドレスで直結する方法も書かれています。
あと、本家Arduinoでは一度書き込んだスケッチは、電源を落としてもArduino上に維持されますが、Galileoでは消えてしまいます。どうにもメモリが足りてないようです。電源を落としても、転送したスケッチをGalileo上に残したい場合は、SDカードからフルのYocto Linuxイメージをブートする必要があります。SDカードからのブート方法については、また今度。
最後に、シリアルコンソール経由で、Galileoのブートメッセージ画面を取り込んだ動画を載せておきます。
ブートに1分近くかかるんだけど、そのうち10秒がGRUBの待ち時間ってもうね。
1月 26, 2014 18:50
[…] https://galileoq.wordpress.com/2013/11/12/galileo%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%… […]