Problem: Can’t set automatical deployment of Ubuntu to IBM Power LPAR
Expected outcome: Ubuntu automatically deployed on IBM Power LPAR
Foreman and Proxy versions: 3.5.1
Foreman and Proxy plugin versions: Katello 4.7.0
Distribution and version: Oracle Linux 8.7
Other relevant data: Hello. We are trying to deploy Ubuntu 22.04 to IBM Power LPAR, but we have the problem with the setting of tftp server. Theoretically it should be all done automatically. At the host setting we choose Grub2 UEFI boot loader. The problem is, that after setting “build”, the file core.elf (or powerpc.elf, grubppc64.elf) is not created. We tried using the file from installation DVD, but it’s not working with Foreman (probably Foreman has something in the file referencing to the grub configuration and kernel/initrd location). Does Foreman ever support this kind of deployment and provide this file? Or is there any way to generate this file on Foreman server or on another Power server with AIX? Thanks
Looks like ppc64le is not supported by default (x86_64 only):
This Puppet file gets executed whenever you run foreman-installer command and prepares the TFTP directory on your Foreman server. Be careful when providing custom files as this might be overwritten then!
However, providing the correct GRUB2 binary (and correct filename option in your DHCP server) should work.
For Ubuntu x86_64 there are two GRUB2 binaries in the GRUB2 (signed) package and the grubnet* variant has all builtin modules needed for fetching e.g. configuration via network:
But this is designed for x86/SecureBoot enabled systems where you can’t easily boot self-generated binaries (with default MS CAs).
IIRC from my old IBM PowerPC days you need to generate you own GRUB2 binary containing appropriate modules for fetching stuff via network (means config, kernel, initrd) as you already suggested and put it into your TFTP directory. Probably, the GRUB2 binary from DVD hasn’t them included.
I would start here:
Get any host with appropriate GRUB2 packages installed (might even work with other archs, see below)
Generate your GRUB binary:
a. Try grub2-mknetdir ... and look for something like boot/grub2/<platform>/(core,grub)[.ppc64le]
b. Alternatively, when you have a generate GRUB2 binary with grub2-mkimage ... and include all modules which might be needed (or include all and strip it down step by step)
Check your TFTP logs for NBP requests and put the binary to the correct location
If you see additional requests for modules, put the module directory to the correct location (See grub2-mknetdir) or try generating a standalone binary (grub2-mkstandalone)
If you see additional requests for the GRUB2 config you are done
I just played around a bit on my x86_64 Alma8 machine and this looks quite promising (not tested):
# dnf install grub2-ppc64le-modules
# grub2-mkimage -p grub2/ -O powerpc-ieee1275 -o grub.ppc64le -d /usr/lib/grub/powerpc-ieee1275/ disk tftp net configfile linux normal
# file grub.ppc64le
grub.ppc64le: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, stripped
Help yourself using symlinks inside TFTP chroot directory and using the -p (prefix) option defining the directory prefix when fetching modules or configuration files from TFTP server.