Re: Nanobsd for RPI4
- Reply: Guido Falsi : "Re: Nanobsd for RPI4"
- In reply to: Guido Falsi : "Re: Nanobsd for RPI4"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 16 Jan 2024 09:30:45 UTC
> On 16 Jan 2024, at 10:03, Guido Falsi <mad@madpilot.net> wrote: > > On 16/01/24 09:52, Andrew Hankinson wrote: >> Hello, >> I saw a recent posting to this list about nanobsd for RPI3: >> Re: Nanobsd builds for rpi3 out of embedded blow up during build <https://lists.freebsd.org/archives/freebsd-arm/2024-January/003509html> >> lists.freebsd.org <https://lists.freebsd.org/archives/freebsd-arm/2024-January/003509.html> >> favicon.ico <https://lists.freebsd.org/archives/freebsd-arm/2024-January/003509.html> >> <https://lists.freebsdorg/archives/freebsd-arm/2024-January/003509.html> >> I just wanted to chime in to say I am seeing the exact same thing for a RPI4 build with both 14.0 release and 15.0 current. I asked about it on the forums, but there didn’t seem to be any solution. >> Has anyone here managed to get a nanobsd build working? > > I am using nanobsd with RPi3. Never tried RPi4. I did some customization to the nanobsd scripts and configuration to get it working though. > > Last time I rebuilt my image was in mid december. I'm going to build a new image in the next pair of weeks. > > Is the problem limited to the boot code? I haven't been able to get past the boot code bit, but up until this point it works OK. I've simply copied the RPI3.cfg file and changed a few variables. My build stops with the following logs: # cat /usr/embedded/rpi4/_.cust.dos_boot_part + dos_boot_part + local 'd=/usr/local/share/u-boot/u-boot-rpi4' + local 'f=/usr/embedded/rpi4/_.fat' + rm -rf /usr/embedded/rpi4/_.fat + mkdir /usr/embedded/rpi4/_.fat + chdir /usr/embedded/rpi4/_.fat + cp /usr/local/share/u-boot/u-boot-rpi4/README /usr/local/share/u-boot/u-boot-rpi4/metadata /usr/local/share/u-boot/u-boot-rpi4/u-boot.bin . + touch uEnv.txt + cp '/usr/embedded/rpi4/_.w/boot/dtb/*.dtb' . cp: /usr/embedded/rpi4/_.w/boot/dtb/*.dtb: No such file or directory This seems to be a problem with the dos_boot_part() function in /usr/src/tools/tools/nanobsd/embedded/common. Your code seems to bypass this and uses the rpi-firmware package .dtbo files. So I guess my questions are: 1. What changed that the .dtb files are no longer created in the regular build? 2. Should the dos_boot_part() function be changed to take the files from the rpi-firmware pkg instead? Not being familiar with the nanobsd building process, I'm not really sure what is the best way to go. > > I have this code to create that partition: > > populate_boot_part ( ) ( > MNT=$1 > > UBOOT_DIR="/usr/local/share/u-boot/${NANO_BOOT_PKG}" > FIRMW_DIR="/usr/local/share/rpi-firmware" > FIRMO_DIR="${FIRMW_DIR}/overlays" > > # Required files > UBOOT_FILES="README u-boot.bin" > DTB="bcm2710-rpi-2-b.dtb bcm2710-rpi-3-b.dtb bcm2710-rpi-3-b-plus.dtb bcm2710-rpi-cm3.dtb bcm2711-rpi-4-b.dtb" > OVERLAYS="mmc.dtbo pwm.dtbo disable-bt.dtbo" > DTB_FILES="armstub8.bin armstub8-gic.bin bootcode.bin fixup_cd.dat \ > fixup_db.dat fixup_x.dat fixup.dat LICENCE.broadcom \ > start_cd.elf start_db.elf start_x.elf start.elf \ > fixup4.dat fixup4cd.dat fixup4db.dat fixup4x.dat start4.elf \ > start4cd.elf start4db.elf start4x.elf ${DTB}" > > for _F in ${UBOOT_FILES}; do > cp ${UBOOT_DIR}/${_F} ${MNT}/${_F} > done > for _F in ${DTB_FILES}; do > cp ${FIRMW_DIR}/${_F} ${MNT}/${_F} > done > cp -p ${FIRMW_DIR}/config_arm64.txt ${MNT}/config.txt > mkdir -p ${MNT}/overlays > for _F in ${OVERLAYS}; do > cp -p ${FIRMO_DIR}/${_F} ${MNT}/overlays/${_F} > done > > mkdir -p ${MNT}/EFI/BOOT > cp -p ${NANO_WORLDDIR}/boot/loader_lua.efi \ > ${MNT}/EFI/BOOT/bootaa64.efi > > cp -R ${NANO_WORLDDIR}/boot/dtb ${MNT} > > # tell loader what partition to startup from > mkdir -p ${MNT}/EFI/freebsd > echo "rootdev=disk0s3a" >${MNT}/EFI/freebsd/loader.env > ) > > Hope this helps. > > -- > Guido Falsi <mad@madpilot.net> >