Linux – Can’t get the brightness Fn keys working on ASUS N551VW

brightnesslaptoplinux-mint

I know there are many similar questions already but none of the solutions listed there helped me.

Laptop: ASUS N551VW

VGAs: Intel Skylake (00:02.0) + nVidia GTX 960M (01:00.0)

Distro: Linux Mint 18 (tried also on Debian 8.6 with the same result)
Kernel is updated to 4.4.0-43-generic x86_64

Contents of /sys/class/backlight:

intel_backlight

Reading from brightness, actual_brightness and max_brightness in that folder all give a 913 value. Writing into those has no effect.

What have I tried:

  1. Playing with kernel options in /etc/default/grub:

    acpi_osi=
    acpi_osi=Linux
    acpi_backlight=intel
    acpi_backlight=native
    acpi_backlight=vendor
    video.use_native_backlight=1
    

And their various combinations.

The only effect setting acpi_backlight to native/vendor has is that the GUI stops recognizing the fact I'm pressing the fn keys and doesn't display the brightness icon with it's current level (as it thinks). Without these settings it shows the icon with its level but the real brightness stays at maximum.

  1. Running xbacklight has no effect (despite it's showing no errors and stops for a fraction of second before returning).

If I switch to Intel adapter and try running it with -set – it hangs the laptop completely (restartable only with power button).

  1. Writing brightness value directly using setpci. Has no effect at all.

The most funny part is that in BIOS and BIOS splash screen I can change the brightness using fn+f5 and fn+f6 without any problems but as soon as the Linux starts it sets the brightness to the maximum level and doesn't let to change anymore.

Not sure what else to try.

Upd:

ddccontrol -p -r 0x10 -w 50 output:

ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.

Probing for available monitors....I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/LGD046F.xml"
Document not parsed successfully.
....
Detected monitors :
 - Device: dev:/dev/i2c-3
   DDC/CI supported: No
   Monitor Name: VESA standard monitor
   Input type: Digital
No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).

Upd2:

Upgrading the kernel to 4.8.4 and setting the kernel options string to acpi_osi= solved the issue.

Best Answer

Since you have tried many solutions without success, I think your hardware is simply too new for your kernel...
Try a more recent kernel (or simply a live distro with a more recent kernel e.g. ubuntu 16.10 has got the 4.8...)

Related Question