Hi
I’m using Alping linux and most of my x86 machines are booting via ipxe. Compiled ipxe config is just dhcp + next config via http in a loop.
The next config look like this
#!ipxe
isset ${hostname} && set pet ${hostname} || set pet localhost
set tag lts
set apk_uri http://apk/.${domain}/pxe/linux
set cfg_uri http://cfg/.${domain}
kernel ${apk_uri}/vmlinuz-${tag} modules=loop,squashfs console=ttyS0,115200 console=tty0 modloop=${apk_uri}/modloop-${tag} apkovl=${cfg_uri}/${pet}.apkovl.tar.gz tsc=unstable amdgpu.sg_display=0 mem_encrypt=off thunderbolt.dyndbg=+p pcie_aspm=force pci=noaer
initrd ${apk_uri}/initramfs-${tag}
boot
So via dhcp server I’ve decide what will be the hostname for mac and the hostname provides alpine apkovl uri. I like this setup, cause it’s easy to switch function from one server to another.
I would like to do the same with u-boot and aarch64, but got any progress only with qemu. You take working u-boot config from latest release and start adding config options to enable lwIP (lightweight IP stack), wget cmd, etc.
Maybe someone already did this and could share the story ?
Couple of main stoppers for me:
-
where u-boot is saving EFI variables, main telling to build OP-TEE and I dont want to https://optee.readthedocs.io/en/latest/general/about.html
-
u-boot wants kernel+initramfs+cmdline be packed as single flatten device tree file. This is the way to pass compressed linux kernel, because there is a field in DTB telling u-boot which compression is needed.