2020-08-29 21:02:16 +03:00
# Limine configuration file
2020-04-21 20:18:13 +03:00
2020-08-29 21:02:16 +03:00
The Limine configuration file is comprised of *assignments* and *entries* .
2020-04-21 20:18:13 +03:00
*Entries* describe boot *entries* which the user can select in the *boot menu* .
An *entry* is simply a line starting with `:` followed by a newline-terminated
string.
Any *locally assignable* key that comes after it, and before another *entry* , or
the end of the file, will be tied to the *entry* .
*Assignments* are simple `KEY=VALUE` style assignments.
`VALUE` can have spaces and `=` symbols, without requiring quotations. New lines
are delimiters.
Some *assignments* are part of an entry (*local*), some other assignments are *global* .
*Global assignments* can appear anywhere in the file and are not part of an entry,
although usually one would put them at the beginning of the config.
Some *local assignments* are shared between entries using any *protocol* , while other
*local assignments* are specific to a given *protocol* .
*Globally assignable* keys are:
* `TIMEOUT` - Specifies the timeout in seconds before the first *entry* is automatically booted.
2020-09-21 15:08:45 +03:00
* `TEXTMODE` - If set to `on` , do not use graphical VESA framebuffer for the boot menu.
2020-09-25 00:18:51 +03:00
* `THEME_BLACK` , `THEME_RED` , `THEME_GREEN` , `THEME_BROWN` , `THEME_BLUE` , `THEME_MAGENTA` , `THEME_CYAN` , `THEME_GREY` , `THEME_WHITE` - Specifies the colors used by the terminal (RRGGBB).
* `THEME_MARGIN` - Set the amount of margin around the terminal.
2020-04-21 20:18:13 +03:00
*Locally assignable (non protocol specific)* keys are:
2020-05-06 18:00:41 +03:00
* `PROTOCOL` - The boot protocol that will be used to boot the kernel. Valid protocols are: `linux` , `stivale` , `chainload` .
2020-05-06 17:38:45 +03:00
* `KERNEL_PROTO` - Alias of `PROTOCOL` .
* `CMDLINE` - The command line string to be passed to the kernel. Can be omitted.
* `KERNEL_CMDLINE` - Alias of `CMDLINE` .
2020-04-21 20:18:13 +03:00
*Locally assignable (protocol specific)* keys are:
* Linux protocol:
2020-05-06 17:38:45 +03:00
* `KERNEL_DRIVE` - The BIOS drive (in decimal) where the kernel resides (if unspecified, boot drive is assumed).
* `KERNEL_PARTITION` - The index (in decimal) of the partition containing the kernel.
* `KERNEL_PATH` - The path of the kernel in said partition, forward slashes to delimit directories.
2020-04-21 20:18:13 +03:00
* `INITRD_PARTITION` - Partition index of the initial ramdisk.
* `INITRD_PATH` - The path to the initial ramdisk.
* stivale protocol:
2020-05-06 17:38:45 +03:00
* `KERNEL_DRIVE` - The BIOS drive (in decimal) where the kernel resides (if unspecified, boot drive is assumed).
* `KERNEL_PARTITION` - The index (in decimal) of the partition containing the kernel.
* `KERNEL_PATH` - The path of the kernel in said partition, forward slashes to delimit directories.
2020-04-21 20:18:13 +03:00
* `MODULE_PARTITION` - Partition index of a module.
* `MODULE_PATH` - The path to a module.
* `MODULE_STRING` - A string to be passed to a module.
2020-05-13 19:13:17 +03:00
* Chainload protocol:
* `DRIVE` - The BIOS drive (in decimal) to chainload.
* `PARTITION` - The partition index (in decimal) to chainload (if omitted, chainload the drive's bootsector).
2020-05-06 17:38:45 +03:00
2020-04-21 20:18:13 +03:00
Note that one can define these 3 variable multiple times to specify multiple modules.
The entries will be matched in order. E.g.: the 1st partition entry will be matched
to the 1st path and the 1st string entry that appear, and so on.