Hi, 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. I had look at different u-boot definitions under gnu/packages/bootloaders.scm and gnu/bootloader.scm. From my understanding the way how to define a new board is find the defconfig name in the configs directory in U-Boot. Then use the make-u-boot-package with the config name and target triplet to define the package. Unfortunately, the definitions below are not found by Guix if I run guix search -L. raspberry 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? --8<---------------cut here---------------start------------->8--- (define-module (raspberry-pi) #:use-module (guix packages) #:use-module (gnu packages bootloaders) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:)) (define-public u-boot-raspberry-pi-2 (make-u-boot-package "rpi_2" "arm-linux-gnueabihf")) (define-public u-boot-raspberry-pi-3 (make-u-boot-package "rpi_3" "aarch64-linux-gnu")) (define-public u-boot-raspberry-pi-4 (make-u-boot-package "rpi_4" "aarch64-linux-gnu"))