Fn + F5 / F6 brightness keys not working on Asus R556L
I've already tried many solutions I'd found on the web and none of them has worked. I'm using Ubuntu 16.04 LTS, fresh installation.
- This notebook has Intel HD Graphics 5500 and Nvidia GeForce 920M. I thought that installing the proprietary Nvidia driver would solve the issue, but it still exists. Installing
bumblebee
for Nvidia Optimus didn't solve the issue either. - The other Fn keys like volume up, down, screen off, WiFi etc. work without any problems.
- The brightness keys work in the GRUB selection menu. They stop working immediately after the Ubuntu is selected and launched. On Windows they work perfectly fine.
-
xev
andacpi_listen
don't detect the Fn + F5 / F6 combination at all, no matter what solution I try. -
/sys/class/blacklight
contains anintel_backlight
folder and the brightness can be changed using thesudo tee /sys/class/backlight/intel_backlight/brightness <<< 200
command. This folder may also contain a second folder likeacpi_video0
after trying some of the solutions, but the brightness setting in this folder does not have any effect. - Generally, the brightness can be changed in settings or by using
xbacklight
, the only issue is that the Fn brightness keys seems to be considered to not exist for the system. EDIT: Apparently,xbacklight
doesn't work when the Nvidia GPU is used. It works when the Intel GPU is set in Nvidia Prime. So I guess this issue is somehow related to dual GPU setup.
Here are the solutions I've already tried and all of them failed:
- I edited
/etc/default/grub
by commenting out theGRUB_CMDLINE_LINUX
line and changing theGRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
line. None of the following additions has worked for me, mixed or not:acpi_backlight=vendor
acpi_backlight=native
acpi_backlight=video
video.use_native_backlight=1
acpi_osi=
acpi_osi=Linux
acpi_osi='!Windows 2012'
-
I created a
/usr/share/X11/xorg.conf.d/20-intel.conf
file with the following content:Section "Device" Identifier "card0" Driver "intel" Option "Backlight" "intel_backlight" BusID "PCI:0:2:0" EndSection
It only resulted in a black screen instead of the login screen, so I had to delete this file.
-
I edited the
/etc/X11/xorg.conf
file to addOption "Backlight" "intel_backlight"
andOption "RegistryDwords" "EnableBrightnessControl=1"
. This didn't change anything. Here's the actual content of this file:Section "ServerLayout" Identifier "layout" Screen 0 "nvidia" Inactive "intel" EndSection Section "Device" Identifier "intel" Driver "modesetting" BusID "PCI:0@0:2:0" Option "AccelMethod" "None" Option "Backlight" "intel_backlight" EndSection Section "Screen" Identifier "intel" Device "intel" EndSection Section "Device" Identifier "nvidia" Driver "nvidia" BusID "PCI:4@0:0:0" Option "ConstrainCursor" "off" Option "RegistryDwords" "EnableBrightnessControl=1" EndSection Section "Screen" Identifier "nvidia" Device "nvidia" Option "AllowEmptyInitialConfiguration" "on" Option "IgnoreDisplayDevices" "CRT" EndSection
I can't find any other solutions, just the same as above everywhere. Thanks in advance for any help or ideas what might be a fix.
Solution 1:
Hey there seem to be a few related questions for different asus computers:
https://askubuntu.com/search?q=brightness+F5
This answer might be particularly interesting (it suggest a kernel downgrade):
14.04 on Asus GL552JX: Fn+F5 and Fn+F6 Brightness Problem
I don't have an Asus R556L to experiment with but I would suggest a couple of things:
The showkeys command operates at the level of keycodes and scancodes, so might give you information that xev will not:
sudo showkey -s
This archwiki page describes the https://wiki.archlinux.org/index.php/Map_scancodes_to_keycodes process of mapping scancodes to keycodes, apparently this happens in the kernel, but can be customized from userland.
For the benefit of other readers, here's a picture of what's going on.
Keypresses --keyboard---> scan codes --kernel---> keycodes ---X----> keysym --- application / wm ----> event
The comments about GPU and xbacklight muddy the water a little. I would be inclined to try to go around your window manager and just set bindings directly. One thing to bear in mind is that the kernel protocol for changing backlight settings has been changing recently to use sysfs and there were problems with xbacklight not supporting this. See acpilight for a drop in replacement. You can also do stuff manually inside sysfs.
Solution 2:
I had the same problem and tried a handful of combinations in GRUB, just like you. Also using an ASUS and Ubuntu 16.04
After multiple attempts, this is the combination of GRUB & .CONF that worked for me (without xblacklight installed):
- Edit GRUB
- Open Terminal
- type sudo gedit /usr/default/grub
- type your password
- Find this line:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
- Add acpi_osi= immediately following "quiet splash" like so: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi="
- The next line should look like this: GRUB_CMDLINE_LINUX=""
- SAVE and CLOSE file
- In terminal, type sudo update-grub
-
Create .CONF file
- Open Terminal
- type (or copy/paste): sudo gedit /usr/share/X11/xorg.conf./20-intel.conf
Remove everything from the file and paste this in line for line:
Section "Device" Identifier "card0" Driver "intel" Option "Backlight" "intel_backlight" BusID "PCI:0:2:0" EndSection
SAVE and CLOSE file
3. Reboot computer
Here's a link to a explanation with links to references that helped me along the way: Function Keys Do Not work (Brightness & Sound) Ubuntu 16.04