0

I'm using an old ThinkPad R60 as my daily workhorse. It works like a charm, has IMHO the best keyboard in the world, and is rugged as hell thanks to its magnesium endoskeleton. Only the display is a too dark to work comfortably in bright daylight (the successor model T60 improved on this). The display brightness can be increased by Fn + Home and decreased by Fn + End, but only within the preset range. Is it possible to access the hardware controller of the backlight and increase the maximum brightness value?

Inside the directory /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0 I found the following files (contents in parentheses):

-rw-r--r-- 1 root root 4096 bl_power ('0')
-rw-r--r-- 1 root root 4096 brightness ('7')
-r--r--r-- 1 root root 4096 actual_brightness ('7')
-r--r--r-- 1 root root 4096 max_brightness ('7')
-r--r--r-- 1 root root 4096 type ('firmware')
-rw-r--r-- 1 root root 4096 uevent (empty)

brightness seems to adjust the current setting, the value changes from 0 to 7 according to the brightness and, conversely, changing the brightness changes the value. What is the meaning of the other files and why can't I write to max_brightness even as root?

I tried echo 10 | sudo tee /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/max_brightness both as regular user and root (doing sudo su), but I keep getting:

tee: '/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/max_brightness': Permission denied

UPDATE: I've changed the file permissions, now I'm getting an I/O error:

tee: '/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/max_brightness': Input/output error

Is there a way to hack the backlight controller and adjust the actual drive current?

4
  • 1
    In the same folder you might also have a device symlink, this would point to the interface of the "raw" backlight device. You might be able to have more control there, but at least on my laptop, the maximum possible output is the same for both settings.
    – einfeyn496
    Commented Aug 3, 2020 at 21:32
  • Yes, the symlinks are actually a bit confusing, there is one device and subsystem which lead to another acpi_video0 directory, in which there are once again those two symlinks etc. It's like a mace...or rather, running around in circles: /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/subsystem/acpi_video0/device/backlight/acpi_video0/device/backlight/acpi_video0/device/backlight/acpi_video0/device/backlight/acpi_video0/device/backlight/acpi_video0/device etc.
    – david
    Commented Aug 3, 2020 at 21:37
  • Also, I'm getting an I/O error when trying to write to max_brightness (see updated question), not sure what this means
    – david
    Commented Aug 3, 2020 at 21:38
  • 1
    The I/O error means you're trying to do something illegal/not allowed/not supported, I've updated my answer to try to clarify that being unable to write to max_brightness is not a permissions error, it's just not a supported operation
    – einfeyn496
    Commented Aug 3, 2020 at 21:49

1 Answer 1

1

The reason that you're unable to write to max_brightness is that it is read only (-r--r--r--), so it's not modifiable by anyone. This is not an issue with the permissions, the ACPI firmware is simply exposing the value that the firmware says is the maximum possible brightness that can be set (you'll note that type reports firmware).

The files in this directory are exposed by ACPI to provide user interaction with the device, and you can find additional information in the thinkpad-acpi documentation and in the acpi backlight sysfs documentation.

Changing the max_brightness value likely requires being able to modify and load modified firmware (I don't think it would be possible by modifying the DSDT alone, but you could investigate that too), and probably the device datasheet.

3
  • 1
    Yeah, no, I wasn't saying it's a just a file permissions error, the file is an interface to a firmware module, and there is no user interface to modify that value in the sysfs...
    – einfeyn496
    Commented Aug 3, 2020 at 21:29
  • Thx, I checked the documentation, but couldn't find anything leading to a solution. But I did sudo chmod 744 on max_brightness to get write permission, now I'm getting the following error: tee: '/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/max_brightness': Input/output error. Is it possible to flash a new firmware from the OS? Does anyone know if the controller is in any way accessible (without actually hooking up the microcontroller)? Alternatively, are there any cheap replacement/upgrade options for the standard R60 display (anything well below 100 USD)?
    – david
    Commented Aug 3, 2020 at 21:29
  • PS.: Sry, had to repost the edited comment (timeout)
    – david
    Commented Aug 3, 2020 at 21:30

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .