🔥

docker コンテナ内で yocto をビルドする

2023/08/30に公開

環境

Arch Linux

参考

Yocto Project Quick Build

必要なパッケージなども書かれています。

手順

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