😎
Ubuntu22.04環境でYoctoのビルドを行う方法
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