as the subject says I'm trying to boot the kernel directly with the following efibootmgr entry:
efibootmgr -c -w -d /dev/sda -p 1 -l '\EFI\arch\vmlinuz-arch.efi' -L "Arch Linux" -u 'initrd=/EFI/arch/initramfs-arch.img root=/dev/md127p2 resume=/dev/md127p1 ro rootfstype=ext4 acpi_osi="!Windows 2012" acpi_backlight=vendor add_efi_memmap i915.i915_enable_rc6=1 pcie_aspm=force drm.vblankoffdelay=1 i915.semaphores=1 systemd.unit=graphical.target'
I need to set acpi_osi="!Windows 2012" as a kernel parameter in order to get my backlight fn keys working. (I'm using an ASUS UX32VD by the way)
Booting from rEFInd everything works like a charm. However, directly booting the EFISTUB does boot up successfully but the fn keys aren't working so I guess the kernel parameter wasn't set correctly, although my cmdline says:
cat /proc/cmdline initrd=/EFI/arch/initramfs-arch.img root=/dev/md127p2 resume=/dev/md127p1 ro rootfstype=ext4 acpi_osi="!Windows 2012" acpi_backlight=vendor add_efi_memmap i915.i915_enable_rc6=1 pcie_aspm=force drm.vblankoffdelay=1 i915.semaphores=1 systemd.unit=graphical.target
I tried escaping the doublequotes ( \" instead of " ) and using single quotes but to no avail.
That was all I could think of and I just don't know what else to try anymore.
Maybe somebody has had the same problems? There must be someone using EFISTUB with doublequoted parameters, right?
Last edited by Maggeych (2013-06-13 17:26:25)
You ahve to escape the double quotes as well as the exclamation point. But you would optionally just use single quotes around the !Windows 2012 stuff as well.
efibootmgr -c -w -d /dev/sda -p 1 -l '\EFI\arch\vmlinuz-arch.efi' -L "Arch Linux" -u 'initrd=/EFI/arch/initramfs-arch.img root=/dev/md127p2 resume=/dev/md127p1 ro rootfstype=ext4 acpi_osi=\"\!Windows 2012\" acpi_backlight=vendor add_efi_memmap i915.i915_enable_rc6=1 pcie_aspm=force drm.vblankoffdelay=1 i915.semaphores=1 systemd.unit=graphical.target'
You should just use "efibootmgr -v" to see what it is actually writing, and from that determine if things are okay or not. Just remember that between every character (whitespace included) an efibootmgr entry has a full stop (a period).
As a side note, I see you have kernel paramaters galore. You know that all the i915 stuff can be put into an /etc/modprobe.d conf file? Also, I take issue with the fact that everywhere I see the recommendation to use i915.i915_enable_rc6=1. If anyone would actually read the documentatition, or even just look at the info provided by modinfo, you would see that this is actually disabling low power states. Sure it keeps rc6 enabled, but by default the rc6p state is on in newer systems, so that parameter actually disables this lower power sleep state. If you want to potentially have greater i915 power savings with rc6, you need to use a value of 7 so taht you enable rc6, rc6p, and rc6pp. Though I have seen reports that rc6pp might actually result in slightly higher power consumption because of the time it takes for some processors to get from rc6pp to its running state.
I do not think you are supposed to use acpi_backlight=vendor anymore... I might be wrong, but the thinkpad_acpi module yells at you about deprecation when you try to use that parameter. Does the backlight not get fixed wth just acpi_osi="!Windows 2012"?
Oh and one more thing, have you actually checked to see if you need pcie_aspm=force? It will likely not actually hurt anything if it is there, but it has been known to cause instability sometimes, so if you don't need it, it is probabyl better not to have it.
Actually I blindly copied all those parameters you mentioned from the wiki:
https://wiki.archlinux.org/index.php/AS … Parameters
But you're right I definately need to check and leave out the parameters I don't need anymore. I wasn't really aware that they are this old. Pcie_aspm seems to be enabled by default since kernel 2.6.something...
I'll report back with the results
Ok so that wasn't it.
Now neither the keyboard backlight nor the screen backlight works. (I didn't yet leave any parameters out!) It seems like that broke the whole parameter string.
efibootmgr -v lists the escape backslashes, I'm not shure if that's the way it is supposed to be?
cat /proc/cmdline also has the backslashes in it!
Last edited by Maggeych (2013-06-13 15:40:51)
I finally fixed it!
The problem was that acpi_backlight=vendor interfered with acpi_osi="!Windows 2012". There actually is no need to escape neither the exclamation point nor the double quotes.
But without your hint concerning the kernel parameters I wouldn't have figured it out on my own!
Here's my new efibootmgr command:
efibootmgr -c -w -d /dev/sda -p 1 -l '\EFI\arch\vmlinuz-arch.efi' -L "Arch Linux" -u 'initrd=/EFI/arch/initramfs-arch.img root=/dev/md127p2 resume=/dev/md127p1 ro rootfstype=ext4 acpi_osi="!Windows 2012" add_efi_memmap drm.vblankoffdelay=1 i915.semaphores=1'
I'm not quite shure yet if I really need the remaining parameters, but that's another story.