ladybird/Base/usr/share/man/man7/boot_parameters.md
Liav A 0f7cc468b2 Kernel: Make i8042 controller initialization sequence more robust
The setting of scan code set sequence is removed, as it's buggy and
could lead the controller to fail immediately when doing self-test
afterwards. We will restore it when we understand how to do so safely.

Allow the user to determine a preferred detection path with a new kernel
command line argument. The defualt option is to check i8042 presence
with an ACPI check and if necessary - an "aggressive" test to determine
i8042 existence in the system.
Also, keep the i8042 controller pointer on the stack, so don't assign
m_i8042_controller member pointer if it does not exist.
2023-01-06 11:09:56 +01:00

6.2 KiB

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 Machine Language interpretation (default). limited - Boot with limited ACPI support. off - Don't initialize ACPI at all.

  • 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.

  • 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_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.

  • 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.

  • 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.

  • graphics_subsystem_mode - This parameter expects one of the following values. on- Boot into the graphical environment if possible (default). off - Boot into text mode, don't initialize any driver. limited - Boot into the pre-defined framebuffer that the bootloader has set up before booting the Kernel, don't initialize any driver.

  • 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. This defaults to SystemServer(7).

  • 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.

  • i8042_presence_mode - This parameter expects one of the following values: aggressive-test - The i8042 initialization sequence should only try an aggressive presence test. auto - The i8042 initialization sequence should try to check if ACPI says i8042 exists, and if not an aggressive presence test should take place to determine presence. none - Assume there's no i8042 controller in the system. force - Assume there's i8042 controller in the system.

  • panic - This parameter expects halt or shutdown. This is particularly useful in CI contexts.

  • pci - This parameter expects ecam, io or none. When selecting none the kernel will not use PCI resources/devices.

  • root - This parameter configures the device to use as the root file system. It defaults to /dev/hda if unspecified.

  • 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.

  • smp - This parameter expects a binary value of on or off. If enabled kernel will 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 and a MADT (APIC) table to be available.

  • nvme_poll - This parameter configures the NVMe drive to use polling instead of interrupt driven completion.

  • system_mode - This parameter is not interpreted by the Kernel, and is made available at /sys/kernel/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 graphics_subsystem_mode=off.)
  • 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.

  • disable_kaslr - If present on the command line, the KASLR security mitigation will be disabled.

See also