注意
理解が浅いためドキュメントを引用しつつ読み込みを行いましたが誤っている箇所があるかもしれません。
その点をご理解の上で読んでいただけると幸いです。
はじめに
あるRenesasのAIボードにおいてYoctoを使ったインストールの箇所がありました。
その際にやや詰まったり背景が理解しきれずコマンドをただ叩く行為になっていました。
そこで情報を整理し、インストールまで何が行われているのかを記述していきます。
この情報が今からYoctoを使ったインストールをされる方のお役に立てば幸いです。
環境
ubuntu20.04
wsl2環境
windows11
Renesas RZ/V2L
Yoctoとは何か?
The Yocto Project (YP) is an open source collaboration project that helps developers create custom Linux-based systems regardless of the hardware architecture.
The project provides a flexible set of tools and a space where embedded developers worldwide can share technologies, software stacks, configurations, and best practices that can be used to create tailored Linux images for embedded and IOT devices, or anywhere a customized Linux OS is needed.
Yocto Projectとは
組込みシステムには、小フットプリント、制約のある環境下での高いパフォーマンス、信頼性、長期間のサポート、制限されたリソースへの対応が求められます。Yocto Projectは、これらのエッジ特有の課題を検討し、組込みLinuxプラットフォームの標準化を目指して生まれたLinux Foundation傘下のオープンソースプロジェクトです。柔軟なツールセットと開発環境を提供しており、世界中の組込み機器開発者がカスタムメイドのLinuxイメージを作成する際に使用する技術、ソフトウェアスタック、構成、ベストプラクティスを共有し、高い相互運用性を達成しています。ハードウェアベンダーやソフトウェアベンダーのエコシステムも統合されていることから、インテリジェントエッジなどの最新テクノロジーに対するサポートや専門知識も入手可能です。Yocto Projectは誰もが無償で利用可能な、標準の組込みLinuxビルドシステムを提供します。
かなり乱暴なまとめ方に感じますが1言で表現してみると
Linuxをカスタマイズし組込みシステムに最適化させたビルドシステムのことなのだと解釈しています。
作業手順
sudo apt install build-essential chrpath cpio debianutils diffstat file gawk gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3-jinja2 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xz-utils zstd
git clone git://git.yoctoproject.org/poky
まずはcloneでyoctoプロジェクトを入手します
cd poky
git branch -a
-aオプションを付けることですべてのブランチを確認できます
git checkout -t origin/styhead -b my-styhead
ここではstyheadを採用しています
git pull
pullで必要な情報を取得します
cd poky
source oe-init-build-env
ファイルの実行を行います
今回はoe-init-build-envファイルの実行が行われます
bitbake core-image-minimal
bitbakeコマンドでlinuxイメージの構築を行います
今回はcore-image-minimalの構築を行います
runqemu qemux86-64
構築したイメージのエミュレーターの起動コマンドになります
問題がなければ画面が立ち上がりlinuxイメージが動いているのを確認できます
補足
sudo apt install zstd
この操作は状況によりけりですがインストールする必要があります
zstdを利用することでpull後の操作が問題なく進むというケースがありました
ロジックは不明ですが場合によっては利用されてください
最後に
誠実な批判や指摘は歓迎します。