Intel Quark SoC X1000搭載ボード向けビルド&書き込みガイド

2014年2月4日追記

新しいリリースに対応したものを“Intel Quark SoC X1000 BSP Release 0.9.0のビルド・ガイド”に公開しました。0.8.0である必要があるなど、特に理由があるのでなければ新しい方をご参照ください。

はじめに

Intelが公開しているIntel Quark SoC X1000関連の資料の中に「Intel® Quark SoC X1000 Board Support Package (BSP) Build Guide」というものがあります。これは、Intel Quark SoC X1000を搭載したリファレンスボードに対応するLinuxカーネルとルート・ファイル・システムのビルド方法や、ボード上のSPI Flashへの書き込み方法、microSDメモリーカードやUSBメモリーに書き込んだLinuxカーネルとルート・ファイル・システムからの起動などの方法を説明する資料です。

この資料は英語のものなのですが、これを日本語にしたものを自分用に作成しました。完全に逐次訳をしたわけではないので、元の資料の置き換え用にはなりませんが、該当資料の文末にある宣言文を読む限り、Intelのライセンス上も問題がなさそうだと思われる(転載と翻訳を禁止するとの明示文がない)ため、参考にはなるかと思い公開してみます。

もしもIntelの関係者で、私がこの日本語資料を公開することが何らかのライセンスや法的問題があるとお考えであるならば、メールにてご連絡をいただければと思います。その際は、私がメールの送付主がIntel関係者であることを認識できるようにIntel社内からメールを送信し、所属・肩書き等を添えてください。

著作権等

英語版の資料をベースにしているこの日本語資料はIntelの著作権が及ぶ範囲内にあります。その上で、この日本語資料には“さかきけい”の著作権が発生しています。“さかきけい”はすべての著作権法上の権利を留保します(詳しくは「ご利用上の注意とお願い」を参照ください)。

免責の表明

この日本語資料はIntelが公開している「Intel® Quark SoC X1000 Board Support Package (BSP) Build Guide / Release: 0.8.0 / 15 November 2013 / Order Number: 329687-003US」に記載されている情報を元に、“さかきけい”が作成したものです。このためIntelには何らこの日本語資料に対する責任はありませんので、この日本語資料に関連する問い合わせをIntelに対して行うことを禁止します。

また、この日本語資料を作成した“さかきけい”も何ら責任を負いません。この日本語資料の内容は、利用者自身の責任においてのみ使用することができます。

使用上の注意

  • Intelによる法的な意味合いを持つと考えられる記述は英文のままとしています。これは、日本語にすることで意味合いが変化することを防ぐ目的のものです。しかし、その部分は英語原文に付属する部分であることを前提としなければなりません。したがって、本日本語資料ではなく、文脈としては原書に付属することになります。本日本語資料においては、Intelが免責を宣言する部分はその通りですが、何らかの権利や許可を与える部分についてはすべて無効であるとご理解ください。※1
  • USB key、USB stickなどの表現揺れはすべて「USBメモリー」に統一して日本語資料化しています。※2
  • SD card、microSDなどの表現揺れはすべて「microSDメモリーカード」に統一して日本語資料化しています(SDアソシエーションのページ内表記に合わせています)。※3
  • 複数の英単語によって構成される語は、単語間に「・」を入れて表現しています。例:ルート・ファイル・システム※4
  • 日本語での記述におかしいと思われる個所がある場合には原書をあたってください。
  • 技術的などの理由で記載内容にわからない事項がある場合には別途調べてください(“さかきけい”に質問のメールを送るのはご遠慮ください※5)。
  • 明らかな誤訳がある場合には具体的なご指摘をメールでお知らせいただけると助かります。
  • 記述内容に誤りがある場合にもお知らせいただけると嬉しく思います。ただし、原書も間違っている場合には特に日本語資料を修正することはせずに、訳注を追加するだけとするかもしれません。
  • 前述の内容と被りますが、“さかきけい”は何ら責任や義務を負うものではありません。

Intel® Quark SoC X1000 Board Support Package (BSP) Build Guide

Release: 0.8.0
15 November 2013

コンテンツ

1. はじめる前に

このガイドは、Intel Quark SoC X1000 Board Support Package Sourcesによる、インストールと構成を行う方法を説明するものです。

このソフトウェア・リリースがサポートするのは以下のソフトウェアとハードウェアです:

  • Board Support Package for Intel Quark SoC X1000 v0.8.0
  • Intel Galileo Customer Reference Board(CRB)(Fab D / ブルーのプリント基板)
  • Kips Bay Customer Reference Board(CRB)(Fab C / グリーンのプリント基板)
  • Intel Quark SoC X1000 工業/エネルギー向けリファレンス・デザイン(Cross Hill)
  • Intel Quark SoC X1000 輸送向けリファレンス・デザイン(Clanton Hill)

はじめる前に:

  • Linuxが動作するホストPCが必要です。※6
  • サード・パーティ・ソースをダウンロードするためのインターネット接続が必要です。
  • 30GBのディスク空き容量がビルド処理のために必要です。
  • ボードでプログラムを使用するために:
    • シリアル・インターフェースを使用するCapsuleApp.efiセクション8を参照)
    • DediProg SF100 SPI Flash Programmer(または同等品)とフラッシュ書き込みと連携するソフトウェア(セクション9を参照)
    • Intel Galileo IDE(Galileoボードのみ; 詳しくはIntel Galileo Board Getting Started Guide for Detailsを参照)

注記:カレント・バージョンをインストールする前にすべての以前のバージョンのソフトウェアを削除してください。

それぞれのコンポーネントは非常に異なる環境(コンパイラー・オプションやその他)を必要とします。「クロス汚染※7」を防ぐために、毎回新しいターミナル・セッションを開始し、この先のセクションに含まれるコマンドを実行しなければなりません。

注記:これらのコマンドが失敗する場合、それはプロキシーの設定によるものである可能性があります。必要な答えはここで見つかるでしょう:https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy

このリリースはDebian Linux 7.0(Wheezy)でテストを行いましたが、他のLinuxディストリビューションでも動作するはずです。

2. ソフトウェアのダウンロード

BSPソースのZIPファイルはここからダウンロードできます:
https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=23197

注記:もしもIntel Quark Reference Design Boardを使用するなら、適切なソフトウェア・ダウンロードURLについては、Intelが提示するものを参照してください。

このリリースには複数のZIPファイルから構成されます。含まれるものは:

  • Board Support Package(BSP) ソース:
    • Board_Support_Package_Sources_for_Intel_Quark_v0.8.0.7z (5.6MB)
  •  ボードのプログラムをアップデートするユーティリティ Capsule:
    • CapsuleApp.efi (22KB)

Debianは、いくつかのコンパイラー・ツールとライブラリーをインストールする、Build-essentialと呼ばれるmetaパッケージを提供します。次に進む前に、以下のコマンドを実行してmetaパッケージおよび他のパッケージをインストールしてください:

# sudo apt-get install build-essential gcc-multilib vim-common

3. GRUB OSローダーのビルド

注記:GRUBは2つの方法で提供されます:meta-clanton Yocto BSPに含まれるもの、または独立して提供されるもの。

もしもYoctoを実行するなら、このセクションを飛ばしてYoctoが以下のディレクトリーに出力するファイルを使用してください:yocto_build/tmp/deploy/images/grub.efi

依存関係:

  • GCC (テスト済みのバージョン >= 4.6.3 and libc6-dev-i386)
  • gnu-efiライブラリー (テスト済みのバージョン >= 3.0)
  • GNU Make
  • Autotools (autoconf and libtool)
  • Python >= 2.6
  • git

このGRUBビルドは多くのLinuxディストリビューションに含まれている32ビットのgnu-efiライブラリーを必要とします。あるいは次のURLから最新版をダウンロードすることができます:http://sourceforge.net/projects/gnu-efi/files

gnu-efiライブラリーの展開とコンパイルは以下のコマンドを使用します:

# tar -xvf gnu-efi*
# cd gnu-efi*/gnuefi
# make ARCH="ia32"
# cd -

GRUBをビルドするために、最初に新しいターミナル・セッションを開きます。grubパッケージを展開して、それからgitsetup.pyスクリプトを実行します。このスクリプトはgrubが必要とするアップストリームのコードをすべてダウンロードし、Clanton※8用のパッチを適用します。

以下のコマンドを実行します:

# tar -xvf grub-legacy_*.tar.gz
# cd grub-legacy_*
# ./gitsetup.py
# cd work
# autoreconf --install
# export CC4GRUB='gcc -m32 -march=i586 -fno-stack-protector'
# [ GNUEFI_LIBDIR=/full/path/to/gnu-efi-3.0/gnuefi/ ] CC="${CC4GRUB}"
./configure-clanton.sh
# make
# cd -

configureステップのために。もしもDebianを使用しておらず、手動でシステム内ではない場所のgnu-efiをインストールする必要があるのであれば、gnu-efiをコンパイルあるいはインストールした場所をGNUEFI_LIBDIRに設定する必要があります。

注記:これらのコマンドが失敗する場合、それはプロキシーの設定によるものである可能性があります。必要な答えはここで見つかるでしょう:https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy

このビルド処理によって出力される、必要なファイルはefi/grub.efiです。

4. ファイル・システムの作成およびYoctoで使用するカーネルのビルド

依存関係:

  • git
  • diffstat
  • texinfo
  • gawk
  • chrpath
  • file

gitはプロキシーの設定を必要とします。これらのコマンドが失敗する場合、それはプロキシーの設定によるものである可能性があります。必要な答えはここで見つかるでしょう:https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy

Yoctoを使用するために、ルート・ファイル・システムとmicroSDメモリーカードまたはUSBメモリーからシステムをブートするためのカーネルを作成します。rootとして、このセクションのどのコマンドも実行しないでください。

注記:異なるホスト・オペレーティング・システムのためのgccなどのビルド開発ツールを構築するための方法はセクション5を参照してください。

はじめに新しいターミナル・セッションを開きます。Yoctoレイヤーを展開し、Yoctoのビルドに必要な外部ソースをダウンロードするためにsetup.shを実行します:

# tar -xvf meta-clanton*.tar.gz
# cd meta-clanton*
# ./setup.sh

注記:デフォルトBSPのためには./setup.sh -sコマンドを使用します。あるいはIntel Galileoボードのためのレイヤーは./setup.sh -eを使用します。

続いて、Yoctoのビルド環境を初期化するためにsourceoe-init-build-envコマンドを実行し、そして、ルート・ファイル・システムとカーネルをビルドするためにbitbake <target>を実行します。後述するSoCに固有の<target>コマンドを指定します。

2つのビルド方法をサポートしています; その出力は、それぞれ少し異なります。

注記:次のビルド方法を連続して行うことはできません。これらは相互に排他的です。

  1. もしもSPI Flashにフィットする非常に小さなLinuxをビルドしたいなら、以下のようにbitrake image-spiを実行します:
    # source poky/oe-init-build-env yocto_build
    # bitbake image-spi

    このビルド処理による出力は、./tmp/deploy/images/に存在し、以下のファイルを含みます:

    • image-spi-clanton.cpio.gz
    • image-spi-clanton.cpio.lzma
    • bzImage
    • grub.efi
  2. もしもmicroSDメモリーカードから実行する、より多くのフィーチャー(機能)を持ったLinuxをビルドしたいなら、以下のようにbitrake image-fullを実行します:
    # source poky/oe-init-build-env yocto_build
    # bitbake image-full

    注記:Yoctoのビルドを完了するまでに必要とする時間は、インターネット接続速度とマシンの仕様に依存します。

    ビルド処理の出力は./tmp/deploy/images/に存在し、以下のファイルを含みます:

    • image-full-clanton.ext3
    • core-image-minimal-initramfs-clanton.cpio.gz
    • bzImage
    • grub.efi
    • boot (ディレクトリー)

    カーネルとルート・ファイル・システム(それぞれ、bzImageimage-nnnn.gz)をUSBメモリーまたはmicroSDメモリーカードにコピーし、GRUBからブートすることができます。

5. クロス・コンパイラー・ツール・チェーンの構築

このセクションでは以下のオペレーティング・システムにおいて、開発ツールとイメージをビルドする方法を説明します:

  • Linux* クロス・コンパイラー
  • Windows* クロス・コンパイラー
  • MAC OS* クロス・コンパイラー

5.1 Linux* クロス・コンパイラー

クロス・コンパイラー・ツール・チェーンを作るための手順はYoctoルート・ファイル・システムとカーネルのための手順を説明したセクション4と、bitrakeコマンドを除いて同じです。

ツール・チェーンの構築を行うために、新しいターミナル・セッションを開き、以下のbitrageを除いてセクション4の手順に従います:

# bitbake image-full -c populate_sdk

両方のビルドに同じファイルを使用することができますが、新しいターミナルでyocto_buildを使用するたびにsourceでpokyのoe-init-build-envを実行しなければなりません

ビルド処理の出力は、別のシステムのためツール・チェーンをインストールするスクリプトです:
clanton-full-eglibc-x86_64-i586-toolchain-1.4.1.sh

スクリプトは./tmp/deploy/sdkにあります。

注記:スクリプトはあなたの環境を大きく変更することがあり、これによってあなたが使用している可能性のある非Yoctoツール(Pythonを使用するために含まれるすべて)を破壊することがあります。これを緩和するために、Yocto環境のsourcemakeの実行をするために1つのターミナル・セッションを開始し、その他のすべてのコマンドは他のターミナル・セッションで実行することをIntelは推奨します。※9

あなたがあなたのアプリケーションをコンパイルする準備ができているならば、最初にsourceコマンドを実行してCCCONFIGURE_FLAGSおよびその他の環境変数のためのデフォルト値を定義します。これによりあなたはコンパイルが行えます:

# source /opt/poky/1.4.2/environment-setup-x86_32-poky-linux
# ${CC} myfile.c -o myfile

または

# source /opt/poky/1.4.2/environment-setup-x86_64-poky-linux
# ${CC} myfile.c -o myfile

一般的な詳細については、Yocto Application Development Toolkit (ADT)の情報を参照してください:
https://www.yoctoproject.org/tools-resources/projects/application-developmenttoolkit-adt

パッケージをLinuxビルドに追加する方法についてはこのURLで見つかるでしょう:
http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#usingpokyextend-customimage-localconf

Quark Linuxは組み込みシステムのために最適化されたCライブラリーであるuclibcを使用します。これは、SPI Flashに入れることができる、UEFIブート・ローダーとGRUB OSローダーを含む非常に小さなLinuxを生成可能にします。

サイズに制約がないのであれば、Cライブラリーをより完全な機能を持ったCライブラリーに変更することができます。詳しい手順はこちらを参考にしてください:
http://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html
特に使用するCライブラリーを選択するTCLIBC変数を変更する方法。

5.2 Windows* クロス・コンパイラー

  1. セクション4のすべての手順を実行します。
  2. 以下のコマンドを実行します:
    cd ..
    git clone git://git.yoctoproject.org/meta-mingw
    cd yocto_build
  3. conf/bblayers.confを編集して、クローンを作成したフル・パスをmeta-mingwレイヤーに加えます。
  4. conf/local.confファイルに以下の内容が含まれることを確認します:SDKMACHINE = "i686-mingw32"
  5. 以下のコマンドを実行します:bitbake meta-toolchain
  6. ツール・チェーンがtmp/deploy/sdkの中に作成されています。

5.3 MAC OS* クロス・コンパイラー

  1. セクション4のすべての手順を実行します。
  2. 以下のコマンドを実行します:
    cd ..
    git clone git://git.yoctoproject.org/meta-darwin
    cd yocto_build
  3. conf/bblayers.confを編集して、クローンを作成したフル・パスをmeta-darwinレイヤーに加えます。
  4. conf/local.confファイルに以下の内容が含まれることを確認します:SDKMACHINE = "i386-darwin"
  5. 以下のコマンドを実行します:bitbake meta-toolchain
  6. ツール・チェーンがtmp/deploy/sdkの中に作成されています。

6. ボード用のFlashイメージの作成

依存関係:

  • GCC
  • GNU Make
  • EDKII Firmware Volume Tools (base tools)
  • OpenSSL 0.9.81以降
  • libssl-dev

SPI Flashツールは、sysimageアーカイブ内のメタデータとともに、ボードにインストールおよび起動することが可能なFlash.binファイルを作成するために使用します。

新しいターミナル・セッションを開始し、sysimageアーカイブの内容を展開します:

# tar -xvf sysimage_*.tar.gz

SPI FlashツールおよびQuark EDKIIファイルを展開およびインストールします:

# tar -xvf spi-flash-tools*.tar.gz
# tar -xvf Quark-EDKII-volumes*.tar.gz

sysimage*ディレクトリーにはあらかじめ構成されたlayout.confファイルが含まれています。このファイルはボード上に書き込む、最終的なFlash.binファイルに、様々なコンポーネントをどのように含むのかを定義します。layout.confは、関連するアドレス・オフセット、ファイル名、およびパラメーターを含む、いくつかの[section]で構成されています。それぞれのセクションは有効なファイルを参照します。したがって、パスを更新するか、有効なファイルへのシンボリック・リンクを作成することが必要です。

例えばGRUBコンポーネント用の場合は以下の通りです:

# ln -s grub-legacy_*/work/ grub-legacy

ホワイトスペースがlayout.confファイルに定義された値の周りに存在しないことを確認してください。

一度有効なlayout.confを作成したら、次のファイルのうち1つを作成するために、SPI FlashツールのMakefileを実行します。

カプセルファイル(推奨)をビルドするためには以下のコマンドを実行します:

# ln -s ../../Quark_EDKII_* ../../Quark_EDKII
# ../../spi-flash-tools*/Makefile capsule

このビルドの出力は*.capファイルと他の要求されるファイルです。
Flashへの書き込み方法については、セクション8またはセクション9のいずれかを参照してください。

Flash.binファイルをビルドするためには以下のコマンドを実行します:

# ln -s ../../Quark_EDKII_* ../../Quark_EDKII
# ../../spi-flash-tools*/Makefile

このビルドの出力はFlash.binファイルです。続いてセクション7、その後セクション9を実行します。

7. プラットフォーム・データ・ファイルの定義

注記:前のセクションで*.capファイルを作成した場合は、プラットフォーム・データ・ファイルは必要ではありません。また、このセクションを飛ばすことができます。

プラットフォーム・データは、SPI Flashにおかれるパーツ固有のユニークなデータです。プラットフォーム・データは、ボードに書き込まれたすべてのFlash.binイメージに対する、個々のパッチを充てるために使用します。データ・パッチ・スクリプトは、このリリースが提供します。

プラットフォーム・データ・パッチ・スクリプトはSPI Flashツールのアーカイブに含まれています。スクリプトを実行する前に、新しいターミナル・セッションを開始し、MACアドレス、プラットフォーム・タイプおよびMRCパラメーターのようなプラットフォーム固有なデータを含めるためにplatform-data/platform-data.iniを編集します。

リファレンス・プラットフォームにおいては、プログラムされたMACアドレスが製品ラベル上に印刷されています。

注記:Intel Quark SoC X1000は2つのMACを含んでおり、(Galileoのような)1つのEthernetポートのみが存在するボードであっても、platform.iniファイルの中でそれぞれ1つのアドレスを構成済みです。Galileoにおいては、MAC 0が外に接続された唯一のMACですが、しかし、さらにplatform.iniファイル中にはダミーの有効なUNICAST MACアドレスを備えたMAC 1を構成しなければなりません。ファイル中のデフォルトMACアドレスの値は無効です。あなたが有効なMACアドレスを設定しなければ、次のエラー・メッセージを返します:

HALT: Multicast Mac Address configured for Ioh MAC

Galileo / Kips Bay Fab Dにおける例を以下に示します(推奨する値はボールドテキストで示します):

[Platform Type]
id=1
desc=PlatformID
data.type=hex.uint16
# ClantonPeak 2, KipsBay 3, CrossHill 4, ClantonHill 5, KipsBay-fabD 6
data.value=6
# WARNING: the MRC parameters MUST match the platformID used above
[Mrc Params]
id=6
ver=1
desc=MrcParams
data.type=file
#data.value=MRC/clantonpeak.v1.bin
#data.value=MRC/kipsbay.v1.bin
#data.value=MRC/crosshill.v1.bin
#data.value=MRC/clantonhill.v1.bin
data.value=MRC/kipsbay-fabD.v1.bin
[MAC address 0]
id=3
desc=1st MAC
data.type=hex.string
data.value=001320FDF4F2 #unique MAC address of your device
[MAC address 1]
id=4
desc=2nd MAC
data.type=hex.string
data.value=02FFFFFFFF01

続いて、次に示すスクリプトを実行します:

# cd spi-flash-tools/platform-data/
# platform-data-patch.py -p sample-platform-data.ini \
-i ../../sysimage_*/sysimage.CP-8M-release/Flash-missingPDAT.bin
# cd -

これによって、ボード上に書き込むFlash+PlatformData.binファイルを作成します。

DediProgを使用してボードに書き込むのであれば、セクション9まで飛ばしてください。

8. シリアル・インターフェースを使用したボード上のFlashへの書き込み方法

依存関係: CapsuleApp.efiセクション2でダウンロード済み)

もしもあなたがセキュアSKUボード(工業/エネルギー向けリファレンス・デザイン)を使用するなら、手順が多少異なります。セクション8.1を参照してください。

注意CapsuleApp.efi*.capファイルは必ず一致するペアで使用しなければなりません。新しい*.capファイルがリリースされた際には、それをインストールするために対応するCapsuleApp.efiを使用しなければなりません。

以下の手順を実行します:

  1. セクション6で作成したファイル、またはセクション2で説明されているようにSPI Flashイメージ・カプセル・ファイルをダウンロードします。
  2. microSDメモリーカードにCapsuleApp.efiおよびsysimage_nnnnn.capをコピーして、それをボード上のスロットに挿入します。
  3. コンピューターとボードの間をシリアル・ケーブルで接続します。シリアル・コンソール・セッション(例えばPuTTY)をセットアップして、115200bpsでボードのCOMポートに接続します。
  4. 特殊文字を認識するためにシリアル・コンソール・セッションを構成します。例えば、PuTTYを使用している場合には、明示的に特殊文字を有効にしなければなりません。PuTTYのConfigurationオプションで、Terminal > Keyboardカテゴリーへ行き、Function keys and KeypadオプションにSCOを設定します。
  5. ボードの電源を入れます。GNU GRUBブート・ローダーが表示されます(以下のように)。以下で示すようにcおよびquitを入力してGRUBを抜けます。

    GRUB Boot loader menu

    cを押してコマンド・ラインに入ります。

    GRUB Command line

    GRUBコマンド・ラインでquitと入力します。

  6. シリアル・コンソールにブート・デバイスを選択するためのボックスが表示されます(以下のように)。UEFI Internal Shellを選択します。

    UEFI Menu

    これに似た表示になります:

    UEFI Internal shell

  7. 見た目がこれに似た見出しが出力されるのが確認できるでしょう:
    fs0 :HardDisk - Alias hd7b blk0

    これがあなたのmicroSDメモリーカードです。マウントのために以下のようにタイプします: fs0:

  8. 正しいバージョンのCapsuleApp.efiを使用していることを確認するために-?または-hオプションを使用します。バージョン1.1またはそれ以降を使用しなければなりません。
  9. 以下のコマンドを実行します:
    CapsuleApp.efi sysimage_nnnnn.cap

    注記sysimage_nnnnn.capファイルのフル・ファイル名を入力しなければなりません。

    これに似た表示を確認することができます:

    Run CapsuleApp.efi

    CapsuleAppがあなたのSPI Flashイメージを更新します。この処理には約2分かかります。

    警告:電源を切ったり、あるいはこのプロセスを終了しようとしないでください!! プロンプトに戻るのを待ってください。そうしなければ、あなたのボードは機能しなくなるでしょう。

  10. アップデートが完了すると、ボードは自動的にリブートします。これに似た表示を確認することができます:

    Board rebooted

8.1 セキュアSKUボード専用

依存関係: CapsuleApp.efiセクション2でダウンロード済み)

以下の手順を実行します:

  1. セクション6で作成したファイル、またはセクション2で説明されているようにSPI Flashイメージ・カプセル・ファイルをダウンロードします。
  2. microSDメモリーカードにCapsuleApp.efiおよびsysimage_nnnnn.capをコピーして、それをボード上のスロットに挿入します。
  3. コンピューターとボードの間をシリアル・ケーブルで接続します。シリアル・コンソール・セッション(例えばPuTTY)をセットアップして、115200bpsでボードのCOMポートに接続します。
  4. 特殊文字を認識するためにシリアル・コンソール・セッションを構成します。例えば、PuTTYを使用している場合には、明示的に特殊文字を有効にしなければなりません。PuTTYのConfigurationオプションで、Terminal > Keyboardカテゴリーへ行き、Function keys and KeypadオプションにSCOを設定します。
  5. ボードの電源を入れます。F7を押してGRUBが開始される前にEFIシェルに入ります。
  6. シリアル・コンソールにブート・デバイスを選択するためのボックスが表示されます(以下のように)。UEFI Internal Shellを選択します。

    UEFI Menu

    これに似た表示になります:

    UEFI Internal shell

  7. 見た目がこれに似た見出しが出力されるのが確認できるでしょう:
    fs0 :HardDisk - Alias hd7b blk0

    これがあなたのmicroSDメモリーカードです。マウントのために以下のようにタイプします: fs0:

  8. 正しいバージョンのCapsuleApp.efiを使用していることを確認するために-?または-hオプションを使用します。バージョン1.1またはそれ以降を使用しなければなりません。
  9. 以下のコマンドを実行します:
    CapsuleApp.efi sysimage_nnnnn.cap
  10. 注記sysimage_nnnnn.capファイルのフル・ファイル名を入力しなければなりません。

    これに似た表示を確認することができます:

    Run CapsuleApp.efi

    CapsuleAppがあなたのSPI Flashイメージを更新します。この処理には約2分かかります。

    警告:電源を切ったり、あるいはこのプロセスを終了しようとしないでください!! プロンプトに戻るのを待ってください。そうしなければ、あなたのボードは機能しなくなるでしょう。

  11. アップデートが完了すると、ボードは自動的にリブートします。これに似た表示を確認することができます:

    Board rebooted

9. DediProgを使用したボード上のFlashへの書き込み方法

ボードに書き込むためには、DediProg SF100 SPI Flash Programmer(以下、SF100)と、これをサポートする書き込み用ソフトウェアを使用することができます。

注記:これらの手順では、セクション7で作成したFlash+PlatformData.binファイルを必要とします。

すでにソフトウェアがインストールされており、SF100がボードに接続されているなら新しいターミナル・セッションを開き、DediProgエンジニアリング・アプリケーションを起動します。※10

ボードへ書き込む手順は以下の通りです:

  1. もしもアプリケーションが起動するときにプロンプトが表示されるなら、メモリ・タイプを選択します。
  2. ファイル・アイコンを選択し、書き込みたい*.binファイルを選びます。
  3. 必要に応じてSPI Flashの内容を消すためにEraseボタンを選択します。
  4. ファイル・フォーマットはrawを選択します。
  5. Progアイコンを選択し、イメージをボードに書き込みます。
  6. 必要に応じて、イメージが正しく書き込まれたことを確認するためにVerifyアイコンを選択します。

注記:Intelはシステムをブートさせる前にSF100を外すことを推奨します。

10. microSDメモリーカードからボードを起動させる

microSDメモリーカードからボードを起動し、また継続してrootfsを有効にするためには、以下の手順に従ってください。また、USBメモリーからボードを起動するために、この手順を使用することもできます。

Galileoボードを使用しているなら、このセットアップによってボードへSketchを保存することができるようになります。これにより、ボードの電源をオフにした後でも、繰り返してSketchを実行できるようにできます。これは、さらに持続的な/sketchフォルダーを有効にします。

依存関係:セクション4におけるbitbake image-fullコマンドの実行

  1. セクション4のビルド処理が出力する./tmp/deploy/images/の中に存在する以下のカーネルおよびルート・ファイル・システムのファイルをmicroSDメモリーカードへコピーします:
    • boot (ディレクトリー)
    • bzImage
    • core-image-minimal-initramfs-clanton.cpio.gz
    • image-full-clanton.ext3

    必ず以下に示したファイルおよび構造を備えたmicroSDメモリーカードをセットアップしてください:

    File and directory structure on micro SD memory card

  2. microSDメモリーカードを挿入し、ボードの電源を入れます。

    注記:初回にボードを起動する際には数分かかることがあります。これは、初回起動時に暗号化キーを作成するSSHコンポーネントによる予期された挙動です。

11. 署名ファイル(オプション)

この手順はほとんどのユーザーにとってオプションです;これはSecure Bootにのみ必要とされます。そうでなければ、この手順を飛ばすことができます。

依存関係:libssl-dev

カーネルとルート・ファイル・システム(それぞれbzImageimage-full-clanton.cpio.gz)は検証のための署名ファイルを必要とします。

新しいターミナル・セッションを開いて、以下のコマンドを実行します:

# cd sysimage_*/sysimage.CP-8M-release
# export LINUX_PATH=../../meta-clanton*/yocto_build/tmp/deploy/images
# ../../spi-flash-tools*/Makefile SRCS_SIGN=$LINUX_PATH/bzImage \
$LINUX_PATH/bzImage.SVNINDEX=6 $LINUX_PATH/bzImage.signed
# ../../spi-flash-tools*/Makefile \
SRCS_SIGN=$LINUX_PATH/image-full-clanton.cpio.gz \
$LINUX_PATH/image-full-clanton.cpio.gz.SVNINDEX=7 \
$LINUX_PATH/image-full-clanton.cpio.gz.signed
# cd $LINUX_PATH

カーネルおよびルート・ファイル・システムのための署名ファイル(それぞれ、bzImage.csbhimage-full-clanton.cpio.gz.csbh)は、USBメモリーあるいはmicroSDメモリーカードにコピーすることができます。

12. Open OCD debuggerの有効化

依存関係:

  • GCC (version 4.5でテストを実施)
  • GNU Make
  • libtool

OpenOCDをビルドするために、新しいターミナル・セッションを開き、OpenOCDパッケージを展開し、gitsetup.pyスクリプトを実行します。スクリプトはOpenOCDに必要なアップストリームのコードをすべてダウンロードし、OpenOCDにパッチを適用します。

以下のようにコマンドを実行します:

# tar -xvf openocd_*.tar.gz
# cd openocd_openocd_*
# ./gitsetup.py
# cd work
# ./configure4clanton.sh
# make

基本となる用法:

# cp work/src/openocd work/tcl
# cd work/tcl

注記:この手順におけるエラーは、httpによるURLのためのプロキシー設定によるものである可能性があります。必要な答えはここで見つかるでしょう:
https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy

はじめにCRB※11にJTAGデバッガーを接続します。続いて、JTAGデバッガー用の正確なインターフェース構成ファイルを持ったOpenOCDを実行します。

以下の例は"olimex-arm-usb-ocd-h" JTAGデバッガー用です:

# sudo ./openocd -f interface/olimex-arm-usb-ocd-h.cfg -f \
board/clanton_board.cfg

telnetを使用してこのOpenOCDセッションに接続する方法と、対象のOpenOCDコマンドは以下の通りです:

# telnet localhost 4444
# halt
# resume

より詳細な情報は、「Intel® Quark SoC X1000 Application Note」の「the Using OpenOCD and Source Level Debug(OpenOCDを使用したソース・レベルのデバッグ)」を参照してください。

改定履歴※12

日付 詳細
2013年11月15日 003 セクション2. ソフトウェアのダウンロード」にCapsuleApp.efiを追加。
2013年11月07日 002 以下のものを含む、ソフトウェア・リリース 0.8.0用の一般的な更新:
サポートしているボードをハードウェアのリストに追加。
セクション6:SPI Flashツールのパスをclanton_peak_EDK2からQuark_EDKIIへ変更。
「署名ファイル(オプション)」セクションをドキュメントの後方へ移動。
2013年10月15日 001 ソフトウェア・バージョン 0.7.5用の初版

訳注:以下、Intelによる法的文書のため原書のままとします※13

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.

A "Mission Critical Application" is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death. SHOULD YOU PURCHASE OR USE INTEL’S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS’ FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS.

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined". Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.

The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
*Other names and brands may be claimed as the property of others.

Copyright © 2013, Intel Corporation. All rights reserved.


まとめ

このドキュメントは特定のLinuxディストリビューション「Yocto Project 1.4 – Poky 9.0.0」を、Intel Quark SoC X1000を搭載したボード向けへのビルドおよび書き込みや、microSDメモリーカードなどでのブート用イメージの作成などを説明するものですが、他のディストリビューションや他のOSをインストールするためのヒントにもなるものです。ぜひ、いろいろと応用していただければと思います。

今後、対象のドキュメントが更新されることがあれば、できるだけついていきたいと思います。保証はできませんが…。

日本語資料 改定履歴

2013年12月9日 初版


  • 有効にしたい場合は原書をご確認ください。
  • インテル株式会社による表現が「Memory」に対して「メモリー」となっていることに倣っています。
  • SDアソシエーションがSDメモリーカード関連の商標を管理する主体であることを考慮に入れ、同団体の表現をそのまま使用しています。
  • インテル株式会社による表現がそうなっているので、それに合わせています。ただし、前述の「microSDメモリーカード」に限り、この原則に従いません。
  • 質問者の技術レベルに応じて必要な回答を用意するのは、非常に高いスキルと多くの時間を必要とするものです。私はこれらのサービスが可能な状態にはありません。
  • Linux以外にWindowsあるいはOS Xでの作業も可能です。
  • クロス・コンパイルのための設定による通常環境に対する影響を「クロス汚染」と表現しています。
  • ClantonとはIntel Quark SoC X1000のコードネーム。
  • スクリプトを実行したセッションの環境を大幅に変更することになるため、常に新しいセッションを開始し、その中で作業をすることにより、他への影響を最小限にすることができるということを説明しています。
  • Galileo / Kips Bay Fab Dならば基板右上、Kips Bay Fab Cならば基板左下に、それぞれ接続用のピンヘッダーがあります。

    Galileo / Kips bay Fab Dにおけるピンヘッダーの配置を以下に示します(Kips Bay Fab Cでは180度回転しています):

      5:LSPI_MISO_R(DO) 3:LSPI_CS_N(CS_N) 1:VCC
    8:NC 6:LSPI_MOSI(DI) 4:LSPI_SCK(CLK) 2:GND

    ※Galileoの回路図から“さかきけい”が独自に調べた結果のため、間違っていたらすみません。

  • Customer Reference Board(カスタマー・リファレンス・ボード)、Intel GalileoとKips Bay Fab Cのこと。
  • 原書の改定履歴です。
  • 私の意訳では法的な文書の内容を正確に伝えることはできませんので、このような対応となります。ご了承ください。