これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。
HTML ファイル生成日時: 2024/11/21 17:40:55.112 (台灣標準時)
Raspberry Pi 3 で UEFI を使って NetBSD-10 を起動させるには、 https://washbear.neocities.org/rpi3-netbsd-uefi を参考にすればよいようでござる。
まず、 Raspberry Pi 3 用の UEFI ファームウェアをダウンロードするでござ る。
# cd /tmp # wget https://github.com/pftf/RPi3/releases/download/v1.39/RPi3_UEFI_Firmware_v1.39.zip # ls -lF RPi3_UEFI_Firmware_v1.39.zip -rw-r--r-- 1 root wheel 3798561 Jun 5 2023 RPi3_UEFI_Firmware_v1.39.zip # unzip -l RPi3_UEFI_Firmware_v1.39.zip Archive: RPi3_UEFI_Firmware_v1.39.zip Length Date Time Name -------- ---- ---- ---- 2031616 06-05-23 18:59 RPI_EFI.fd 52476 06-05-23 18:59 bootcode.bin 252 06-05-23 18:52 config.txt 7266 06-05-23 19:00 fixup.dat 2977280 06-05-23 19:00 start.elf 3593 06-05-23 18:52 Readme.md 33851 06-05-23 19:00 bcm2710-rpi-3-b-plus.dtb 33224 06-05-23 19:00 bcm2710-rpi-3-b.dtb 30923 06-05-23 19:00 bcm2710-rpi-cm3.dtb 0 06-05-23 18:52 firmware/ 979 06-05-23 18:52 firmware/Readme.txt 2172 06-05-23 18:52 firmware/brcmfmac43455-sdio.txt 9136 06-05-23 18:52 firmware/LICENCE_bin+clm_blob.txt 4733 06-05-23 18:52 firmware/brcmfmac43430-sdio.clm_blob 4733 06-05-23 18:52 firmware/brcmfmac43455-sdio.clm_blob 638951 06-05-23 18:52 firmware/brcmfmac43455-sdio.bin 11836 06-05-23 18:52 firmware/LICENSE_txt.txt 1185 06-05-23 18:52 firmware/brcmfmac43430-sdio.txt 421158 06-05-23 18:52 firmware/brcmfmac43430-sdio.bin -------- ------- 6265364 19 files
ダウンロードした ZIP アーカイブのファイルを展開するでござる。
# mkdir rpi3_firmware # cd rpi3_firmware # unzip ../RPi3_UEFI_Firmware_v1.39.zip Archive: ../RPi3_UEFI_Firmware_v1.39.zip extracting: RPI_EFI.fd extracting: bootcode.bin extracting: config.txt extracting: fixup.dat extracting: start.elf extracting: Readme.md extracting: bcm2710-rpi-3-b-plus.dtb extracting: bcm2710-rpi-3-b.dtb extracting: bcm2710-rpi-cm3.dtb creating: firmware/ extracting: firmware/Readme.txt extracting: firmware/brcmfmac43455-sdio.txt extracting: firmware/LICENCE_bin+clm_blob.txt extracting: firmware/brcmfmac43430-sdio.clm_blob extracting: firmware/brcmfmac43455-sdio.clm_blob extracting: firmware/brcmfmac43455-sdio.bin extracting: firmware/LICENSE_txt.txt extracting: firmware/brcmfmac43430-sdio.txt extracting: firmware/brcmfmac43430-sdio.bin # ls -lF total 5068 -rw-r--r-- 1 root wheel 2031616 Jun 5 2023 RPI_EFI.fd -rw-r--r-- 1 root wheel 3593 Jun 5 2023 Readme.md -rw-r--r-- 1 root wheel 33851 Jun 5 2023 bcm2710-rpi-3-b-plus.dtb -rw-r--r-- 1 root wheel 33224 Jun 5 2023 bcm2710-rpi-3-b.dtb -rw-r--r-- 1 root wheel 30923 Jun 5 2023 bcm2710-rpi-cm3.dtb -rw-r--r-- 1 root wheel 52476 Jun 5 2023 bootcode.bin -rw-r--r-- 1 root wheel 252 Jun 5 2023 config.txt drwxr-xr-x 2 root wheel 432 Aug 15 14:07 firmware/ -rw-r--r-- 1 root wheel 7266 Jun 5 2023 fixup.dat -rw-r--r-- 1 root wheel 2977280 Jun 5 2023 start.elf
次に、 bootloader をダウンロードして、適切な場所に置くでござる。
# pwd /tmp/rpi3_firmware # mkdir -p EFI/BOOT # cd EFI/BOOT # wget https://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-10/latest/evbarm-aarch64/installation/misc/bootaa64.efi # ls -lF bootaa64.efi -rw-r--r-- 1 root wheel 196056 Aug 13 16:54 bootaa64.efi
それから、 boot.cfg ファイルを用意するでござる。
# cd ../../ # pwd /tmp/rpi3_firmware # vi boot.cfg # cat boot.cfg menu=Boot RPi3 normally:acpi off;rndseed /var/db/entropy-file;boot menu=Boot RPi3 single user:acpi off;rndseed /var/db/entropy-file;boot -s menu=Drop to boot prompt:prompt default=1 timeout=10 clear=1
今度は、 NetBSD-10 のイメージファイルをダウンロードするでござる。
# cd /tmp # wget https://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-10/latest/evbarm-aarch64/binary/gzimg/arm64mbr.img.gz # gunzip arm64mbr.img.gz # ls -lF arm64mbr.img -rw-r--r-- 1 daisuke wheel 1582301184 Aug 15 13:10 arm64mbr.img
arm64mbr.img ファイルから、必要なファイルを取り出すでござる。
# vndconfig vnd0 /tmp/arm64mbr.img # mount -t msdos /dev/vnd0e /mnt # cd /mnt/dtb/broadcom # ls -lF total 158 -r-xr-xr-x 1 root wheel 37735 Aug 13 08:54 bcm2711-rpi-4-b.dtb* -r-xr-xr-x 1 root wheel 37679 Aug 13 08:54 bcm2711-rpi-400.dtb* -r-xr-xr-x 1 root wheel 20741 Aug 13 08:54 bcm2837-rpi-3-a-plus.dtb* -r-xr-xr-x 1 root wheel 21610 Aug 13 08:54 bcm2837-rpi-3-b-plus.dtb* -r-xr-xr-x 1 root wheel 21142 Aug 13 08:54 bcm2837-rpi-3-b.dtb* -r-xr-xr-x 1 root wheel 20465 Aug 13 08:54 bcm2837-rpi-cm3-io3.dtb* # cp -pi bcm2837-rpi-* /tmp/rpi3_firmware # cd /tmp/rpi3_firmware # ls -lF total 5168 drwxr-xr-x 3 root wheel 48 Aug 15 15:09 EFI/ -rw-r--r-- 1 root wheel 2031616 Jun 5 2023 RPI_EFI.fd -rw-r--r-- 1 root wheel 3593 Jun 5 2023 Readme.md -rw-r--r-- 1 root wheel 33851 Jun 5 2023 bcm2710-rpi-3-b-plus.dtb -rw-r--r-- 1 root wheel 33224 Jun 5 2023 bcm2710-rpi-3-b.dtb -rw-r--r-- 1 root wheel 30923 Jun 5 2023 bcm2710-rpi-cm3.dtb -r-xr-xr-x 1 root wheel 20741 Aug 13 08:54 bcm2837-rpi-3-a-plus.dtb* -r-xr-xr-x 1 root wheel 21610 Aug 13 08:54 bcm2837-rpi-3-b-plus.dtb* -r-xr-xr-x 1 root wheel 21142 Aug 13 08:54 bcm2837-rpi-3-b.dtb* -r-xr-xr-x 1 root wheel 20465 Aug 13 08:54 bcm2837-rpi-cm3-io3.dtb* -rw-r--r-- 1 root wheel 201 Aug 15 15:10 boot.cfg -rw-r--r-- 1 root wheel 52476 Jun 5 2023 bootcode.bin -rw-r--r-- 1 root wheel 252 Jun 5 2023 config.txt drwxr-xr-x 2 root wheel 432 Aug 15 15:09 firmware/ -rw-r--r-- 1 root wheel 7266 Jun 5 2023 fixup.dat -rw-r--r-- 1 root wheel 2977280 Jun 5 2023 start.elf # umount /mnt # vndconfig -u vnd0
micro-SD カードに arm64mbr.img を書き込むでござる。
# dd if=/tmp/arm64mbr.img of=/dev/rsd0d bs=1m 1509+0 records in 1509+0 records out 1582301184 bytes transferred in 82.598 secs (19156652 bytes/sec)
micro-SD カード上の一部のファイルを入れ替えるでござる。
# mount -t msdos /dev/sd0e /mnt # cd /mnt # ls -lF total 23151 drwxr-xr-x 1 root wheel 1024 Aug 13 08:54 EFI/ -rwxr-xr-x 1 root wheel 1594 Aug 13 08:54 LICENCE.broadcom* -rwxr-xr-x 1 root wheel 52476 Aug 13 08:54 bootcode.bin* -rwxr-xr-x 1 root wheel 21 Aug 13 08:54 cmdline.txt* -rwxr-xr-x 1 root wheel 155 Aug 13 08:54 config.txt* drwxr-xr-x 1 root wheel 1024 Aug 13 08:54 dtb/ -rwxr-xr-x 1 root wheel 7269 Aug 13 08:54 fixup.dat* -rwxr-xr-x 1 root wheel 5412 Aug 13 08:54 fixup4.dat* -rwxr-xr-x 1 root wheel 3180 Aug 13 08:54 fixup4cd.dat* -rwxr-xr-x 1 root wheel 3180 Aug 13 08:54 fixup_cd.dat* -rwxr-xr-x 1 root wheel 16770784 Aug 13 08:54 netbsd.img* -rwxr-xr-x 1 root wheel 2979264 Aug 13 08:54 start.elf* -rwxr-xr-x 1 root wheel 2254944 Aug 13 08:54 start4.elf* -rwxr-xr-x 1 root wheel 808060 Aug 13 08:54 start4cd.elf* -rwxr-xr-x 1 root wheel 808060 Aug 13 08:54 start_cd.elf* # rm -rf * # cd /tmp/rpi3_firmware # tar cf - * | (cd /mnt; tar xvf -) x EFI/ x EFI/BOOT/ x EFI/BOOT/bootaa64.efi x RPI_EFI.fd x Readme.md x bcm2710-rpi-3-b-plus.dtb x bcm2710-rpi-3-b.dtb x bcm2710-rpi-cm3.dtb x bcm2837-rpi-3-a-plus.dtb x bcm2837-rpi-3-b-plus.dtb x bcm2837-rpi-3-b.dtb x bcm2837-rpi-cm3-io3.dtb x boot.cfg x bootcode.bin x config.txt x firmware/ x firmware/Readme.txt x firmware/brcmfmac43455-sdio.txt x firmware/LICENCE_bin+clm_blob.txt x firmware/brcmfmac43430-sdio.clm_blob x firmware/brcmfmac43455-sdio.clm_blob x firmware/brcmfmac43455-sdio.bin x firmware/LICENSE_txt.txt x firmware/brcmfmac43430-sdio.txt x firmware/brcmfmac43430-sdio.bin x fixup.dat x start.elf # cd /mnt # ls -lF total 5142 drwxr-xr-x 1 root wheel 1024 Aug 15 15:18 EFI/ -rwxr-xr-x 1 root wheel 2031616 Jun 5 2023 RPI_EFI.fd* -rwxr-xr-x 1 root wheel 3593 Jun 5 2023 Readme.md* -rwxr-xr-x 1 root wheel 33851 Jun 5 2023 bcm2710-rpi-3-b-plus.dtb* -rwxr-xr-x 1 root wheel 33224 Jun 5 2023 bcm2710-rpi-3-b.dtb* -rwxr-xr-x 1 root wheel 30923 Jun 5 2023 bcm2710-rpi-cm3.dtb* -r-xr-xr-x 1 root wheel 20741 Aug 13 08:54 bcm2837-rpi-3-a-plus.dtb* -r-xr-xr-x 1 root wheel 21610 Aug 13 08:54 bcm2837-rpi-3-b-plus.dtb* -r-xr-xr-x 1 root wheel 21142 Aug 13 08:54 bcm2837-rpi-3-b.dtb* -r-xr-xr-x 1 root wheel 20465 Aug 13 08:54 bcm2837-rpi-cm3-io3.dtb* -rwxr-xr-x 1 root wheel 201 Aug 15 15:10 boot.cfg* -rwxr-xr-x 1 root wheel 52476 Jun 5 2023 bootcode.bin* -rwxr-xr-x 1 root wheel 252 Jun 5 2023 config.txt* drwxr-xr-x 1 root wheel 1024 Aug 15 15:18 firmware/ -rwxr-xr-x 1 root wheel 7266 Jun 5 2023 fixup.dat* -rwxr-xr-x 1 root wheel 2977280 Jun 5 2023 start.elf*
こうして準備した micro-SD カードを Raspberry Pi 3 に差し込んで電源を入 れれば、 NetBSD-10 が起動するでござる。
ただし、起動の過程で root device, dump device, file system, init path について入力を求められるでござる。 Return キーを押さないと起動してくれ ないので、不便でござる。