はじめに
APSで紹介されていた
Yoctoベースの組み込みLinux「Wind River Linux」を使って、Raspberry Pi上で動作するLinuxディストリビューションをゼロから作る
に従って、Raspberry Pi 4で動作するLinuxディストリビューションを作成してみました。
機材
機器 | メーカ |
---|---|
ホストPC | Lenovo E570 |
Raspberry Pi 4 ModelB | Raspberry Pi |
microSDカード 32G | SanDisk |
ホストPCの準備
ホストPCは「Lenovo E570」を使用し、Ubuntu Desktop 22.04.01 LTS をインストールしました。
Universal USB Installerを使用してUSBからインストールしました。
USBから起動させるためにBIOSの設定を変更する必要がある場合、Windowsを再起動して画面が暗くなっている間に、LENOVOロゴが表示されるまでF1キーをタップしているとBIOSに入りやすいそうです。
Raspberry Pi Imager
SDカードに書き込みを行うためにRasberryp Pi Imagerをインストールします。
下記のコマンドを実行することでインストールできました。
sudo apt install rpi-imager
手順
基本は記事に従って進めればいいのですが、一部手順通りではうまくいかないところがあります。
Raspbian Liteを入手し、microSDカードへ書き込む
現在は「2020-02-13-raspbian-buster-lite.zip」はダウンロードできないようでした。
代わりにRaspberry Pi ImagerでmicroSDカードの準備を行います。
Raspberry Pi Imagerを起動して「OSを選ぶ」をクリックします。
「Raspberry Pi OS (other)」を選択します。
「Raspberry Pi OS Lite (32-bit)」を選択します。
「設定」ボタンをクリックします。OSを選択しないと設定ボタンは表示されません。
「永続的な設定」で「終わったときにメディアを取り出す」のチェックを外します。microSDカードにOSを書き込んだ後に、microSDカードの中身を編集する必要があるためです。
bitbakeコマンドでLinuxディストリビューションをビルドする
記事では、
bitbake wrlinux-image-glibc-std -c populate_sdk_ext
とありますが、
bitbake wrlinux-image-std -c populate_sdk_ext
とするようです。
Linuxディストリビューションのビルドには約20時間かかりました。
E570では4つの処理を並列して行っていました。
試してはいませんが、下記の記事を参考にすることで時間を短縮できるのかもしれません。
Yocto ビルド並列数の調整方法
Yocto build 時間を10時間から10分に高速化した話
一日で終わらせることができなかったので一度中断して再開しました。
※中断はターミナルで「Ctrl + Z」です。
※再開は「jobs」コマンドで中断しているジョブを確認して「fg ジョブ番号」です。
ビルド結果をmicroSDへ書き込み、起動する
パーテンションのマウントは下記になりました。
/media/ユーザ名/boot
/media/ユーザ名/rootfs
編集後記
いろいろ試していると容量を数10Gから数100G単位で使用していきます。
アンインストールは下記に従えばいいのだろうか。
Uninstalling Wind River Linux
参考
UbuntuをUSBから起動する
Yoctoベースの組み込みLinux「Wind River Linux」を使って、Raspberry Pi上で動作するLinuxディストリビューションをゼロから作る
Yocto ビルド並列数の調整方法
Yocto build 時間を10時間から10分に高速化した話
Wind River Linux