Intel Galileo FWアップデート、シリアルコンソール・Ethernetリモート接続

投稿日: 更新日:

Galileoには専用のArduino IDE (Integrated Development Environment – 統合開発環境) があり、この上で普通にArduinoスケッチを書くことができます。

Galileo用のArduino IDEの現行バージョンは1.5.3。インテルのmakerコミュニティサイトからダウンロードできます。
galileoIDE

Maker Faire Rome配布バージョンのGalileoは、『スケッチを一切アップロードせず、最初にファームウェアアップデートすべし!』と注意書きがありますが、Galileoのファームウェアアップデートも、この専用IDEから行えます。

ファームウェアのアップデートは、IDEのヘルプメニューから行えます。
WS000002

ファームウェアのアップデートを選ぶと、ACアダプタが繋がっているかの確認ダイアログが出ます。
firmware_powerwarn

母艦にUSBでつないだ場合、USB給電だけでGalileoを使ってしまいそうですが、Galileoは常時ACアダプタ給電しないと壊れる可能性があると警告があります。
ファームウェアの書き換えは通常より多くの電力が必要になるし、書き換えの途中で落ちれば、壊れる可能性はさらに高くなるでしょう、ご注意。

ファームウェアの書き換え中には6分ほどかかりますが、これが出たら無事終了。
スクリーンショット 2013-11-09 15.57.16

無事終わったので、お約束のLED点滅をやってみました。

これは、13番ピンに接続された本体LEDを点滅させて動作の確認をするスケッチ、通称『Lチカ』。Arduinoの”Hello World”みたいなもんですかね。

本家ArduinoではArduino IDEが、スケッチをマイクロコントローラのコードにコンパイルして、転送しています。Galileoでは、同じく専用IDEがコンパイルしてるのですが、GalileoのYocto Linux上で動作しているArduinoランタイム用のelfという拡張子のx86コードにコンパイルしていると思われます。

Galileoにはビデオ出力がないため、そのままではGalileo上のLinux側で起きている画面を見ることができません。見るためには、シリアルコンソールで接続する必要があります。

Ethernetポートの隣がシリアルポートです。ここにミニジャックで接続、シリアル-USBコンバータ経由で母艦に接続、PuTTYなどでシリアルコンソール接続します。
20131112-004654.jpg

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);
}

スクリーンショット 2013-11-09 21.09.18

Galileoを繋いで、上記のスケッチを実行すると、telnetdを起動して、10秒おきにGalileoのイーサネットに割り付けられたIPアドレスを送ってくれます。

割り付けられたアドレスはIDEのツールからシリアルモニタで表示。
SerialMon

あとは表示されたIPアドレスにPuTTYなどでつなげばOK。
スクリーンショット 2013-11-11 01.03.52

[豆知識] 画面右上に表示されている”Clanton“は、Galileoに搭載されているCPU、Quark X1000の開発コード名です。

先ほどのIntel Maker Communityのスレッドに、母艦と固定アドレスで直結する方法も書かれています。

あと、本家Arduinoでは一度書き込んだスケッチは、電源を落としてもArduino上に維持されますが、Galileoでは消えてしまいます。どうにもメモリが足りてないようです。電源を落としても、転送したスケッチをGalileo上に残したい場合は、SDカードからフルのYocto Linuxイメージをブートする必要があります。SDカードからのブート方法については、また今度。

最後に、シリアルコンソール経由で、Galileoのブートメッセージ画面を取り込んだ動画を載せておきます。

ブートに1分近くかかるんだけど、そのうち10秒がGRUBの待ち時間ってもうね。

広告

Intel Galileo FWアップデート、シリアルコンソール・Ethernetリモート接続” への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中