はじめに
秋月電子で謎の基板が売り出されていました。(現在売り切れ)
これを解析して動かした方がいらしゃいます。
これをWSL2環境でビルドしてみようという記事です。
前提知識
ラズパイなどのイメージをSDに書き込んだことがある
dialog(raspi-config みたいな画面)の操作ができる
WSL2 - Ubuntu を使える
buildroot は初めて
(つまりは3日前の自分)
WSL2 - Ubuntu 準備
WSLのUbuntuは、ストアからバージョン表記なしの Ubuntu を選びました。22.04.1 がインストールされました。
素の状態から試したので、必要パッケージに漏れはないものと思います。
元の記事にも言及がありますが、PATHを綺麗する操作をここでしておいてください。
また、WSL1 ではビルドが失敗します。動かしているUbuntuがWSL2上で動いていることを改めてご確認ください。
確認方法は以下の通り。(コマンドプロンプトまたはPowerShellでの操作)
C:\>wsl --list -v
NAME STATE VERSION
* Ubuntu Running 2
(WSL2で動いているものと思いこんでてかなり時間を無駄にしてしまった・・・)
パッケージのインストール
ビルドに必要なパッケージをインストールします。
(以下、Ubuntu内での操作です)
$ sudo apt update
$ sudo apt -y install build-essential bc libssl-dev unzip ncurses-dev
build-essential
は、make などの全部入りです。
bc
libssl-dev
unzip
は、無いとビルド時にエラーがでます。
ncurses-dev
は、make menuconfig
するときに必要となります。
ソースの入手とビルド
ソースを取得します。ディレクトリは1階層作られるので、明示的に作成しておく必要はないでしょう。
$ git clone https://github.com/bakueikozo/buildroot_am3352_aki
作られたディレクトリに移動します。
$ cd buildroot_am3352_aki
ビルドします。
$ make akiduki_am3352_defconfig
$ make
手元の環境(i7-4790k 4コア8スレッド 4GHz)では20分ほどかかりました。
-j
オプションを付けて高速化したほうがいいのでは?と思いましたが、buildroot側で良きに計らってくれるみたいなので、付けなくていいっぽいです。make menuconfig
の中にジョブ数を指定するところがあり、デフォルトでは自動になっています。
正常にビルドできたら、最後のメッセージは以下のようになります。
INFO: hdimage(sdcard.img): adding partition 'u-boot' (in MBR) from 'boot.vfat' ...
INFO: hdimage(sdcard.img): adding partition 'rootfs' (in MBR) from 'rootfs.ext4' ...
INFO: hdimage(sdcard.img): adding partition '[MBR]' ...
INFO: hdimage(sdcard.img): writing MBR
$
成果物は、./output/images/sdcard.img
です。
$ ls -la ./output/images/sdcard.img
-rw-r--r-- 1 username username 79692288 Mar 26 06:17 ./output/images/sdcard.img
これをSDに書き込み、謎基板に挿して起動してみましょう。
シリアルコンソールは 115200bps です。
なお、ログインプロンプトが出た数秒後、3Gモジュールの認識メッセージが被ります。
つづき
dhcp,mdns,ssh を有効にしたイメージを作り、有線LAN経由でログインしてみます。
USBシリアル変換ケーブルなどを持っていなくてもログインできるようになります。