Docker RPi4 ImageBuilder
https://github.com/satmandu/docker-rpi4-imagebuilder
RPi4 64bit 用のUbuntu Server イメージを作成する環境を構築してみました。
Update: 2019-08-05 aarch64 でメモリ4GB 起動しました!
ubuntu@ubuntu:~$ uname -a |
Update: 2019-08-15 aarch64 でメモリ4GB とUSB 動作しました!
環境の準備
ビルド環境の構成
- ホストOS: Windows 10 Pro Insider Preview 1903
- ゲストOS: Ubuntu Server 19.10 x86_64
http://cdimage.ubuntu.com/ubuntu-server/daily-live/current/eoan-live-server-amd64.iso
ゲストOS にDocker をインストール
- Docker をインストール
$ curl -fsSL https://get.docker.com/ | sh
/etc/apt/sources.list.d/docker.list deb [arch=amd64] https://download.docker.com/linux/ubuntu disco stable
$ sudo apt update
$ sudo apt install docker-ce qemu-user-static
$ docker --version
Docker version 19.03.1, build 74b1e89
$ sudo usermod -aG docker $USER
$ sudo reboot
起動用SD カードの作成
イメージの作成
$ mkdir ~/rpi4-build |
.xz にしたい場合はNOXZ=1
の指定を外す。
イメージは小さくなるが、圧縮に時間がかかるらしい。
ログの確認とリビルド
./output/build-log-*.log
でエラーが出力されていたらリビルド
$ git pull ; NOXZ=1 time ./build-image -i docker-rpi4-imagebuilder:19.10 -o output . |
SD カードへ書き込み
sdX
をSD カードのデバイスに置換して実行します。
$ sudo apt install lz4 |
カーネルのカスタマイズ
3種類のカスタマイズ方法が用意されてします。
RAM: 1GB, USB: Works
$ sudo cp /boot/firmware/uboot.bin /boot/firmware/kernel8.img ; sudo reboot
RAM: 4GB, USB: No
/boot/firmware/config.txt #total_mem=3072
$ sudo cp /boot/firmware/kernel8.img.nouboot /boot/firmware/kernel8.img ; sudo reboot
RAM: 3GB, USB: Works [現在のデフォルト]
$ sudo cp /boot/firmware/kernel8.img.nouboot /boot/firmware/kernel8.img ; [ `grep -cs "total_mem=" /boot/firmware/config.txt` -gt 0 ] && sudo sed 's/total_mem=*$/total_mem=3072/' /boot/firmware/config.txt || echo "total_mem=3072" | sudo tee -a /boot/firmware/config.txt
Comment