Lenovo T450 lost Fn brightness increment/decrement

On my laptop the brightness doesn’t work anymore. Pressing Fn-F5 (brightness decrement) the brightness jump to 99% and then is not possible to regulate it: pressing Fn-F5 (brightness decrement) or Fn-F6 (brightness increment) the brightness is always at 99%.
I can regulate the brightness only with the intel_backlight program from the intel-backlight-20180328 package.
How can I reactivate the Fn functionality ?

Thanks in advance
Maurizio

Hi there @Maurizio,

welcome to the forum.

This is odd. Is the acpi_video module loaded (kldstat | grep acpi_video)?

Thank you for the for the quick answer.
The acpi_video module is loaded:

> kldstat | grep acpi_video
 8    1 0xffffffff83219000     2b88 acpi_video.ko

Check whether acpi_ibm is loaded (kldstat | grep acpi_ibm). If not, load it as root:

kldload acpi_ibm

If that fixes the problem, add the line

acpi_ibm_load="YES"

to /boot/loader.conf to make it permanent.

I have solved disabling the acpi_video.ko driver (actually renaming it to acpi_video.ko.blacklisted) and rebooting the laptop.

But I have a question: what is the driver that controls the brightness?

P.S. Can an administrator correct the title in: “Lenovo T450 lost Fn brightness increment/decrement” ? Thanks.

2 Likes

Both, acpi_video and acpi_ibm, can control the brightness. Where acpi_video is a module which provides a generic interface for setting the brightness via ACPI, and ibm_acpi is a more device specific. I suspect that in your case, acpi_video, which also binds to the Fn+<brightness up/down> keys and is loaded first, doesn’t work correctly, and so the vendor specific acpi_ibm couldn’t get those key events.

The acpi_video(4) manpage refers to output switching, but it seems to be a similar problem:

BUGS Some systems only perform output switching via SMM even though they ex- port the proper information via ACPI. On such systems, the proper hotkeys or OEM driver (for example, acpi_toshiba(4)) must be used in- stead.

1 Like

I have disabled ACPI_IBM(4) and ACPI_VIDEO(4) but the Fn brightness keys still work.
These drivers are loaded:

> kldstat
Id Refs Address                Size Name
 1   78 0xffffffff80200000  2448f20 kernel
 2    1 0xffffffff82649000   3a9930 zfs.ko
 3    2 0xffffffff829f3000     a540 opensolaris.ko
 4    1 0xffffffff829fe000     7180 ums.ko
 5    1 0xffffffff83019000     5954 cuse.ko
 6    1 0xffffffff8301f000      b98 coretemp.ko
 7    1 0xffffffff83020000    15d20 if_iwm.ko
 8    1 0xffffffff83036000    fb241 iwm7265Dfw.ko
 9    1 0xffffffff83132000   12045f iwm7265fw.ko
10    1 0xffffffff83253000     4260 ng_ubt.ko
11    6 0xffffffff83258000     9e30 netgraph.ko
12    2 0xffffffff83262000     91b8 ng_hci.ko
13    3 0xffffffff8326c000      9c0 ng_bluetooth.ko
14    1 0xffffffff8326d000     cad0 ng_l2cap.ko
15    1 0xffffffff8327a000    1ba00 ng_btsocket.ko
16    1 0xffffffff83296000     21c0 ng_socket.ko
17    1 0xffffffff83299000     88d8 tmpfs.ko
18    1 0xffffffff832a2000      acf mac_ntpd.ko
19    1 0xffffffff832a3000   12cab0 i915kms.ko
20    1 0xffffffff833d0000    763b0 drm.ko
21    4 0xffffffff83447000    10eb0 linuxkpi.ko
22    3 0xffffffff83458000    12f30 linuxkpi_gplv2.ko
23    2 0xffffffff8346b000      6d0 debugfs.ko
24    1 0xffffffff8346c000    18dc8 ext2fs.ko
25    1 0xffffffff83485000     fcf0 fusefs.ko
26    1 0xffffffff83495000     3d94 geom_linux_lvm.ko
27    1 0xffffffff83499000     a210 if_lagg.ko

Probably is the linuxkpi.ko driver that handles the brightness.
Anyway thank you again for the support, if I find some info I will post it here.

1 Like

Ha! Thanks a lot. I have a Thinkpad T450s where changing screen brightness didn’t work either.
Without acpi_video.ko loaded it all works now.

1 Like

Off topic: I want to mark this thread as solved. How can I do it ?

1 Like

The necessary plugin to mark a thread solved was not yet installed. :slight_smile:

You can now select the post that solves a thread.

1 Like

And it is now possible to add spoilers. :wink:

2 Likes

We could conditionally load acpi_video(4) by our load_acpi script, depending on the system it is running on. What does kenv | egrep 'smbios.system.(maker|product|family)' show, @lme and @Maurizio?

On my laptop:

$ kenv | egrep 'smbios.system.(maker|product|family)'
smbios.system.family="ThinkPad T450"
smbios.system.maker="LENOVO"
smbios.system.product="20BUS06B00"
1 Like
1 Like

Thank you, the patch works for me.