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* .
2020-11-01 12:31:35 +03:00
Some keys take *URIs* as values; these are described in the next section.
2020-04-21 20:18:13 +03:00
*Globally assignable* keys are:
* `TIMEOUT` - Specifies the timeout in seconds before the first *entry* is automatically booted.
2020-09-29 22:48:34 +03:00
* `DEFAULT_ENTRY` - 0-based entry index of the entry which will be automatically selected at startup. If unspecified, it is `0` .
2020-10-30 08:52:15 +03:00
* `GRAPHICS` - If set to `yes` , do use graphical VESA framebuffer for the boot menu, else use text mode.
2020-11-05 19:49:38 +03:00
* `THEME_COLOURS` - Specifies the colour palette used by the terminal (AARRGGBB). It is a `;` separated array of 8 colours: black, red, green, brown, blue, magenta, cyan, and gray, respectively. Ignored if `GRAPHICS` is not `yes` .
2020-11-05 15:36:42 +03:00
* `THEME_COLORS` - Alias of `THEME_COLOURS` .
2020-09-29 22:48:34 +03:00
* `THEME_MARGIN` - Set the amount of margin around the terminal. Ignored if `GRAPHICS` is not `yes` .
2020-10-30 08:52:15 +03:00
* `THEME_MARGIN_GRADIENT` - Set the thickness in pixel for the gradient around the terminal. Ignored if `GRAPHICS` is not `yes` .
2020-11-02 00:07:10 +03:00
* `BACKGROUND_PATH` - URI where to find the background .BMP file. Ignored if `GRAPHICS` is not `yes` .
2020-04-21 20:18:13 +03:00
*Locally assignable (non protocol specific)* keys are:
2020-09-26 01:30:16 +03:00
* `PROTOCOL` - The boot protocol that will be used to boot the kernel. Valid protocols are: `linux` , `stivale` , `stivale2` , `chainload` .
2020-05-06 17:38:45 +03:00
* `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-11-01 12:31:35 +03:00
* `KERNEL_PATH` - The URI path of the kernel.
2020-11-08 00:21:30 +03:00
* `MODULE_PATH` - The URI path to a module (such as initramfs).
Note that one can define this last variable multiple times to specify multiple
modules.
2020-09-26 01:30:16 +03:00
* stivale and stivale2 protocols:
2020-11-01 12:31:35 +03:00
* `KERNEL_PATH` - The URI path of the kernel.
* `MODULE_PATH` - The URI path to a module.
2020-04-21 20:18:13 +03:00
* `MODULE_STRING` - A string to be passed to a module.
2020-11-05 15:36:42 +03:00
Note that one can define these 2 last variable multiple times to specify multiple
modules.
The entries will be matched in order. E.g.: the 1st module path entry will be matched
to the 1st module string entry that appear, and so on.
2020-05-13 19:13:17 +03:00
* Chainload protocol:
2020-11-02 00:07:10 +03:00
* `DRIVE` - The 1-based BIOS drive to chainload.
* `PARTITION` - The 1-based BIOS partition to chainload, if omitted, chainload drive.
2020-05-06 17:38:45 +03:00
2020-11-01 12:31:35 +03:00
## URIs
A URI is a path that Limine uses to locate resources in the whole system. It is
comprised of a *resource* , a *root* , and a *path* . It takes the form of:
```
resource://root/path
```
The format for `root` changes depending on the resource used.
A resource can be one of the following:
* `bios` - The `root` takes the form of `drive:partition` ; for example: `bios://3:1/...` would use BIOS drive 3, partition 1. Partitions and BIOS drives are both 1-based. Omitting the drive is possible; for example: `bios://:2/...` . Omitting the drive makes Limine use the boot drive.
2020-11-02 00:07:10 +03:00
* `guid` - The `root` takes the form of a GUID/UUID, such as `guid://736b5698-5ae1-4dff-be2c-ef8f44a61c52/...` . It is a filesystem GUID and not a partition GUID.