amd64/181357: LCD Brightness Control not working on Lenovo X121e (ACPI issue?)
Matthias Petermann
matthias at petermann-it.de
Sat Aug 17 18:20:00 UTC 2013
>Number: 181357
>Category: amd64
>Synopsis: LCD Brightness Control not working on Lenovo X121e (ACPI issue?)
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-amd64
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Aug 17 18:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Matthias Petermann
>Release: 10.0-CURRENT
>Organization:
>Environment:
FreeBSD thinkpad.local 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r252853:
Sat Jul 6 02:01:48 CEST 2013
>Description:
The X121e is expected to increase/decrease LCD brightness by Fn+F9/Fn+F8. This is not working in FreeBSD 9.1 and FreeBSD 10.0. Direct ACPI calls (via sysutils/acpi_call port) provide a workaround. A comprehensive solution would be appreciated. I think a solution for this problem will help not just X121e users but any user of more recent thinkpads. I saw similiar postings in freebsd-current for X230 and X220 as well.
I have FreeBSD 10.0-CURRENT installed permanently to my X121e and am willing to test / investigate at any time. Please advise if there is anything I could provide right now.
The affected model is a Lenovo X121e (Model 3045-79G, i3, HD3000). Details:
http://www.petermann-it.de/files/freebsd-pr-x121e-acpi/dmesg.txt
http://www.petermann-it.de/files/freebsd-pr-x121e-acpi/devinfo.txt
http://www.petermann-it.de/files/freebsd-pr-x121e-acpi/mpeterma-lenovo_x121e_i3.asl
http://www.petermann-it.de/files/freebsd-pr-x121e-acpi/sysctl_hw_acpi.txt
>How-To-Repeat:
I tried:
# acpi_video / sysctl hw.acpi.video.lcd0.brightness
This is what is working on most of the other laptops I tried it.
root at thinkpad:/usr/home/mpeterma # kldload acpi_video
acpi_video0: <ACPI video extension> on vgapci0
root at thinkpad:/usr/home/mpeterma # sysctl -a |grep bright
hw.acpi.video.lcd0.brightness: 35
root at thinkpad:/usr/home/mpeterma # sysctl
hw.acpi.video.lcd0.brightness=100
hw.acpi.video.lcd0.brightness: 35 -> 100
Result: LCD brightness doesn't change after sysctl call, Fn+F9/Fn+F8 not
working.
# acpi_ibm / sysctl dev.acpi_ibm.0.lcd_brightness
This is what worked on some older Thinkpads.
root at thinkpad:/usr/home/mpeterma # kldload acpi_ibm
acpi_ibm0: <IBM ThinkPad ACPI Extras> on acpi0
root at thinkpad:/usr/home/mpeterma # sysctl -a | grep bright
hw.acpi.video.lcd0.brightness: 90
dev.acpi_ibm.0.lcd_brightness: 7
root at thinkpad:/usr/home/mpeterma #
root at thinkpad:/usr/home/mpeterma # sysctl dev.acpi_ibm.0.lcd_brightness=1
dev.acpi_ibm.0.lcd_brightness: 7 -> 1
Result: LCD brightness doesn't change after sysctl, Fn+F9/Fn+F8 still
not working.
# Activate sysctl dev.acpi_ibm.0.events
root at thinkpad:/usr/home/mpeterma # sysctl -a | grep
dev.acpi_ibm.0.availmask
dev.acpi_ibm.0.availmask: 67733756
root at thinkpad:/usr/home/mpeterma # sysctl dev.acpi_ibm.0.events=1
dev.acpi_ibm.0.events: 0 -> 1
root at thinkpad:/usr/home/mpeterma # sysctl
dev.acpi_ibm.0.handlerevents='0x03 0x04 0x10 0x11'
Result: Fn+F9/Fn+F8 still not working.
# Direct ACPI calls with acpi_call
root at thinkpad:/usr/home/mpeterma # cd /usr/ports/sysutils/acpi_call/
root at thinkpad:/usr/ports/sysutils/acpi_call # make install clean
root at thinkpad:/usr/ports/sysutils/acpi_call # kldload acpi_call
root at thinkpad:/usr/ports/sysutils/acpi_call # acpi_call -p '\VBRU'
root at thinkpad:/usr/ports/sysutils/acpi_call # acpi_call -p '\VBRD'
Result: on each acpi_call, \VBRU increases and \VBRD decreases LCD
brightness by one step.
Fn+F9/Fn+F8 still not working.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-amd64
mailing list