Yocto Project Quick Build — The Yocto Project ® 3.2.1 documentation を qemuarm
で試す。
前提
- OS: Windows 10 Pro
- Docker: Docker version 20.10.2, build 2291f61
- 使用する Docker イメージ: debian:buster-slim
作業用コンテナ起動
必要パッケージのインストール
WORK_DIR=$(pwd)
apt-get update
# Quick Build に記載されているパッケージをインストール
apt-get install -y gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev
# Quick Build には記載されていないが、これが無いとビルド時にエラーが発生した
apt-get install -y python2
# qemu インストール
apt-get install -y qemu-system-arm
yocto の clone とビルド
# yocto を clone
git clone git://git.yoctoproject.org/poky.git
cd poky
git checkout tags/yocto-3.2.1 -b my-yocto-3.2.1
# yocto 環境設定読み込み
source oe-init-build-env
# arm 用のバイナリをビルドするための設定
sed -i -e 's/MACHINE ??= "qemux86-64"/MACHINE ??= "qemuarm"/' conf/local.conf
# root でビルドできるように設定
touch conf/sanity.conf
# 詳細不明だが、エラーが発生した
# エラーになっても 2, 3 回同じコマンドを繰り返すと成功することがある。
# 一発で成功することもある。謎。
bitbake core-image-minimal
ビルド成果物を qemu-system-arm
で実行
runqemu
を実行すると、「tun
モジュールが無い」と怒られたので、 qemu-system-arm
コマンドで実行する。
qemu-system-arm -M virt -m 1024 \
-kernel tmp/deploy/images/qemuarm/zImage \
-drive if=none,file=tmp/deploy/images/qemuarm/core-image-minimal-qemuarm.ext4,format=raw,id=hd \
-device virtio-blk-device,drive=hd \
-netdev user,id=usernet \
-device virtio-net-device,netdev=usernet \
-append "root=/dev/vda" \
-nographic -no-reboot
以上。
0 件のコメント:
コメントを投稿