Adding PXE boot kernel commandline options for Preseed-based systems

Problem:
While there is kernelcmd for Kickstart-based PXE templates, it seems the Preseed-based PXE templates are lacking the equivalent thing for Debian-based systems.

Notably, I’d like to set

ethdetect/prompt_missing_firmware=false

which needs to be set before the actual Preseed file is loaded (i.e. during initial network setup) IIUC.

Am I missing an option which already exists?

What you refer to is a host parameter, it is then used in pxe_kernel_options what we call a template macro. Here is its documentation:

            apipie :method, 'Returns the list of kernel options during PXE boot' do
              desc "It requires a @host variable to contain a Host object. Otherwise returns empty string.
                The list is determined by @host parameter called `kernelcmd`. If the host OS
                is RHEL, it will also add `modprobe.blacklist=$blacklisted`, where blacklisted
                modules are loaded from `blacklist` parameter.
                This is mostly useful PXELinux/PXEGrub/PXEGrub2 templates."
              returns String, desc: 'Either an empty string or a string containing a list of kernel parameters'
              example "pxe_kernel_options # => 'net.ifnames=0 biosdevname=0'"
            end

Feel free to use it in your templates, it is currently only used in kickstart PXE templates. PR for debian welcome!

Perfect, thanks for the reply!
I’ll add pxe_kernel_options to clones of the default Preseed PXE provisioning templates then and test them on our clients, and if all is well look into creating a PR to upstream it so we can later on drop our clones again. :+1:

1 Like

I’m sorry it took me so long, but this is now recorded in:

which links to PR:

which adds this feature :smiley: .

1 Like

Merged thank you!

2 Likes

Thanks to you for the quick review :smile: .
I’ll also mark this thread as solved.

1 Like