153

What do Kernel command line parameters (also also known as boot options) mean?

When you go to Ubuntu (or better, GRUB) options, you have things like nomodeset, quiet and splash. What do these options mean?

I am also interested in other parameters and would be interested to see descriptions of any kernel parameter (like acpi), but these are not essential.

Star OS
  • 2,568
  • 3
    There are thousands upon thousands of them, you have init, init-options, vga, systemd, dkms, modules, etc. etc. etc. etc..-related options that you can configure – Braiam Jan 05 '16 at 01:14
  • 4
    Please rest your case about users voting to close this as too broad, avoid cluttering the question with explanations about why the question itself is not too broad. As you can see many users found the question interesting and voted it up, so don't ruin the question with irrelevant (to the question) discourses. Instead make it very clear that you want to know only about those three options, so that people won't vote to close it again. – kos Jan 05 '16 at 18:54
  • 2
    Why was this reopened again? – Braiam Jan 05 '16 at 20:34
  • 2
    @Braiam It's not broad anymore. I have made an note (to avoid too long questions)! – Star OS Jan 05 '16 at 20:37
  • 2
    @StarOS you didn't make it not too broad: it's too broad because you don't tell exactly which parameter you want to know about, but let answerers decide that for you. The list David Foersters share gives enough characters for about 300 answers, considering character limits. To make your question not too broad, you should narrow it down. – Braiam Jan 05 '16 at 20:40
  • 2
    @Braiam OK. Now i really made it not-broad. – Star OS Jan 05 '16 at 20:58
  • @Braiam I do get your point here, the question has a a lot of potential answers, but I think the question is interesting and would like it to stay, issue is wording the thing, please see my edit and feedback, starOS give your opinion too, I tried to ask with out excluding the other list answer from Eduardo Cola, but I am not to sure about it. – Mark Kirby Jan 05 '16 at 21:03
  • 2
    Current location of the Kernel param list https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt – Walter K Jul 28 '19 at 05:39
  • More info in the HTML version of kernel documentation – Pablo Bianchi May 08 '23 at 18:52

6 Answers6

149

From this question, about nomodeset:

The newest kernels have moved the video mode setting into the kernel. So all the programming of the hardware specific clock rates and registers on the video card happen in the kernel rather than in the X driver when the X server starts.. This makes it possible to have high resolution nice looking splash (boot) screens and flicker free transitions from boot splash to login screen. Unfortunately, on some cards this doesn't work properly and you end up with a black screen. Adding the nomodeset parameter instructs the kernel to not load video drivers and use BIOS modes instead until X is loaded.

From Unix & Linux, on quiet splash:

The splash (which eventually ends up in your /boot/grub/grub.cfg ) causes the splash screen to be shown.

At the same time you want the boot process to be quiet, as otherwise all kinds of messages would disrupt that splash screen.

Although specified in GRUB these are kernel parameters influencing the loading of the kernel or its modules, not something that changes GRUB behaviour. The significant part from GRUB_CMDLINE_LINUX_DEFAULT is CMDLINE_LINUX

This answer covers acpi, noapic and nolapic:

In general, such boot parameters are not needed unless there is a problem with your BIOS and how it handles these standards, or it just might be old enough where these standards were not fully implemented properly.

ACPI (Advanced Configuration and Power Interface) is a standard for handling power management. Older systems may not support ACPI full, so sometimes it helps to give the kernel a hint to not use it. "acpi=off"

APIC (Advanced Programmable Interrupt Controller) is a kind of feature found on newer systems. The "local" version is called "LAPIC". What this controller can do is be set up to generate and handle interrupts, a signal the hardware uses to pass messages. Again, some implementations of APIC can have problems on older system, and so it is useful to disable it. "noapic" and "nolapic".

Sometimes the APIC is working, but it slows things down by getting in the middle of messages being passed around. This can mess with audio and video processing, for example. Folks might disable it for that reason as well.

Additional parameters can be found here.

wjandrea
  • 14,236
  • 4
  • 48
  • 98
Mark Kirby
  • 18,529
  • 19
  • 78
  • 114
72

These are instructions passed to the kernel during the boot time. In Ubuntu, they are managed by the GNU GRUB (GRand Unified Bootloader).

  • quiet - this option tells the kernel to NOT produce any output (a.k.a. Non verbose mode). If you boot without this option, you'll see lots of kernel messages such as drivers/modules activations, filesystem checks and errors. Not having the quiet parameter may be useful when you need to find an error.

  • splash - this option is used to start an eye-candy "loading" screen while all the core parts of the system are loaded in the background. If you disable it and have quiet enable you'll get a blank screen.

  • nomodeset - tells the kernel to not start video drivers until the system is up and running.

There are lots of other boot parameters, such as:

  • 3 - starts the system in runlevel 3 (default is 5). If you append this parameter, you will be dropped in a command line environment (runlevel 5 is needed for a GUI).

  • init - indicates the location of the "init" script. This script is the first process started in an Unix-like system, and is responsible for start all other processes. Syntax: init=/path/to/script

Eduardo Cola
  • 5,817
  • 1
    ++ for 3, but please provide a reference -- would like to know more (especially about booting into runlevel 3 in Ubuntu 16.04 which has systemd). – user1823664 May 01 '18 at 15:36
3

Although, only some of them are commonly used/changed in grub configuration, there are far more boot parameters.

For a full list, see the official documentation: The kernel’s command-line parameters

P.P
  • 1,101
3

Sorry but you can check that "splash" is NOT a kernel options in the sense that you can see, it is not listed as kernel parameter in the list. I imagine that is due to the fact that "splash" and "nosplash" are read by Plymuth, not by the kernel itself, but I am not sure about it. And also note that "nosplash" is different from just deleting the option "splash". The option "nosplash" saved my life with an Intel integrated video that after an update (Ubuntu 20.04) worked only in recovery mode and deleting "splash" just did not worked at all... Those parameter are unfortunately undocumented...

ciampix
  • 604
3

These are not "Ubuntu boot options". They are "kernel boot options".

It is not possible to describe all kernel boot options in one answer. Many kernel modules have some kind of options that can be used in grub.

You can easily find what nomodeset does.

Other options can be found too.

Pilot6
  • 90,100
  • 91
  • 213
  • 324
2

Unlike Microsoft Windows where the laptop hardware manufacturer (OEM) tests viability of the OS for the hardware, Ubuntu offers these OS kernel flags to allow end users to tweak how the OS interacts with the hardware.

During Ubuntu install various scripts are run to probe your hardware to identify how best to configure the OS. Example : when that automated decision is insufficient the laptop may boot up with a blank screen, so these flags enable the end user to manually do the tweak to correct the OS config to better match your hardware.