🕌

BuildrootでRaspberry Pi4Bのカスタムイメージを作る

2024/03/15に公開

Yoctoのビルドがうまくいかない(ファイルのFetchに失敗してしまう、異常に遅い)ので、Buildrootを試してみました。以下手順をまとめます。

Buildrootとは

Buildroot(https://buildroot.org/) は独自のLinuxシステムを作成するためのビルドシステムです。同じような目的のものとしてYoctoがありますが、YoctoよりもBuildrootのほうが処理が軽くて構造もわかりやすいと思います。OpenWRTのBuild Toolとしても利用されています。また、各社のSoCのSDKとして利用されているものもあります。
対象のアーキテクチャとしてはIntel x86系のほかにARM系(Raspberry Piなど)やRISC-V系(BeagleVなど)が指定できます。
今回はRaspberry Pi 4Bをターゲットに試してみます。

ソースコードの取得

今回は現時点(2024年3月)で最新の2024.02を用います。こちらのURL(https://buildroot.org/download.html) からファイルをダウンロードします。
以下は作業ディレクトリとしてworkを作成しています。wgetでファイルをダウンロード後、展開します。

mkdir ./work
cd work
wget https://buildroot.org/downloads/buildroot-2024.02.tar.gz
tar xvzf buildroot-2024.02.tar.gz

ターゲットの設定

カレントディレクトリを移動します。

 cd buildroot-2024.02/

以下のコマンドを使い、設定できるボードの種類を確認できます。

make list-defconfigs

PCをターゲットにする場合、以下の設定を使用します。(BIOSの種類で設定が異なります)

pc_x86_64_bios_defconfig            - Build for pc_x86_64_bios
pc_x86_64_efi_defconfig             - Build for pc_x86_64_efi

Raspberry Piの場合、以下の設定が使用可能です。

  raspberrypi0_defconfig              - Build for raspberrypi0
  raspberrypi0w_defconfig             - Build for raspberrypi0w
  raspberrypi2_defconfig              - Build for raspberrypi2
  raspberrypi3_64_defconfig           - Build for raspberrypi3_64
  raspberrypi3_defconfig              - Build for raspberrypi3
  raspberrypi3_qt5we_defconfig        - Build for raspberrypi3_qt5we
  raspberrypi4_64_defconfig           - Build for raspberrypi4_64
  raspberrypi4_defconfig              - Build for raspberrypi4
  raspberrypi_defconfig               - Build for raspberrypi
  raspberrypicm4io_64_defconfig       - Build for raspberrypicm4io_64
  raspberrypicm4io_defconfig          - Build for raspberrypicm4io
  raspberrypizero2w_defconfig         - Build for raspberrypizero2w

今回はRaspberry Pi 4の64bitを使用しますので、以下のコマンドを実行してデフォルトの設定を読み込みます。

make raspberrypi4_64_defconfig 

実行するとRaspberry Pi 4/64bit環境のデフォルト設定が読み込まれ、.configに書き込まれます。

イメージのビルド

設定が書き込めたら、一度ビルドしてみます。以下のコマンドでビルドを行います。

make

ダウンロード含めかなり時間がかかります。
ビルドが終わると、./buildroot-2024.02/outputにsdcard.imgというディスクイメージが作成されます。これをSDカードに書き込みます。

Raspberry Pi 4に今書き込んだSDカードを装着し、電源を入れます。正常にビルドされていると正常に起動し、ログインプロンプトが表示されます。rootでログインして動作を確認します。

基本的なビルド方法は以上となります。
カスタマイズは別記事で書きます。

Discussion