Brightness controls stopped working after update on a Samsung QX412-S01AU

Previously on my Samsung QX412-S01AU laptop I had been able to get brightness controls working, see this question: Brightness Hotkeys Only Slightly Work.

After a recent automatic update, which upgraded the kernel, my brightness has stopped working and is on an almost unusably low setting. The keyboard shortcuts for brightness can adjust the screen between about 0 and 30%. The slider using the keyboard shortcuts then ceases to move up, every button press just keeps the level at 30%. "Brightness and Lock" in the settings allows you to move the slider the whole way, but never gives you more than the same 30% brightness.

Here's what I've tried so far:

  • echo "0" | sudo tee /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/brightness
    echo "7" | sudo tee /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/brightness
    These used to work, but now have no effect at all.
  • xbacklight -set 100
    This only allows you to change from about 0-30, as above.
  • I tried to re-apply this answer, but the acpi_backlight=vendor bit was still in my grub config.
  • The output of ls /sys/class/backlight/*/brightness used to be this:
    • Used to be this: /sys/class/backlight/intel_backlight/brightness
    • After the update is this: /sys/class/backlight/intel_backlight/brightness /sys/class/backlight/samsung/brightness

The kernel version that came through in the update was linux-image-3.2.0-27-generic:amd64 (3.2.0-27.43).

EDIT- (Ian.B.) Just wanted to add that I have the same problem (Samsung QX411, NVIDIA Optimus) and have removed the acpi_backlight=kernel from the grub and it doesn't change anything. I also tried upgrading to a mainline 3.4 kernel with no effect (with or without the acpi key in grub). Interestingly if I cat the parameters in /sys/class/samsung/brightness/ with the power cord in/out I get:

actual_brightness 8/1
bl_power 0
brightness 4/2
max_brightness 8

Don't know if it's a clue that the brightness and actual brightness keys aren't in sync.


Solution 1:

(The situation seems to change with each few new kernel versions, which is very unfortunate.)

After some more experimentation and then fortunately running into this post http://ubuntuforums.org/showpost.php?p=12126780&postcount=6 I have it working on my setup.

You need this in your /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="nosplash acpi_osi=Linux acpi_backlight=vendor"

After making the changes, do:

sudo update-grub

If you are running the latest Ubuntu 12.04.3 with kernel 3.8.0 (tested on 2013-10-29), or if the above alone does not work after a reboot, you also want to blacklist the samsung_laptop kernel module. Do this by creating a new file in /etc/modprobe.d/ called blacklist-np300.conf with the following contents:

blacklist samsung_laptop

... and then reboot.

I have full backlight control and range restored! If you're wondering what exactly the acpi_osi parameter does, see this askubuntu entry: What does the kernel boot parameter "set acpi_osi=Linux" do?

Solution 2:

For Samsung laptops that have a keyboard backlight (like the Chronos Series 7) which can be set when installing samsung-tools from the "Linux on my Samsung" PPA, it is actually recommendable to keep acpi_osi=linux in the Kernel command line. This enables the keyboard backlight functions, it also allows for more fine-tuning when using the brightness controls compared to acpi_osi=. Just make sure to remove the acpi_backlight=vendor parameter.