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/.$%7Bdomain%7D/pxe/linux
set cfg_uri http://cfg/.$%7Bdomain%7D
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.
No such log-driver on podman and I don't have docker on Alpine. And yes, I'm using ZFS as storage, kinda use to it. For overlayfs I don't like the initial push to use it and 3 extra folders for each mount.