注: この手順は古いです。今は単に .wic ファイルを dd するだけで SD を作れます。
作業手順
公式文書 Running AGL on Intel MinnowBoard (and most Intel 64 bits HW)
Intel NUC に AGL をインストールするメモ。まずインストールするファイルを選ぶ。Intel Minnowboard Max 用が NUC にも使える。色んな所にリンクがあるが AGL Unified Code Base Release Notes がまとまっていた。hddimg ファイルをダウンロードする。
-
latest agl-demo-platform-crosssdk-intel-corei7-64.hddimg
- 私が試したときはアプリが壊れていた。
-
dab 4.0.2 agl-demo-platform-intel-corei7-64.hddimg
- まあ動いた。
このファイルを SD カードに焼くには mkefi-agl.sh というツールを使う。(なぜ普通に dd 出来ないかは要調査)
git clone git@github.com:dominig/mkefi-agl.sh.git
$ sudo cp -l mkefi-agl.sh/mkefi-agl.sh /usr/local/bin
あとは SD カードを指してツールを実行すれば作成。ツールはパーティションの作成やフォーマットを自動で行ってくれる。
$ lsblk
SD カードデバイスを確認
$ mkefi-agl.sh
$ sudo mkefi-agl.sh -v agl-demo-platform-crosssdk-intel-corei7-64.hddimg /dev/sdc
hddimg とは?
さて、hddimg というのが聞き慣れないので調べてみる。
この .hddimg というファイルに馴染みがないのでどういう物なのか調べてみる。mkefi-agl.sh を読むとどうもマウント出来そうだ。
$ sudo mount -o loop ~/Downloads/agl-demo-platform-crosssdk-intel-corei7-64.hddimg /mnt
マウントした物を観察すると、rootfs.img があるので、これが起動後の linux のルートパーティションになるようだ。
$ tree /mnt | less
/mnt
├── EFI
│ └── BOOT
│ └── bootx64.efi
├── initrd
├── ldlinux.c32
├── ldlinux.sys
├── libcom32.c32
├── libutil.c32
├── loader
│ ├── entries
│ │ ├── boot.conf
│ │ └── install.conf
│ └── loader.conf
├── rmc.db
├── rootfs.img
├── startup.nsh
├── syslinux.cfg
├── vesamenu.c32
└── vmlinuz
ということで、hddimg というのは linux のルートパーティションと EFI のブート情報を含んだ何かである事がわかる。
$ mkdir /tmp/mnt
$ sudo mount -o loop /mnt/rootfs.img /tmp/mnt
$ $ ls /tmp/mnt
bin boot dev etc home lib lost+found media mnt proc run sbin sys tmp usr var
Bitbake が hddimg を作る仕組み。
Bitbake は IMAGE_FSTYPES の値を元に作成するイメージのフォーマットを決める。AGL の場合、次のように設定が見える。
$ ag IMAGE_FSTYPES meta-*
meta-agl/meta-agl-distro/conf/distro/poky-agl.conf
122:AGL_EXTRA_IMAGE_FSTYPES ??= ""
131:IMAGE_FSTYPES := "${AGL_DEFAULT_IMAGE_FSTYPES} ${AGL_EXTRA_IMAGE_FSTYPES}"
meta-agl/meta-agl-bsp/conf/include/agl_intel-corei7-64.inc
27:AGL_DEFAULT_IMAGE_FSTYPES := "wic hddimg"
自前でビルドする場合。
source meta-agl/scripts/aglsetup.sh -m intel-corei7-64 agl-demo agl-devel
bitbake agl-demo-platform
のように -m intel-corei7-64
を指定すれば勝手に hddimg ファイルが出来る。