2021-05-05 02:43:37 -07:00
## Name
Boot Parameters - optional parameters accepted by the kernel
## Description
Serenity's kernel can process parameters at boot time.
This functionality is used to control or augment the state of features during the initial
startup of the system.
### Options
The kernel boot parameters take the form of ** `{option_name}={value}` **, where the ** `={value}` **
trailer can be omitted for specific parameters.
List of options:
* **`acpi` ** - This parameter expects one of the following values. ** `on` ** - Boot with full ACPI support, using ACPI
2021-09-24 05:28:57 +03:00
Machine Language interpretation (default). ** `limited` ** - Boot with limited ACPI support. ** `off` ** - Don't initialize ACPI at all.
2021-05-05 02:43:37 -07:00
2022-01-26 20:55:10 +00:00
* **`ahci_reset_mode` ** - This parameter expects one of the following values. ** `controllers` ** - Reset just the AHCI controller on boot (default).
** `aggressive` ** - Reset the AHCI controller, and all AHCI ports on boot.
2021-05-05 02:43:37 -07:00
* **`boot_prof` ** - If present on the command line, global system profiling will be enabled
as soon as possible during the boot sequence. Allowing you to profile startup of all applications.
* **`disable_ide` ** - If present on the command line, the IDE controller will not be initialized
during the boot sequence. Leaving only the AHCI and Ram Disk controllers.
* **`disable_physical_storage` ** - If present on the command line, neither AHCI, or IDE controllers will be initialized on boot.
* **`disable_ps2_controller` ** - If present on the command line, the I8042 keyboard controller will not be initialized on boot.
* **`disable_uhci_controller` ** - If present on the command line, the UHCI controller will not be initialized on boot.
* **`disable_virtio` ** - If present on the command line, virtio devices will not be detected, and initialized on boot.
2022-03-15 22:04:12 +02:00
* **`early_boot_console` ** - This parameter expects ** `on` ** or ** `off` ** and is by default set to ** `on` **.
When set to ** `off` **, the kernel will not initialize any early console to show kernel dmesg output.
When set to ** `on` **, the kernel will try to initialize either a text mode console (if VGA text mode was detected)
or framebuffer console, based on what the Multiboot bootloader specified on the physical address, width, height
and bit color depth.
2021-12-19 21:41:39 +02:00
* **`enable_ioapic` ** - This parameter expects ** `on` ** or ** `off` ** and is by default set to ** `on` **.
When set to ** `off` **, the kernel will initialize the two i8259 PICs.
When set to ** `on` **, the kernel will try to initialize the IOAPIC (or IOAPICs if there's more than one),
but only if ** `acpi` ** is set to ** `limited` ** or ** `on` **, and a `MADT` (APIC) table is available.
Otherwise, the kernel will fallback to use the i8259 PICs.
2022-01-05 14:45:29 -07:00
* **`fbdev` ** - This parameter expects one of the following values. ** `on` **- Boot into the graphical environment (default). ** `off` ** - Boot into text mode. ** `bootloader` ** - Boot into the graphical environment, but only use the frame buffer set up by the bootloader and do not initialize any other graphics cards.
2021-10-23 17:18:57 +02:00
2021-05-05 02:43:37 -07:00
* **`force_pio` ** - If present on the command line, the IDE controllers will be force into PIO mode when initialized IDE Channels on boot.
* **`hpet` ** - This parameter expects one of the following values. ** `periodic` ** - The High Precision Event Timer should
be configured in a periodic mode. ** `nonperiodic` ** - The High Precision Event Timer should eb configure din non-periodic mode.
* **`init` ** - This parameter expects the fully qualified path to the init program the Kernel should launch after boot.
2022-01-07 14:15:44 +01:00
This defaults to [`SystemServer`(7) ](help://man/7/SystemServer ).
2021-05-05 02:43:37 -07:00
* **`init_args` ** - This parameter expects a set of arguments to pass to the ** `init` ** program.
The value should be a set of strings separated by `,` characters.
2021-10-23 17:31:00 +02:00
* **`panic` ** - This parameter expects ** `halt` ** or ** `shutdown` **. This is particularly useful in CI contexts.
2022-01-21 16:09:05 +02:00
* **`pci` ** - This parameter expects ** `ecam` **, ** `io` ** or ** `none` **. When selecting ** `none` **
the kernel will not use PCI resources/devices.
2021-05-05 02:43:37 -07:00
* **`root` ** - This parameter configures the device to use as the root file system. It defaults to ** `/dev/hda` ** if unspecified.
2021-12-19 21:41:39 +02:00
2022-01-22 12:29:55 +02:00
* **`pcspeaker` ** - This parameter controls whether the kernel can use the PC speaker or not. It defaults to ** `off` ** and can be set to ** `on` ** to enable the PC speaker.
2021-05-05 02:43:37 -07:00
* **`smp` ** - This parameter expects a binary value of ** `on` ** or ** `off` **. If enabled kernel will
2021-12-19 21:41:39 +02:00
enable available APs (application processors) and use them with the BSP (Bootstrap processor) to
schedule and run threads.
This parameter defaults to ** `off` **. This parameter requires ** `enable_ioapic` ** to be enabled
2022-01-27 16:25:39 +05:30
and a `MADT` (APIC) table to be available.
* **`nvme_poll` ** - This parameter configures the NVMe drive to use polling instead of interrupt driven completion.
2021-05-05 02:43:37 -07:00
2021-10-23 18:26:50 +02:00
* **`system_mode` ** - This parameter is not interpreted by the Kernel, and is made available at `/proc/system_mode` . SystemServer uses it to select the set of services that should be started. Common values are:
- **`graphical` ** (default) - Boots the system in the normal graphical mode.
- **`self-test` ** - Boots the system in self-test, validation mode.
- **`text` ** - Boots the system in text only mode. (You may need to also set ** `fbdev=off` **.)
2021-05-05 02:43:37 -07:00
* **`time` ** - This parameter expects one of the following values. ** `modern` ** - This configures the system to attempt
to use High Precision Event Timer (HPET) on boot. ** `legacy` ** - Configures the system to use the legacy programmable interrupt
time for managing system team.
* **`vmmouse` ** - This parameter expects a binary value of ** `on` ** or ** `off` **. If enabled and
running on a VMWare Hypervisor, the kernel will enable absolute mouse mode.
2022-03-25 00:02:52 +02:00
* **`disable_kaslr` ** - If present on the command line, the KASLR security mitigation will be disabled.
2021-05-05 02:43:37 -07:00
## See also
2022-01-07 14:15:44 +01:00
* [`SystemServer`(7) ](help://man/7/SystemServer ).