ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

Intelのx86 CPU搭載「インテルGalileo開発ボード」をMacで試してみた

      2016/03/24

Intelのx86 CPUを搭載した開発ボードが登場!

Intelの低消費電力x86 CPU、Intel Quark SoC X1000を搭載した「インテルGalileo開発ボード」が発売されました。

「インテルGalileo開発ボード」は、Arduinoとの互換性に配慮して設計された、ホビー向けの開発ボード。

Arduino用の拡張ボード「シールド」の流用、Arduino用のスケッチ(プログラム)の流用が容易な作り。

SDIM1229

「Intel Galileo」と呼ばれることが多いかと思います。エントリ中でもIntel Galileoの呼称を使いたいと思います。

Arduino – IntelGalileo

フィジカルコンピューティングの世界に、ついにIntelが参入ということで感慨もひとしお。

入手はどこでできる?

スイッチサイエンス、秋葉原の秋月電子、ツクモ、パソコンハウス東映、FreeT、オリオスペック、エルミタージュ等で入手できるようですな。現在7,500円前後の値段で売っています。

スイッチサイエンス – 《予約販売》インテル Galileo 開発ボード

さすがにIntelだけあって、扱い店が限られるARM CPU搭載の開発ボードと違って、いろいろなところで入手できるようですね。

僕も早速入手。

SDIM1266

箱を開けると「What will you make?」とあります。ワクワクしますな。(続きは[more]から)

SDIM1265

Intel Galileoってどんなもの?

電源はACアダプタ

この手の開発ボードは、ボード上に設けられたUSBポートから給電するだけで動かせるようになっているものが多いですが、Intel Galileoは、動作にACアダプタが必要。

付属のACアダプタの出力は5V/2Aなので、ケーブルは作らないといけないですが、USBバッテリーで給電すれば動きそうです。

SDIM1227

ANKER Astro M3 モバイルバッテリー 13000mAh 【Amazon限定セット】ハイパワー電源アダプタ付属モデル 2USBポート同時充電 iPhone5S 5C 5 4S/iPad Air/Galaxy/Xperia/Android/各種スマホ/Wi-Fiルータ等対応 大容量かつコンパクト 147x62x22mm (日本語説明書付) Astro M3+adapter
Anker (2013-09-08)
売り上げランキング: 1


CPUはIntel Quark SoC X1000

Intel Quark SoC X1000は400MHzで動作。

命令セットは32bitのPentium互換となるx86プロセッサ。

詳しい仕様はこちらを見てください(手抜き)。

米Intel、Arduino互換となるQuark X1000搭載Galileoボードを発表 – データシートから概要を読み解く | マイナビニュース

OSはLinux

Intel Galileoに搭載された8MBのFLASH ROM上にはLinuxがインストールされており、Intel Galileoの電源を入れると、このLinuxが起動。

root@clanton:/media/sda1# uname -a
Linux clanton 3.8.7-yocto-standard #1 Tue Oct 1 00:09:01 IST 2013 i586 GNU/Linux

Arduino IDEで開発ができる

Intel Galileo関連のソフトウェアはIntelのページからダウンロードできます。

Drivers | Intel Communities

IDEは、ArduinoのものをIntel Galileo用にカスタムした感じ。

Skitched 20140111 232554

Galileo用Arduino IDEという表現がいいかな? ArduinoとはCPUの種類が違うので、コンパイラやライブラリがそれ用になっているほか、スケッチ、すなわちプログラムはLinux上で動作するので、system()関数が使えたりといった違いがあります。

Intel Galileoのファームウェアアップデートも、このIDEを使ってできます。

パソコンとIntel GalileoとはMicroUSBケーブルで接続。ボード上に二つあるMicroUSBポートのうち、USB Clientの方を使います。USBケーブル一本で、スケッチの転送、パソコンとIntel Galileoとのシリアル通信の両方を賄います。この辺はArduinoと同じですね。OS Xでは、ドライバは不要です。

R0073695

有志によりライブラリが充実してくれば、ArduinoとLinuxをミックスしたようなプログラミングが楽しめそうです。

グラフィック機能がない

x86 CPU搭載ということならWindowsが動くのだろうか? と思ってしまいますが、グラフィック機能、HDMIポートを持ち、Androidを載せることもできるRaspberry PiBeagleBone BlackCubieboardとは異なり、Intel Galileoはグラフィック機能を持たず、UEFIでブートする都合上、Windows、MS-DOSを起動させることは困難な模様。

パソコン、スマートデバイス的な利用は無理そうですね。

SDIM1242

Arduino 1.0配列の拡張ピンヘッダを持つ

Intel GalileoはArduino 1.0配列の拡張ピンヘッダを備え、Arduino用のシールドを流用可能。

SDIM1234

Ethernetポートを搭載

ボード上にEthernetポートがあります。Galileo用Arduino IDEに付属のEthernetライブラリで使えるほか、Galileoに搭載されたLinuxからも利用可能。

SDIM1230

スケッチのsystem()関数でtelnetdを起動するか、MicroSDカードに「LINUX IMAGE FOR SD for Intel Galileo」を導入してsshdを起動すると、このEthernetポート経由でIntel Galileoで起動するLinuxにログインできます。

Mini PCIeカード対応

基板の背面に、Mini PCIeコネクタが存在。ここに、WiFiカード等を挿入可能。WiFiについては、Galileo用Arduino IDE付属のライブラリで、Arduino流に使えるとのこと。

SDIM1260

MicroSD対応

ボード上にMicroSDソケットが存在。Galileo用Arduino IDE付属のライブラリでArduino流に使えるほか、ここにブート用のファイルを置いておくことで、任意のOSで起動可能。

SDIM1237

現状はIntelが用意する「LINUX IMAGE FOR SD for Intel Galileo」が使えるのみのようですが、ブートイメージを作るための技術情報が公開されているので、そのうちいろいろなディストリビューションが出てくるはず。

Drivers | Intel Communities

USB Hostポート搭載

Arduino IDEとのやりとりをするのに使うUSB Clientポートのほかに、USB Hostポートを搭載。Arduino IDEのUSB Hostライブラリで利用可能。外部機器を接続すれば、いろいろ楽しいことができそう。

SDIM1255

USB HostポートにSanDiskのMicroSDカードリーダを接続したら、/media/sda1にオートマウントされました。

R0073703

root@clanton:/# cd /media/sda1
root@clanton:/media/sda1# ls
DCIM          Nintendo 3DS  test.txt
SANWA SUPPLY USBホスト変換アダプタケーブル(MicroBオス-Aメス) 10cm AD-USB18
サンワサプライ (2012-03-31)
売り上げランキング: 41

とりあえずファームウェアのアップデートから

Intel GalileoにACアダプタを接続し、MacとIntel GalileoをUSBケーブルで接続。この順序を逆にすると、故障する恐れがあるので注意。USBケーブルを残した状態でACアダプタを抜いてしまわないように注意。

以下のページからダウンロードしたIntel Galileo Arduino SW 1.5.3 on MacOSXを起動。

Drivers | Intel Communities

「ツール>シリアルポート」を見る。うちの環境ではIntel Galileoは「cu.usbmodem1a121」として見えていました。「tty.usbmodem1a121」と二つありますが、cuの方を選びます。

Skitched 20140112 013022

「ヘルプ>Firmware Update」を実行。

Screenshot 2014 01 11 12 49 15

外部電源をつないでいるか?といった確認が出ます。

Screenshot 2014 01 11 12 49 36

インストールされているファームウェアより新しいものが見つかりました。アップデートしましょう。

Screenshot 2014 01 11 12 49 52

6分ほどでファームウェアのアップデートが完了。

Screenshot 2014 01 11 12 55 11

LEDチカチカをやる

Intel Galileoに手製のLEDチカチカ基板を接続。デジタルの13番に接続。13番は、基板上のLEDにもつながっています。

R0073696

「スケッチの例>01.Basic>Blink」を呼び出す。

Skitched 20140112 014507

「マイコンボードに書き込む」ボタンを押したら、見事LEDのチカチカが始まりました。

書き込んだスケッチは、Intel Galileoの電源を一度切るか、Rebootボタンでリブートすると消えてしまいます。

Linux側を触る

Arduino的に使うのはまあこんな感じでできそうですが、今度はIntel Galileo上で動いているLinuxにログインしてみたいと思います。

Intel Galileo上にある、ミニプラグの形をしたシリアルポートからログインするべきなのかもしれませんが、そのためにはケーブルを作らないといけない上に、USB Serialコンバータの利用が必要になるので、今回はパス。

SDIM1229

ネットワーク経由でログインします。

Intelのページから「LINUX IMAGE FOR SD for Intel Galileo」をダウンロード。

Drivers | Intel Communities

7zipなので、何らかの手段で解凍。僕はThe Archive Browserを使いました。

Skitched 20140112 015418

解凍したファイルをMicroSDカードのルートディレクトリにコピー。DDでイメージを書き込んだりする必要はなく、MicroSDに、ファイルをコピーするだけ。

Skitched 20140112 015555

Macから取り出して、Intel GalileoのMicroSDソケットに挿入。

R0073697

Intel GalileoのEthernetポートにケーブルを挿し、電源を投入。

R0073700

以下のスケッチをIntel Galileoに書き込む。

void setup() {
}

void loop() {
  system("ifconfig eth0 > /dev/ttyGS0");
  sleep(5);
}

「ツール>シリアルモニタ」を起動すると、ルータのDHCPから割り当てられたIPアドレスが判明します。

Skitched 20140112 020537

このIPアドレスめがけてMacからSSHクライアントで接続。ユーザ名はrootです。

$ ssh root@192.168.1.125
root@clanton:~# ls /
bin         etc         lost+found  opt         sketch      usr
boot        home        media       proc        sys         var
dev         lib         mnt         sbin        tmp
root@clanton:~#

つながりました。パスワードは設定されていません。

MicroSDは、/media/mmcblk0p1にマウントされています。

スケッチの削除と再起動

「LINUX IMAGE FOR SD for Intel Galileo」を入れたMicroSDを挿入した環境だとスケッチは/sketch/に保存され、ここにスケッチがあるとArduino互換機能を司るDaemonがI/Oを押さえにかかるようで、Linux側からI/Oを触ろうとするときの障害になってしまいます。

root@clanton:~# echo -n "25" > /sys/class/gpio/export
-sh: echo: write error: Device or resource busy
root@clanton:~# echo -n "0" > /sys/class/gpio/gpio25/value
-sh: echo: write error: Operation not permitted

Linux側からI/Oを触る場合はスケッチを消します。

root@clanton:~# cd /sketch/
root@clanton:/sketch# ls
sketch.elf
root@clanton:/sketch# rm *
root@clanton:/sketch#

この後、再起動。rebootコマンド、基板上のRebootボタンを押しての再起動だとネットワークが動かなくなることがあるので、ACアダプタを抜挿して再起動しています。

正式なやり方が、ほかにあるのかもしれません。

Webサーバの起動とWebからのI/O操作

スマートフォンからのI/O操作を想定して、Web経由でI/Oをいじる手段を模索してみました。

「LINUX IMAGE FOR SD for Intel Galileo」を導入した環境でも、Webサーバは入っていないようです?

Node.jsとPython2.7が使えるので、Pythonを使ってやってみました。

/home/root/ltica.py

#!/usr/bin/env python

import SimpleHTTPServer
import SocketServer
import os

os.system('/bin/echo -n "39" > /sys/class/gpio/export')
os.system('/bin/echo -n "out" > /sys/class/gpio/gpio39/direction')
os.system('/bin/echo -n "1" > /sys/class/gpio/gpio39/value')

class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    def do_GET(self):
        if self.path == '/on':
            os.system('/bin/echo -n "1" > /sys/class/gpio/gpio39/value')
            self.path = '/on.html'
        if self.path == '/off':
            os.system('/bin/echo -n "0" > /sys/class/gpio/gpio39/value')
            self.path = '/off.html'
        return SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)

Handler = MyRequestHandler
server = SocketServer.TCPServer(('0.0.0.0', 8000), Handler)

server.serve_forever()

/home/root/on.html

ON

/home/root/off.html

OFF

/etc/init.d/ltica

#! /bin/sh
cd /home/root
/usr/bin/python /home/root/ltica.py &

exit 0

エディタはviが使えます。上記四つのファイルを用意したら、initファイルのシンボリックリンクを張ります。

ln -s /etc/init.d/ltica /etc/rc5.d/S20ltica

そして再起動。起動時からPythonによるWebサーバが8000番で起動するようになります。

「http://192.168.1.125:8000/on」にアクセスするとデジタル13番に接続したLEDが点灯、「http://192.168.1.125:8000/off」にアクセスするとデジタル13番に接続したLEDが消灯します。

Skitched 20140112 032035

この例ではLEDが点滅するだけですが、ここにソリッドステートリレーなどを接続すれば、外部機器の電源のオン、オフをWebブラウザ経由で制御できることになります。

R0073701

こちらのページを参考にさせていただきました。

「Intel Galileo Development Board」でLEDの発光を制御 | KEI SAKAKI’s PAGE.

なかなか個性のある開発ボード

Intel Galileoをちょっといじってみました。

Arduino互換機能と、Linuxサーバ的な機能が合体した、なかなか個性のある開発ボードだと思います。

Intel製品ならではの販路の広さで、これまでマイコンを置かなかったようなお店に置かれ、シーンが広がるような展開がありそうで期待しています。

Intel Galileoという名前の元に人が集まり、ノウハウが集まってきて、当初思いもよらなかった用途で使えるようになるといった展開もありそうです。

Raspberry Piはグラフィック機能まで持ちながらIntel Galileoの半値ぐらいで目立ちますが、これをLinuxサーバ的に使おうとすると安定性に難がある。Intel Galileoは品質の点では信頼が置けそうですから、用途に応じて使い分けがなされていくのではないかという気がします。

今月の日経Linuxで特集しているので、気になる人は読んでみるといいと思いますよ。

インテル Galileo 開発ボード GALILEO1
インテル (2014-01-11)
売り上げランキング: 30,587
Getting Started With Intel Galileo
Matt Richardson
Maker Media, Inc
売り上げランキング: 5,634

 - Intel Galileo, ガジェット