この記事はLinux Advent Calendar 2022の25日目です。
はじめに
主要SoCメーカーがyocto環境を提供していること、CQ出版社のinterface誌でyocto連載がはじまったこともありyoctoの環境構築をしたいと思いました。
背景
以前もyocto環境を構築したことがありました。
そのときはAWS上でyocto環境をつくりました。
私がyocto環境構築する際にネックになるのが【ストレージ容量】です。
私のメインPCはMacBook(2017年版)でストレージ容量はつぎのとおりです。
このMac PCにUbuntuをゲストOSとして動かしyocto環境構築するのにはストレージ容量が厳しそうです。
そういった事情も前回AWSで環境構築した理由です。
ただ、AWSの料金管理の知見がなくお金を払いすぎたこと(こちらを参照)もありAWSでyocto環境構築はやりたくありませんでした。
現状のPCでなんとかyocto環境構築する手段はないかと探していました。
結局どうしたか?
結論としてつぎの構成でyocto開発環境が構築できました。
- PCは現状のMacBook(2017年版)のまま
- SSD 1Tを購入
- SSDケースを購入し、USB Type-CでMac PCに接続
外付けSSDにVMwareのUbuntu20.04の仮想マシンをつくり、そこにyocto環境を構築しました。
以降に少し掘り下げて説明します。
ホストPCのスペック紹介
ホストPCのスペックを紹介します。
- MacBook 2017
- メモリ 8G
- ストレージは250G
- ストレージの空き容量は30Gという状況
yocto開発環境構築
機材準備
ラズパイZero 2 W
今回はラズパイZero 2 W向けにyoctoのSDカードイメージをつくることにしました。
SSD
SSDはつぎを購入しました。
SSDケース
SSDケースはつぎを購入しました。
こちらのケースでは40Gbpsの転送と謳っていますが私のMacBookのUSBがUSB3.0のため転送速度は5Gbpsで頭打ちになると思います。
最新のMacBook Pro(M2チップ)であればこのケースの性能を使えそうです。
2つ合わせてそれなりの金額になります。
もしyocto環境が構築できなかったら、
- 外付けストレージデバイス
- ラズパイをSDカードブートからSSDブートにする
- その他
など使い道がありそうだったので購入してyocto環境構築してみることにしました。。
構築手順
仮想マシンをつくる
ホストPCはMacなのでVMwareでゲストOSのLinuxを動かし、そこにyocto環境をつくることにしました。
こちらの1.1 Supported Linux Distributionsによるとyocto環境はつぎのLinuxディストリビーションで動くとのことでした。
- Ubuntu 18.04 (LTS)
- Ubuntu 20.04 (LTS)
- Ubuntu 22.04 (LTS)
- Fedora 34
- Fedora 35
- AlmaLinux 8.5
- Debian GNU/Linux 10.x (Buster)
- Debian GNU/Linux 11.x (Bullseye)
- OpenSUSE Leap 15.3
この中で割と使ったことが多い Ubuntu 20.04 (LTS) をゲストOSに決めました。
VMwareでUbuntu20.04の仮想マシンをつくります。
構築の方針
yocto環境構築は基本Interface誌10月号の記事とこちらのBuild Host Packagesを参考に進めていきました。
構築のバリエーションは選択肢があると思いますが、Interface誌の連載を再現するのが目的だったのでこちらにしました。
- yoctoのバージョンはkirkstone
- イメージはcore-image-minimal
krikstoneについてはこちらのページが詳しそうです。
core-image-minimalイメージはLinuxのブートに必要な最小限の構成とのことです。
構築時に起きたこと
構築を開始するといくつかの事象が発生しました。
ディスク容量の不足
VMwareでUbubtu20.04の仮想マシンをつくるときにディスク容量を20Gにしていました。
ディスク容量不足のため構築が失敗していました。つぎは状況発生時のツイートです。
ディスク容量を20Gから200Gに変更しふたたび構築をおこないました。
結果、構築が完了しcore-image-minimalのイメージができました。
構築に要したストレージの容量は53Gとなっていました。
動作確認
構築で作成されたcore-image-minimalのイメージをマイクロSDカードに書き込み電源ONしました。
つぎのツイートのとおり、ラズベリーが表示され、rootでログインできました。
まとめ
今回の記事をまとめます。
- SSDを外付けしてもyocto環境構築ができた
- yocto kirkstone, core-image-minimalイメージのディスク使用量は53Gだった。
もし同様の環境構築を行う際にストレージ容量の見積りに悩まれた際は参考にしていただければ・・・と思います。