Hi all,
as reported in the preceding thread, NvClock is also able to change the display backlight by driving the chip's smartdimmer directly. After my recent examination, I found some time to have a closer look at NvClock and put it into a separate driver.
The new approach offers some advantages over mbp_nvidia_bl:
- More fine-grained brightness control: The chip supports 1024 levels.
- Lower minimum brightness, allowing to save power at night.
- Should work on the problematic machines (MacBook 5, MacBook Air 2) as well.
Please give it a try and report whether it works. To do so, install nvidia-bl-dkms from the Mactel-PPA, replace the line for mbp_nvidia_bl in /etc/modules with
and reboot. Do not load both nvidia_bl and mbp_nvidia_bl.Code:nvidia_bl shift=2
Please note: The 'shift' parameter is necessary because some userland tools (either hal or g-p-m) seem to not play well with more than 256 levels. This parameter shifts all values by 2 bit, effectively reducing the valid range from 1024 to 256 levels for now.
After rebooting, the command
should output:Code:lshal -u /org/freedesktop/Hal/devices/computer_backlight
And you should be able to adjust brightness by runningCode:udi = '/org/freedesktop/Hal/devices/computer_backlight' info.capabilities = {'laptop_panel'} (string list) info.category = 'laptop_panel' (string) info.interfaces = {'org.freedesktop.Hal.Device.LaptopPanel'} (string list) info.parent = '/org/freedesktop/Hal/devices/computer' (string) info.product = 'Generic Backlight Device' (string) info.subsystem = 'backlight' (string) info.udi = '/org/freedesktop/Hal/devices/computer_backlight' (string) laptop_panel.access_method = 'general' (string) laptop_panel.num_levels = 256 (0x100) (int) linux.hotplug_type = 2 (0x2) (int) linux.subsystem = 'backlight' (string) linux.sysfs_path = '/sys/devices/virtual/backlight/nvidia_backlight' (string) org.freedesktop.Hal.Device.LaptopPanel.method_argnames = {'brightness_value', ''} (string list) org.freedesktop.Hal.Device.LaptopPanel.method_execpaths = {'hal-system-lcd-set-brightness', 'hal-system-lcd-get-brightness'} (string list) org.freedesktop.Hal.Device.LaptopPanel.method_names = {'SetBrightness', 'GetBrightness'} (string list) org.freedesktop.Hal.Device.LaptopPanel.method_signatures = {'i', ''} (string list)
as well as using the function keys.Code:echo 100 | sudo tee /sys/class/backlight/nvidia_backlight/brightness
MacBook 5, MacBook Air 2 users: Does it work using Nvidia's proprietary driver?
MacBook Pro 5 users: Since your machines incorporate 2 graphics chips, I, honestly, don't know which one to drive. I chose the first one. Does it work at all?
ciao,
Mario
Bookmarks