I'm unable to change LCD brightness on Lenovo Thinkpad Edge E145 using ☼+ and ☼- buttons. To be more specific, the brightness can be changed only until an early system boot. It works in the loader menu, and right after kernel is loaded, but stops working soon after that (perhaps when acpi0 is loaded: “acpi0: <LENOVO TP-HS> on motherboard”).
I tested multiple FreeBSD version:
Affected FreeBSD versions:
- 11.0: FreeBSD-11.0-CURRENT-amd64-20160206-r295345-memstick.img
- 10.3: FreeBSD-10.3-PRERELEASE-amd64-20160127-r294913-memstick.img
- 10.2: 10.2-RELEASE-p12
- 10.1: FreeBSD-10.1-RELEASE-amd64-memstick.img
- 9.3: FreeBSD-9.3-RELEASE-amd64-memstick.img (with “CPU0: local
ACPI error 0x80”)
As you can see, the problem occurred between 9.3 and 10.1.
I also tried different methods to change the brightness on 10.2:
acpi_call -v -p '\VBRU'
Number of arguments: 0
ioctl: Device not configured
# no effect
# value changes, but it no effect on the brightness
hw.acpi.video.lcd0.brightness: 50 -> #
# no effect
pressing Fn+☼+- buttons has no effect, but logs:
can't evaluate \134_SB_.PCI0.VGA_.LCD_._BQC - AE_NOT_FOUND
A missing _BQC method was one of my problems; I modified my DSDT to add a _BQC method, but later I patched the kernel to not complain if it was missing. The other problem was the backlight code in the kernel for Radeon chipsets. I'll stick both patches here (git-based).
Created attachment 187601 [details]
Store brightness value in static variable; don't complain if _BQC method is missing.
Created attachment 187602 [details]
Add rudimentary backlight support to Radeon chipsets.