# /etc/limine-sync.conf.example — copy to /etc/limine-sync.conf and edit. # # limine-sync generates the kernel entries of the boot menu from what is # in /boot, and splices them into /etc/limine.conf.in at @KERNELS@. This # file supplies the few things a directory listing cannot tell it. # # Everything below except CMDLINE is optional and shown at its built-in # default; an absent file means "all defaults", which is why CMDLINE # being required is what makes the file required. # # Syntax: KEY=value, one per line. Keys are uppercase. Surrounding # quotes are stripped. '#' starts a comment anywhere on the line, so a # value cannot contain one. An unrecognised key is warned about and # ignored — check the output after editing. # # Nothing here is read at boot. Changes take effect when limine-sync # next runs: automatically on the boot/ trigger, or by hand. Always # look before you leap: # # limine-sync -n # print what would change, touch nothing # limine-sync # # ── CMDLINE (required) ─────────────────────────────────────────────── # # The kernel command line, used verbatim for every generated entry. # There is no default: the root device is the one setting that differs # on every machine, and a guess would produce a bootable-looking menu # pointing at the wrong disk. limine-sync refuses to run without it. # # On an install target `setup-boot /mnt` writes this line for you, and # reruns are how you change it afterwards. # # Unencrypted root: # #CMDLINE=root=/dev/nvme0n1p2 ro quiet # # LUKS root. cryptroot= is the UUID of the *LUKS partition* (from # `cryptsetup luksUUID /dev/nvme0n1p2`), not of the filesystem inside # it. tinyrd creates the mapping under exactly the name given in # root=, so the name you passed to `cryptsetup open` belongs here and # is recorded nowhere else: # #CMDLINE=cryptroot=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx root=/dev/mapper/croot ro quiet # # Serial console as well as the screen (VPS, or `qemu -nographic`): # #CMDLINE=root=/dev/vda2 ro quiet console=tty0 console=ttyS0,115200n8 # ── TITLE ──────────────────────────────────────────────────────────── # # Menu label. Entries read " <version>", e.g. "rawnix 6.18.50", # and the Xen chainload entry reads "<TITLE> Xen". # #TITLE=rawnix # ── INITRD ─────────────────────────────────────────────────────────── # # Filename in /boot of the initramfs, added as a module_path after the # microcode. tinyrd carries no modules and takes the LUKS UUID from # the cmdline, so one image serves every kernel and this is a plain # name with no version in it. # # Set it empty to boot with no initramfs. That is fine for an # unencrypted root and impossible for a LUKS one — limine-sync warns if # CMDLINE has cryptroot= and the image is not on the ESP. # #INITRD=tinyrd.img # ── MICROCODE ──────────────────────────────────────────────────────── # # Filename in /boot of the early microcode image, added as the *first* # module_path. The kernel only applies an early update from the head # of the initrd chain, so the order is not adjustable. # # Set empty on a machine that needs none, or on Intel once there is an # intel-ucode port. An entry is only emitted if the file is actually # on the ESP. # #MICROCODE=amd-ucode.img # ── Xen ────────────────────────────────────────────────────────────── # # Only relevant if a xen-*.efi is on the ESP. The newest one always # gets a chainload entry in limine.conf; these keys additionally # generate /boot/efi/xen.cfg, which is what picks dom0's kernel. # # XEN_KERNEL pins a *series*, not a version: "6.12" selects the newest # 6.12.x that has a module tree. Empty means leave xen.cfg alone, # which is the default and what you want if you maintain it by hand. # #XEN_KERNEL= # # Appended to dom0's kernel line. Note dom0 usually wants fewer CPUs # and less memory than the cmdline above gives a bare-metal boot. # #XEN_CMDLINE= # # The hypervisor's own options line. # #XEN_OPTIONS=dom0_mem=4G,max:4G dom0_max_vcpus=4 # # Xen takes a single ramdisk, so microcode and an initramfs are # mutually exclusive here. yes = microcode; anything else = the # INITRD image, if there is one. An encrypted dom0 root therefore # cannot get early microcode this way and needs Xen's own ucode=. # #XEN_UCODE=no