Comment 0 for bug 367309

Revision history for this message
Tim Allen (screwtape) wrote : xrandr backlight control is bizarre on Macbook 945GM

Binary package hint: xserver-xorg-video-intel

I'm using Jaunty on a second-generation Macbook ("Macbook2,1" in Apple parlance) with an Intel 945GM graphics chip. Since at least Intrepid, I've had a strange and puzzling behaviour with the backlight keys. Tonight I tried upgrading to version 2.7 of the Intel driver from the x-updates PPA in the vain hope it might resolve the issue, but since it didn't I sat down and took a good hard look at the problem.

I tried switching to each of the available BACKLIGHT_CONTROL methods with "xrandr --output LVDS --set BACKLIGHT_CONTROL $method", then checked the available range with "xrandr --prop" and tried a selection of brightness settings with "xrandr --output LVDS --set BACKLIGHT $value"

When I run "xrandr --prop" the default BACKLIGHT_CONTROL value is "native", whose range of backlight values is the unusual range 0..296. These numbers map to brightnesses as follows:

 - Even numbers from 0 to 40 turn off the backlight.
 - Even numbers from 42 to 296 uniformly increase the brightness to full strength.
 - Odd numbers from 1 to 253 uniformly decrease the brightness from full to very dim.
 - Odd numbers greater than or equal to 255 turn off the backlight.

The end result is that trying to change the brightness with F1 and F2 involves mashing one or the other until you get a brightness level you're willing to put up with and hope that nothing changes it.

The "legacy" BACKLIGHT_CONTROL method has a range of 0..255, where every value produces the same mid-level brightness.

The "combination" BACKLIGHT_CONTROL has a range of 0..148, half the range of the "native" method, and it behaves like half the "native" method too:
 - Numbers from 0 to 20 turn off the backlight.
 - Numbers from 21 to 148 uniformly increase the brightness from very dim to full strength.

The "kernel" BACKLIGHT_CONTROL has a range of 0..0. Setting the backlight value to '0' produces no obvious effect (if the backlight was on, it stays on; if the backlight was off it stays off)

A side note: when I first play with the keyboard brightness buttons, they followed the chaotic behaviour of the default, "native" BACKLIGHT_CONTROL above. Now that I've been messing with the BACKLIGHT_CONTROL value, the brightness buttons control a smooth gradient from 'very dim' to 'full strength' regardless of the BACKLIGHT_CONTROL, although I can't actually turn the backlight off with the keys. I'll ascribe that to some GNOME feature being clever, and ignore it until the underlying xrandr feature is fixed.

I would be happy if the Intel driver defaulted to "combination" BACKLIGHT_CONTROL on my hardware, since at least that works in a predictable and useful fashion. However, certain patterns make me suspect there's some underlying problem to be fixed - like the fact that the total 'lit' range in 'combination' mode is 127 brightness levels, which seems a far more likely range than 148.

ProblemType: Bug
Architecture: amd64
DistroRelease: Ubuntu 9.04
Package: xserver-xorg-video-intel 2:2.7.0-1ubuntu1~xup~1
ProcEnviron:
 PATH=(cuusernameom, user)
 LANG=en_AU.UTF-8
 SHELL=/bin/bash
ProcVersion: Linux version 2.6.28-11-generic (buildd@creusernameed) (gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #42-Ubuntu SMP Fri Apr 17 01:58:03 UTC 2009
SourcePackage: xserver-xorg-video-intel
Uname: Linux 2.6.28-11-generic x86_64
UnreportableReason: This is not a genuine Ubuntu package