-
Notifications
You must be signed in to change notification settings - Fork 2
Creating SD Image
各ビルド手順に従って bitbake core-image-weston
でビルドした結果の artifacts から起動用の SD カードの作成手順を説明します。
SDカードのデバイスファイルとマウント先を仮にそれぞれ /dev/sdb
および /mnt/sd
とする。環境に合わせて読み替えること。
パーティションの作成 (Linux)
$ sudo apt-get install gparted
$ sudo gparted /dev/sdb
(boot領域をfat32、システム領域をext3の2パーティションに割当)
パーティーションの作成 (macOS)
# まずディスクのリストを確認してターゲット sdcard の番号を確認 (ここでは disk2 とする)
diskutil list
# 2 パーティーションを FAT32 の 200MB と残りに分割
# MBR を指定しないと GPT などとなり u-boot で認識できないことがあるので注意!
diskutil partitionDisk disk2 2 MBR FAT32 BOOT 200MB FAT32 ROOTFS 0
# 出来たパーティーションのうち ext3 or ext4 にしたいものを確認
diskutil list
# rootfs パーティーションを ext3 or ext4 でフォーマット
sudo mkfs.ext3 /dev/disk2s3
SDカードにファイルをコピー (Linux)
sudo mkdir -p /mnt/boot
sudo mkdir -p /mnt/sd
sudo mount /dev/sdb1 /mnt/boot
sudo mount /dev/sdb2 /mnt/sd
# 対象ボードによってパス、ファイル名は読み替える。dtb は u-boot で指定するファイル名と一致させる
sudo cp "${WORK}/build/tmp/deploy/images/ek874/Image" /mnt/boot
sudo cp "${WORK}/build/tmp/deploy/images/ek874/Image-r8a774c0-ek874.dtb" /mnt/boot
# tar.bz2 ではなく xz ファイルの場合は tar -xJf オプションで展開する:
sudo tar -xjf "${WORK}/build/tmp/deploy/images/ek874/core-image-weston-es10-ek874.tar.bz2" -C /mnt/sd
sync
sudo umount /mnt/boot
sudo umount /mnt/sd
- 利用ボードに合わせて DTB ファイルを選択すること。特に RZ/G2E では CPU リビジョン (U-boot 起動メッセージに表示される) が 1.0 と 1.1 で異なるファイルを指定する。U-boot で読み込むファイル名との対応にも注意。
- RZ/G2E (cpu rev 1.0): Image-r8a774c0-es10-ek874.dtb
- RZ/G2E (cpu rev 1.1): Image-r8a774c0-ek874.dtb
- RZ/G2H: Image-r8a774el-hihope-rzg2h-ex.dtb
- Ubuntu などで自動マウントすると
/mnt/boot
などではなく/media/username/boot
などにマウントされることに注意。 - macOS で ext3 or ext4 パーティーションの読み書きをサポートしている OSS ツールは存在しない (読み込みだけなら ext4fuse などで良い)。
ボードによってはサポートしている画面解像度を指定して起動させるよう /etc/xdg/weston/weston.ini
を書き換える必要がある。例えば RZ/G2E では次のような設定にすることがある (RZ/G2E 公式サポートは 1280x720 であり FullHD 表示などは問題が生じる)。
[core]
repaint-window=34
require-input=false
xwayland=true
[v4l2-renderer]
device=/dev/media0
device-module=vsp2
[output]
name=LVDS-2
mode=off
[output]
name=HDMI-A-1
mode=1280x720
WebGL2 のサポートが不要な場合は xwayland=true
の指定は不要。
SD カードに焼き込んだブートイメージファイルを指定する形で U-Boot の設定を変更する必要があり、これはシリアルコンソールで接続して行う必要があります。
以下、GNU/Linux で screen
を使用して接続する場合の例:
screenをインストール
$ sudo apt-get install screen
$ sudo screen /dev/ttyUSB0 115200
# 問題が無ければ、実機の電源投入後にコンソールに出力が表示される。
シリアルコンソール用のケーブルは壊れやすいので注意すること。最近の macOS では OS のセキュリティ制限で /dev/tty* として認識できずシリアルコンソールに繋げないので適当な VM の Ubuntu から接続する。但し Virtualbox の Ubuntu はシリアルコンソール接続時にフリーズすることがあるなど不安定なため注意 (適当な Linux マシン用意した方が早い)。
多くのボードでカーネルのロードに U-Boot が使われる。よく使うコマンドのメモ:
- print $env
- 環境変数の表示。$env 省略すると全ての変数を表示する
- setenv $env "key=val"
- 変数 $env の設定
- saveenv
- setenv した後の結果を Flash ROM 等に記録させる
- Gecko のビルド手順
- RZ/G2
- R-Car Gen3 Yocto2.1, Yocto2.4
- RZ/G1E Yocto 1.6.1, Yocto 2.0
- RasinboW G20D Q7 Yocto1.6.1, Yocto2.0
- Wandboard
- iMX6 SABRE
- Armadillo EVA 1500
- SD カード作成
- 追加レシピ (WPT等)
- Tips Pages
- 主な関連リポジトリ