🔥
docker コンテナ内で yocto をビルドする
環境
Arch Linux
参考
必要なパッケージなども書かれています。
手順
docker を準備する
docker をインストールします。
sudo pacman -S docker
docker サービスを起動します。
sudo systemctl enable docker
sudo systemctl start docker
以下のような Dockerfile を準備します。
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get dist-upgrade -y && apt-get autoremove --purge -y \
&& apt-get install -y \
gawk wget git diffstat unzip texinfo gcc build-essential \
chrpath socat cpio python3 python3-pip python3-pexpect xz-utils \
debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa \
libsdl1.2-dev python3-subunit mesa-common-dev zstd liblz4-tool file locales \
&& rm -rf /var/lib/apt/lists/*
RUN dpkg-reconfigure locales \
&& locale-gen en_US.UTF-8 \
&& update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
イメージを作成します。 ユーザーを docker グループに追加すれば sudo は不要です。
sudo docker build -t yocto .
yocto を取得する
Quick Build の通りです。
git clone git://git.yoctoproject.org/poky
cd poky
git checkout -t origin/mickledore -b my-mickledore
yocto をビルドする
docker コンテナを起動します。 git clone した yocto のディレクトリ (poky です) を docker の /build
にマウントしてます。
sudo docker run -it --rm -u $(id -u):$(id -g) -v $(pwd):/build -w /build yocto
以下 docker コンテナ内での作業です。
source oe-init-build-env
bitbake core-image-sato
以上です。
Discussion