On 2021-10-30, phodina via wrote: > I'm trying to run Guix System on Raspberry Pi. In order to do that we > need a way to boot it up. > > There is the nonfree Broadcom bootloader, which does the job and it's > used by many distributions. > > However, there is also an open source alternative as U-Boot supports > the BCM SoCs. Well, you still need to load u-boot from the broadcom firmware/bootloader... > If I inherit from the u-boot itself and specify the name, it's then in the list and I can build it. > But the I can't use the package for the bootloader record. > > There must be something trivial I had overlooked. > > Could you please guide me on the procedure for porting the u-boot to new board as a new Guix package? There are install targets defined in gnu/bootloader/u-boot.scm, though most (all?) of those targets install to a raw device offset, whereas u-boot for the rpi needs u-boot.bin to be copied to your firmware partition and needs to be specified as a "kernel" in config.txt, if I recall correctly. > (define-public u-boot-raspberry-pi-4 > (make-u-boot-package "rpi_4" "aarch64-linux-gnu")) I would also try to keep the u-boot-BOARD matching the defconfig, e.g. u-boot-rpi-4 instead of u-boot-raspberry-pi-4. Not for any technical reason, per se, just keeping the u-boot target naming consistent. You might want to just build the u-boot package, and then manually copy it to your firmware partition and configure that appropriately once, and then just use guix to generate and update the extlinux.conf... I forget the exact syntax to generate extlinux.conf without actually installing u-boot, but I've done it in the past. Another option would be to build the raspberry pi UEFI (not 100% sure of the licensing, but reasonably free) instead of u-boot, and then use guix's standard UEFI configuration with grub-efi and such. live well, vagrant