What does the kernel boot parameter “set acpi_osi=Linux” do?


The kernel parameters are documented at kernel.org.

To understand what acpi_osi does, you roughly need to know how ACPI works. ACPI consists of so-called tables that the BIOS loads into RAM before the operating system starts. Some of them simply contain information about essential devices on the mainboard in a fixed format, but some like the DSDT table contain AML code. This code is executed by the operating system and provides the OS with a tree structure describing many devices on the mainboard and callable functions that are executed by the OS when e.g. power saving is enabled. The AML code can ask the OS which OS it is by calling the _OSI function. This is often used by vendors to make workarounds e.g. around bugs in some Windows versions.

As many hardware vendors only test their products with the (at that time) latest version of Windows, the "regular" code paths without the workarounds are often buggy. Because of this Linux usually answers yes when asked if it's...

0 0

I know this thread is mega-old, but it worked like a charm for me on a new install of Mint 15 MATE 64-bit

My system would hang on shutdown. It would go through the "system is going down for a halt NOW! going to run level..." etc. and the screen would blank, but the computer would stay powered on (fans running, lights on) until manually holding the power button. After adding the above acpi_osi=Linux, halt works as expected!

A couple things though:

I recommend creating a backup of important files (any file you need to sudo edit) before editing

Code: Select all

sudo cp /etc/default/grub /etc/default/grub_bkup

and I noticed that immediately after updating the grub file, the computer still hung when trying a halt - the update didn't take effect until after a full reboot.

Thanks a...

0 0

This document provides simple instructions for adding a kernel boot parameter to an Ubuntu system using GRUB 2.

When advised to try using a particular kernel boot parameter, it is usually a good idea to first add the parameter temporarily for testing. Once you have determined that adding the parameter has the desired effect, you can then add it permanently. Directions for both methods are below.

Kernel boot parameters are text strings which are interpreted by the system to change specific behaviors and enable or disable certain features. Kernel boot parameters:

are case-sensitive

are sometimes just a simple word ("splash" or "noapic")

sometimes have an = sign with various possible values ("acpi_backlight=vendor")

sometimes include punctuation ("i8042.noloop")

Always enter kernel boot parameters exactly as advised. Errors in spelling or formatting or invalid values will not result in any error message, they will simply have no effect....

0 0

I am facing an issue with brightness control in my laptop which has Intel HD graphics and Ubuntu 10.10 64-bit. So when I searched for a fix I found that a common suggestion is to edit the GRUB file line, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" to GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"

Documentation for boot parameter acpi_osi tells:

acpi_osi= [HW,ACPI] Modify list of supported OS interface strings acpi_osi="string1" # add string1 -- only one string acpi_osi="!string2" # remove built-in string2 acpi_osi= # disable all strings

— http://redsymbol.net/linux_boot_parameters/

I don't find a reason why this should fix any laptop issue.

So could anyone tell me what the kernel boot option acpi_osi=Linux do?


I think you mean =Windows, not Linux. The argument tells the kernel to lie to the ACPI BIOS and tell it that it is something other than Linux (which is why...

0 0

I was browsing Linux kernel code to understand the nr_cpus boot parameter. As per the documentation, (https://www.kernel.org/doc/Documentation/kernel-parameters.txt)

[SMP] Maximum number of processors that an SMP kernel could support. nr_cpus=n : n >= 1 limits the kernel to supporting 'n' processors. Later in runtime you can not use hotplug cpu feature to put more cpu back to online. just like you compile the kernel NR_CPUS=n

In the smp.c code, the value is set to nr_cpu_ids which is then used everywhere in kernel.

527 static int __init nrcpus(char *str) 528 { 529 int nr_cpus; 530 531 get_option(&str, &nr_cpus); 532 if (nr_cpus > 0 && nr_cpus < nr_cpu_ids) 533 nr_cpu_ids = nr_cpus; 534 535 return 0; 536 } 537 538 early_param("nr_cpus", nrcpus);

What I do not understand the nr_cpu_ids is also set by setup_nr_cpu_ids.

555 /* An arch may set nr_cpu_ids earlier if...
0 0

There are three ways to pass options to the kernel and thus control its behaviour:

When building the kernel. See Kernel Compilation for details. When starting the kernel (usually, when invoked from a boot loader). At runtime (through the files in /proc and /sys). See sysctl for details.

This page explains in more detail the second method and shows a list of the most used kernel parameters in Arch Linux.

Not all parameters are always available. Most are associated with subsystems and work only if the kernel is configured with those subsystems built in. They also depend on the presence of the hardware they are associated with.

Parameters either have the format parameter or parameter=value.

Note: All kernel parameters are case-sensitive. Most of them are lower case, writing those in upper case does not work.


Kernel parameters can be set either temporarily by editing the boot menu when it shows up, or by modifying the boot...

0 0

Howto configure the Linux kernel / drivers / acpi

ACPI Configuration Linux support for ACPI is based on Intel Corporation's ACPI Component Architecture (ACPI CA). Although this option sounds really nifty, barely any of the device drivers have been converted to the new driver model and hence few have proper power management support. This option is not recommended for anyone except those doing driver power management development. Option: ACPI_SLEEP_PROC_FS Kernel Versions: ... (on/off) depends on ACPI_SLEEP && PROC_FS default y Option: ACPI_SLEEP_PROC_SLEEP Kernel Versions: ... (on/off) /proc/acpi/sleep (deprecated) depends on ACPI_SLEEP_PROC_FS default n Create /proc/acpi/sleep Deprecated by /sys/power/state Option: ACPI_AC Kernel Versions: ... (on/off/module) AC Adapter depends on X86 default y This driver adds support for the AC Adapter object, which indicates whether a system is on AC, or not. If you have a system that can switch between A/C...
0 0
acpi= [HW,ACPI,X86,ARM64] Advanced Configuration and Power Interface Format: { force | on | off | strict | noirq | rsdt | copy_dsdt } force -- enable ACPI if default was off on -- enable ACPI but allow fallback to DT [arm64] off -- disable ACPI if default was on noirq -- do not use ACPI for IRQ routing strict -- Be less tolerant of platforms that are not strictly ACPI specification compliant. rsdt -- prefer RSDT over (default) XSDT copy_dsdt -- copy DSDT to memory For ARM64, ONLY "acpi=off", "acpi=on" or "acpi=force" are available See also Documentation/power/runtime_pm.txt, pci=noacpi acpi_apic_instance= [ACPI, IOAPIC] Format: 2: use 2nd APIC table, if available 1,0: use 1st APIC table default: 0 acpi_backlight= [HW,ACPI] ...
0 0

I've had similar issues on one particular (Supermicro) motherboard, and while Steve's suggestion of using a text file works, there's a bit more nuance. I've tried to document the process below:

If you don't have bcfg available, you first need to get a copy of an EFI 2.x shell. The motherboard firmware probably has 1.x. The Arch wiki has more details, but for most 64-bit modern systems you'll want to grab the Shell.efi from here and rename it shellx64.efi and place it directly in the root of your EFI System Partition. If your motherboard provides a Launch EFI Shell from filesystem device, use it. Otherwise, you can use the built-in shell to launch the updated shell. See the wiki for further information.

Once you're in the 2.x shell, you'll want to make sure your boot option exists. You can list options with bcfg boot dump -b (the -b enables the pager, like more). If it does not exist, you'll need to add one, preferably to the top of the list. You can browse around -...

0 0

Changing or editing your kernel boot parameters is very important when you want to fix an issue that causes errors during boot, or test a new feature, activate a different driver, or disable a feature on your system. These parameters are stored as text, in the boot loader's configuration file which the kernel parses during the “init” process. To determine what parameters were used during your system's last boot, you should enter the following on a terminal:

cat /proc/cmdline

The usual output by default is “quiet splash”, while in most cases the grub menu is initially hidden. This is often the case when there is only one Linux distribution installed on a computer, so inexperienced users may have no idea how to access grub's options to change the kernel boot parameters. To do this, you can simply hold the “Shift” key once the splash screens appears. This should take you to the grub menu from where you may choose a kernel option. Depending on the grub settings,...

0 0
0 0

Thanks for the response.

The problem is resloved by using just crashkernel=64M instead of crashkernel=64M@16M.

Now, I am facing another problem.

I have started kexec and the manually crashed the kernel using echo c > /proc/sysrrq-trigger.

As expected core file is generated. But when I tried to analyze the issue using the command :-

gdb /boot/vmlinuz vmcore_1GNU gdb (GDB) SUSE (
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-suse-linux".
For bug reporting instructions, please see:
Reading symbols from /boot/vmlinuz...(no debugging symbols found)...done.

warning: core file may not match specified executable file.

0 0

SRU Justificatoin:

IMPACT: kernel parameter "reserve=" is not handled well on AMD64 and the value in /proc/iomem is not padded by 0xf in the front. The bug LP#187671 depends on this bug.

FIX: A patch from Zhang Rui fixed. The patch is also summitted to the mainline. The status on mainline bugzilla is "RESOLVED CODE_FIX". It may be merged into the mainline some day.

TEST: I tested on Karmic, Jaunty and Intrepid. The value in /proc/iomem is correct after applying this patch. The original reporter also tested on 2.6.28-11 kernel and reported to work well.


I'm running up-to-date Jaunty, kernel 2.6.28-11.42, x86_64.

In order to circumvent bug #187671 (which is caused by a bad BIOS configuration of the MMIO regions for certain laptops) I added the kernel option "reserve=0xffb00000,0x100000" to my default kernel in /boot/grub/menu.lst, which has been reported to work on 32-bit systems (and which I have been able to verify using a 32-bit...

0 0


This document describes how to use the dynamic debug (dyndbg) feature.

Dynamic debug is designed to allow you to dynamically enable/disable kernel code to obtain additional kernel information. Currently, if CONFIG_DYNAMIC_DEBUG is set, then all pr_debug()/dev_dbg() and print_hex_dump_debug()/print_hex_dump_bytes() calls can be dynamically enabled per-callsite.

If CONFIG_DYNAMIC_DEBUG is not set, print_hex_dump_debug() is just shortcut for print_hex_dump(KERN_DEBUG).

For print_hex_dump_debug()/print_hex_dump_bytes(), format string is its prefix_str argument, if it is constant string; or hexdump in case prefix_str is build dynamically.

Dynamic debug has even more useful features:

Simple query language allows turning on and off debugging statements by matching any combination of 0 or 1 of:source filename function name line number (including ranges of line numbers) module name format string Provides a debugfs control file:...
0 0

Linux booting is a complex process as compared to booting processes in any other distribution. The Linux Kernel accepts a lot of parameters at booting, in command-line. This command-Line boot time parameter passes several kind of information to Linux Kernel at System Startup.

Kernel Boot Time Parameters

Booting a Linux kernel directly from BIOS using the kernel on cd (/dev/cdrom), don’t allow assigning parameter directly. For this we need a special program called bootloader. Two Most widely used Boot Loaders in Linux are:

GNU GRUB (GNU GRand Unified Bootloader) LILO (LInux LOader)

GNU GRUB is a boot-loader package from the GNU project which is capable of booting one of the multiple kernel or any specific kernel configuration on Unix and Linux System.

LILO has the capability to boot various kernels and store their configuration in plain text file. LILO is capable of booting Windows, Unix, BSD, Linux and all other known platform with various...

0 0

I was able to get my hp zt3300 past the PAE failure by editing the boot files on partition sdc12 (the actual boot partition). This got me past the PAE
problem and I got the "Cloudready" screen but it stated that the "system
is repairing itself" and then rebooted. It stayed stuck in this loop of booting
and "system is fixing itself" until I stopped it.

I also tried getting the latest Chromium build from chromium.arnoldthebat.co.uk in the "special" directory.
The Cx86* builds are non-pae and do not need editing of boot files to work
on a non-pae computer. Unfortunately I got the same failure as above
with "repairing" and rebooting.

Unfortunately there is not enough information in "repairing" to tell what
is going wrong.

It will take familiarizing with the ChromiumOS Kernel Faq and Developer Guide to tell what it causing the problem.

You could try the older builds at chromium.arnoldthebat.co.uk in the special directory...

0 0

This document (7016546) is provided subject to the disclaimer at the end of this document.


SUSE Linux Enterprise Server 12 (SLES 12)
SUSE Linux Enterprise Server 12 Service Pack 1 (SLES 12 SP1)
Federal Information Processing Standards (FIPS)


After install FIPS pattern and add fips=1 in the kernel line, your server will not boot again. It will only happen if you are using a separate /boot partition

Errors observed:
"dracut: FATAL: FIPS integrity test failed"
"dracut: Refusing to continue"

The command mount | grep boot shows:
/dev/sda1 on /boot ...
/dev/sda2 on /boot/efi ...


1 - Boot your server again; when boot screen shows up, press 'e' to edit boot options.

2 - Look for the fips=1 parameter and right after that add this parameter boot=/dev/ (i.e:...

0 0