😎

Ubuntu22.04環境でYoctoのビルドを行う方法

2024/03/18に公開

Ubuntu 22.04環境でYoctoのビルドを行おうとするとファイルのfetchで先に進まなくなってしまう現象が出ていて困ってました。デバッグオプションで見てみると、gitでソースを取得するものがダメっぽい。NXPのiMX系の掲示板でも同じような症状が報告されていました。
自分で直すのもしんどいので、Dockerを使ってのビルドを試してみました。

情報の参照元はこちら( https://zenn.dev/miwarin/articles/7b1ae9d43b8869 )

Dockerのセットアップ

こちら( https://docs.docker.com/engine/install/ubuntu/ )の記載内容をもとにDocker環境を構築しておきます。

Dockerfileを作る

以下の内容でDockerfileを作ります。

FROM ubuntu:20.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 nano \
    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

コンテナイメージの作成

以下のコマンドを実行し、コンテナイメージを作成します。

sudo docker build -t yocto .

コンテナイメージ内でのビルド

以下のコマンドでコンテナを起動します。

sudo docker run -it --rm -u $(id -u):$(id -g) -v $(pwd):/build -w /build yocto

※これはYoctoのTOPDIRあたりで実行すると良いと思います。

あとはディレクトリを適宜移動して、

source oe-init-build-env pi-build

を実行し、ビルド環境を整えた後に

bitbake core-image-minimal

などとしてビルドを実行します。

とりあえず、Ubuntu22.04でもソースの取得がきちんと行えるようになりました。

Discussion