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. はじめる前に
- 2. ソフトウェアのダウンロード
- 3. GRUB OSローダーのビルド
- 4. ファイル・システムの作成およびYoctoで使用するカーネルのビルド
- 5. クロス・コンパイラー・ツール・チェーンの構築
- 6. ボード用のFlashイメージの作成
- 7. プラットフォーム・データ・ファイルの定義
- 8. シリアル・インターフェースを使用したボード上のFlashへの書き込み方法
- 9. DediProgを使用したボード上のFlashへの書き込み方法
- 10. microSDメモリーカードからボードを起動させる
- 11. 署名ファイル(オプション)
- 12. Open OCD debuggerの有効化
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のディスク空き容量がビルド処理のために必要です。
- ボードでプログラムを使用するために:
注記:カレント・バージョンをインストールする前にすべての以前のバージョンのソフトウェアを削除してください。
それぞれのコンポーネントは非常に異なる環境(コンパイラー・オプションやその他)を必要とします。「クロス汚染※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のビルド環境を初期化するためにsource
でoe-init-build-env
コマンドを実行し、そして、ルート・ファイル・システムとカーネルをビルドするためにbitbake <target>
を実行します。後述するSoCに固有の<target>コマンドを指定します。
2つのビルド方法をサポートしています; その出力は、それぞれ少し異なります。
注記:次のビルド方法を連続して行うことはできません。これらは相互に排他的です。
- もしも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
- もしも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
(ディレクトリー)
カーネルとルート・ファイル・システム(それぞれ、
bzImage
とimage-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環境のsource
とmake
の実行をするために1つのターミナル・セッションを開始し、その他のすべてのコマンドは他のターミナル・セッションで実行することをIntelは推奨します。※9
あなたがあなたのアプリケーションをコンパイルする準備ができているならば、最初にsource
コマンドを実行してCC
、CONFIGURE_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* クロス・コンパイラー
- セクション4のすべての手順を実行します。
- 以下のコマンドを実行します:
cd .. git clone git://git.yoctoproject.org/meta-mingw cd yocto_build
conf/bblayers.conf
を編集して、クローンを作成したフル・パスをmeta-mingw
レイヤーに加えます。conf/local.conf
ファイルに以下の内容が含まれることを確認します:SDKMACHINE = "i686-mingw32"
- 以下のコマンドを実行します:
bitbake meta-toolchain
- ツール・チェーンが
tmp/deploy/sdk
の中に作成されています。
5.3 MAC OS* クロス・コンパイラー
- セクション4のすべての手順を実行します。
- 以下のコマンドを実行します:
cd .. git clone git://git.yoctoproject.org/meta-darwin cd yocto_build
conf/bblayers.conf
を編集して、クローンを作成したフル・パスをmeta-darwin
レイヤーに加えます。conf/local.conf
ファイルに以下の内容が含まれることを確認します:SDKMACHINE = "i386-darwin"
- 以下のコマンドを実行します:
bitbake meta-toolchain
- ツール・チェーンが
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
を使用しなければなりません。
以下の手順を実行します:
- セクション6で作成したファイル、またはセクション2で説明されているようにSPI Flashイメージ・カプセル・ファイルをダウンロードします。
- microSDメモリーカードに
CapsuleApp.efi
およびsysimage_nnnnn.cap
をコピーして、それをボード上のスロットに挿入します。 - コンピューターとボードの間をシリアル・ケーブルで接続します。シリアル・コンソール・セッション(例えばPuTTY)をセットアップして、115200bpsでボードのCOMポートに接続します。
- 特殊文字を認識するためにシリアル・コンソール・セッションを構成します。例えば、PuTTYを使用している場合には、明示的に特殊文字を有効にしなければなりません。PuTTYの
Configuration
オプションで、Terminal > Keyboard
カテゴリーへ行き、Function keys and Keypad
オプションにSCO
を設定します。 - ボードの電源を入れます。GNU GRUBブート・ローダーが表示されます(以下のように)。以下で示すように
c
およびquit
を入力してGRUBを抜けます。c
を押してコマンド・ラインに入ります。GRUBコマンド・ラインで
quit
と入力します。 - シリアル・コンソールにブート・デバイスを選択するためのボックスが表示されます(以下のように)。
UEFI Internal Shell
を選択します。これに似た表示になります:
- 見た目がこれに似た見出しが出力されるのが確認できるでしょう:
fs0 :HardDisk - Alias hd7b blk0
これがあなたのmicroSDメモリーカードです。マウントのために以下のようにタイプします:
fs0:
- 正しいバージョンの
CapsuleApp.efi
を使用していることを確認するために-?
または-h
オプションを使用します。バージョン1.1またはそれ以降を使用しなければなりません。 - 以下のコマンドを実行します:
CapsuleApp.efi sysimage_nnnnn.cap
注記:
sysimage_nnnnn.cap
ファイルのフル・ファイル名を入力しなければなりません。これに似た表示を確認することができます:
CapsuleAppがあなたのSPI Flashイメージを更新します。この処理には約2分かかります。
警告:電源を切ったり、あるいはこのプロセスを終了しようとしないでください!! プロンプトに戻るのを待ってください。そうしなければ、あなたのボードは機能しなくなるでしょう。
- アップデートが完了すると、ボードは自動的にリブートします。これに似た表示を確認することができます:
8.1 セキュアSKUボード専用
依存関係: CapsuleApp.efi
(セクション2でダウンロード済み)
以下の手順を実行します:
- セクション6で作成したファイル、またはセクション2で説明されているようにSPI Flashイメージ・カプセル・ファイルをダウンロードします。
- microSDメモリーカードに
CapsuleApp.efi
およびsysimage_nnnnn.cap
をコピーして、それをボード上のスロットに挿入します。 - コンピューターとボードの間をシリアル・ケーブルで接続します。シリアル・コンソール・セッション(例えばPuTTY)をセットアップして、115200bpsでボードのCOMポートに接続します。
- 特殊文字を認識するためにシリアル・コンソール・セッションを構成します。例えば、PuTTYを使用している場合には、明示的に特殊文字を有効にしなければなりません。PuTTYの
Configuration
オプションで、Terminal > Keyboard
カテゴリーへ行き、Function keys and Keypad
オプションにSCO
を設定します。 - ボードの電源を入れます。F7を押してGRUBが開始される前にEFIシェルに入ります。
- シリアル・コンソールにブート・デバイスを選択するためのボックスが表示されます(以下のように)。
UEFI Internal Shell
を選択します。これに似た表示になります:
- 見た目がこれに似た見出しが出力されるのが確認できるでしょう:
fs0 :HardDisk - Alias hd7b blk0
これがあなたのmicroSDメモリーカードです。マウントのために以下のようにタイプします:
fs0:
- 正しいバージョンの
CapsuleApp.efi
を使用していることを確認するために-?
または-h
オプションを使用します。バージョン1.1またはそれ以降を使用しなければなりません。 - 以下のコマンドを実行します:
CapsuleApp.efi sysimage_nnnnn.cap
- アップデートが完了すると、ボードは自動的にリブートします。これに似た表示を確認することができます:
注記:sysimage_nnnnn.cap
ファイルのフル・ファイル名を入力しなければなりません。
これに似た表示を確認することができます:
CapsuleAppがあなたのSPI Flashイメージを更新します。この処理には約2分かかります。
警告:電源を切ったり、あるいはこのプロセスを終了しようとしないでください!! プロンプトに戻るのを待ってください。そうしなければ、あなたのボードは機能しなくなるでしょう。
9. DediProgを使用したボード上のFlashへの書き込み方法
ボードに書き込むためには、DediProg SF100 SPI Flash Programmer(以下、SF100)と、これをサポートする書き込み用ソフトウェアを使用することができます。
注記:これらの手順では、セクション7で作成したFlash+PlatformData.bin
ファイルを必要とします。
すでにソフトウェアがインストールされており、SF100がボードに接続されているなら新しいターミナル・セッションを開き、DediProgエンジニアリング・アプリケーションを起動します。※10
ボードへ書き込む手順は以下の通りです:
- もしもアプリケーションが起動するときにプロンプトが表示されるなら、メモリ・タイプを選択します。
- ファイル・アイコンを選択し、書き込みたい
*.bin
ファイルを選びます。 - 必要に応じてSPI Flashの内容を消すためにEraseボタンを選択します。
- ファイル・フォーマットは
raw
を選択します。 - Progアイコンを選択し、イメージをボードに書き込みます。
- 必要に応じて、イメージが正しく書き込まれたことを確認するためにVerifyアイコンを選択します。
注記:Intelはシステムをブートさせる前にSF100を外すことを推奨します。
10. microSDメモリーカードからボードを起動させる
microSDメモリーカードからボードを起動し、また継続してrootfs
を有効にするためには、以下の手順に従ってください。また、USBメモリーからボードを起動するために、この手順を使用することもできます。
Galileoボードを使用しているなら、このセットアップによってボードへSketchを保存することができるようになります。これにより、ボードの電源をオフにした後でも、繰り返してSketchを実行できるようにできます。これは、さらに持続的な/sketch
フォルダーを有効にします。
依存関係:セクション4におけるbitbake image-full
コマンドの実行
- セクション4のビルド処理が出力する
./tmp/deploy/images/
の中に存在する以下のカーネルおよびルート・ファイル・システムのファイルをmicroSDメモリーカードへコピーします:boot
(ディレクトリー)bzImage
core-image-minimal-initramfs-clanton.cpio.gz
image-full-clanton.ext3
必ず以下に示したファイルおよび構造を備えたmicroSDメモリーカードをセットアップしてください:
- microSDメモリーカードを挿入し、ボードの電源を入れます。
注記:初回にボードを起動する際には数分かかることがあります。これは、初回起動時に暗号化キーを作成するSSHコンポーネントによる予期された挙動です。
11. 署名ファイル(オプション)
この手順はほとんどのユーザーにとってオプションです;これはSecure Bootにのみ必要とされます。そうでなければ、この手順を飛ばすことができます。
依存関係:libssl-dev
カーネルとルート・ファイル・システム(それぞれbzImage
とimage-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.csbh
とimage-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のこと。
- 原書の改定履歴です。
- 私の意訳では法的な文書の内容を正確に伝えることはできませんので、このような対応となります。ご了承ください。