Brightness Keys F7 / F8 on Thinkpad Edge E535 Trinity A8-4500M Radeon 7640G 12.2 64

Anyone got ideas how to get the backlight F7 / F8 keys working for this Notebook?
I’m using a Thinkpad Edge E535 Type 32605BG with AMD Trinity A8-4500M APU, 8GB RAM, Radeon 7640G Graphics 32605BG, Ser. Nr. NZR5BGEMP0RR0V.

Seems to be a typical “non Standard” ACPI Tables issue with BIOS - installed BIOS Version is 1.07, currently theres no BIOS Update available at Lenovo.

WLAN, Network, Camera, even Power Management work, this device runs completely fast, so any help would be greatly appreciated.

I tried out several known workarounds like Kernel Boot Parameters, like acpi_os , acpi_backlight ans so on- even fiddling around with the thinkpad_acpi driver
parameters, no chance. Changing the behaviour of the F7 / F8 keys (FN-key on /off) in BIOS did not work.
Trying to access the backlight interface via commandline fails - brightness stays set at max. Level. Seems the kernel completey ignores
the backlight interface.

The bars of the backlighthelper appear and move correct! - But no change of brightness.

At boot time, several Firmware bugs are reported:

Output /var/log/messages or dmesg

1.050002] [Firmware Bug]: cpu 2, try to use APIC500 (LVT offset 0) for vector 0x10400, but the register is already in use for vector 0xf9 on another cpu
1.050013] [Firmware Bug]: cpu 2, IBS interrupt offset 0 not available (MSRC001103A=0x0000000000000100)
1.050019] Failed to setup IBS, -22
0.420909] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored

0.555315] pci_root PNP0A08:00: ignoring host bridge window [mem 0x000ce000-0x000cffff] (conflicts with Video ROM [mem 0x000c0000-0x000cf9ff])

0.385755] [Firmware Info]: CPU: Re-enabling disabled Topology Extensions Support
0.387944] NMI watchdog: enabled, takes one hw-pmu counter.
0.391650] #3 Ok.
0.402716] [Firmware Info]: CPU: Re-enabling disabled Topology Extensions Support

Nov 10 00:15:26 linux kernel: 0.534329] [Firmware Bug]: ACPI: No BQC method, cannot determine initial brightness
Nov 10 00:15:26 linux kernel: 0.534525] [Firmware Bug]: ACPI: No BQC method, cannot determine initial brightness
Nov 10 00:15:26 linux kernel: 0.545939] ACPI: EC: GPE = 0x3, I/O: command/status = 0x66, data = 0x62
Nov 10 00:15:26 linux kernel: 0.546755] ACPI: No dock devices found.
20.041239] ACPI Warning: 0x0000000000000b00-0x0000000000000b07 SystemIO conflicts with Region _SB
.PCI0.SMB
.SMB0 1 (
20120320/utaddress-251)
thinkpad_acpi: ThinkPad ACPI Extras v0.24
19.124042] thinkpad_acpi: ibm-acpi - IBM ThinkPad ACPI Extras Driver
19.124044] thinkpad_acpi: ThinkPad BIOS HHET32WW (1.07 ), EC unknown
19.124046] thinkpad_acpi: Lenovo ThinkPad Edge E535, model 32605BG
19.124615] powernow-k8: Found 1 AMD A8-4500M APU with Radeon™ HD Graphics (4 cpu cores) (version 2.20.00)
19.124631] powernow-k8: Core Performance Boosting: on.
19.124720] powernow-k8: 0 : pstate 0 (1900 MHz)
19.124723] powernow-k8: 1 : pstate 1 (1800 MHz)
19.124725] powernow-k8: 2 : pstate 2 (1700 MHz)
19.124727] powernow-k8: 3 : pstate 3 (1600 MHz)
19.124729] powernow-k8: 4 : pstate 4 (1400 MHz)

20.340134] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
20.321819] thinkpad_acpi: ThinkPad ACPI Extras v0.24
20.321823] thinkpad_acpi: ibm-acpi - IBM ThinkPad ACPI Extras Driver
20.321827] thinkpad_acpi: ThinkPad BIOS HHET32WW (1.07 ), EC unknown
20.321831] thinkpad_acpi: Lenovo ThinkPad Edge E535, model 32605BG
20.322614] thinkpad_acpi: detected a 8-level brightness capable ThinkPad
Nov 10 00:15:26 linux kernel: 0.534329] [Firmware Bug]: ACPI: No _BQC method, cannot
determine initial brightness
Nov 10 00:15:26 linux kernel: 0.534525] [Firmware Bug]: ACPI: No _BQC method, cannot determine initial brightness

20.340134] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
20.321819] thinkpad_acpi: ThinkPad ACPI Extras v0.24
20.321823] thinkpad_acpi: ibm-acpi - IBM ThinkPad ACPI Extras Driver
20.321827] thinkpad_acpi: ThinkPad BIOS HHET32WW (1.07 ), EC unknown
20.321831] thinkpad_acpi: Lenovo ThinkPad Edge E535, model 32605BG
20.322614] thinkpad_acpi: detected a 8-level brightness capable ThinkPad
->> 20.328703] thinkpad_acpi: setting the hotkey mask to 0x00ffffff is likely not the best way to go about it
->> 20.328707] thinkpad_acpi: please consider using the driver defaults, and refer to up-to-date thinkpad-acpi documentati
Nov 10 00:15:26 linux kernel: 18.789812] Registered led device: tpacpi::thinklight
Nov 10 00:15:26 linux kernel: 18.789861] Registered led device: tpacpiower
Nov 10 00:15:26 linux kernel: 18.789883] Registered led device: tpacpi::standby
Nov 10 00:15:26 linux kernel: 18.789903] Registered led device: tpacpi::thinkvantage
Nov 10 00:15:26 linux kernel: 18.789914] thinkpad_acpi: Standard ACPI backlight interf
ace available, not loading native one

/etc/modprobe.d/50-thinkpad_acpi.conf

IBM/Lenovo ThinkPad ACPI driver options

A detailed description of the parameters for the ThinkPad ACPI driver can be found

in /usr/src/linux/Documentation/laptops/thinkpad-acpi.txt which is part of the package

‘kernel-source’.

If you encounter problems with the hotkey mask please file a bug on

http://bugzilla.novell.com/

options thinkpad_acpi experimental=1 hotkey=0xffffff

I even decompiled the BIOS, (_BQC method is defined !) chased my BIOS through the Intel ASL Optimizing Compiler-
this is the result, but editing ACPI Tables is a bit heavy stuff for me:

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20120518-64
Copyright (c) 2000 - 2012 Intel Corporation

dsdt.dsl 3910: XPDT (0x00)
Remark 5098 - Recursive method call ^ (XPDT)

dsdt.dsl 5029: XPDT (0x00)
Remark 5098 - Recursive method call ^ (XPDT)

dsdt.dsl 5552: XPDT (0x00)
Remark 5098 - Recursive method call ^ (XPDT)

dsdt.dsl 6063: XPDT (0x00)
Remark 5098 - Recursive method call ^ (XPDT)

dsdt.dsl 6574: XPDT (0x00)
Remark 5098 - Recursive method call ^ (XPDT)

dsdt.dsl 7085: XPDT (0x00)
Remark 5098 - Recursive method call ^ (XPDT)

dsdt.dsl 10933: Method (ECTT, 5, NotSerialized)
Warning 1114 - ^ Not all control paths return a value (ECTT)

dsdt.dsl 10935: Name (_T_0, Zero)
Remark 5011 - Use of compiler reserved name ^ (_T_0)

dsdt.dsl 12805: Method (_Q2A, 0, NotSerialized)
Warning 1114 - ^ Not all control paths return a value (_Q2A)

dsdt.dsl 12824: Method (_Q2B, 0, NotSerialized)
Warning 1114 - ^ Not all control paths return a value (_Q2B)

dsdt.dsl 15807: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 15832: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 15848: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 15864: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 15880: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 15896: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 15974: Name (_PLD, Buffer (0x10)
Error 4105 - Invalid object type for reserved name ^ (found BUFFER, requires Package)

dsdt.dsl 15995: Name (_PLD, Buffer (0x10)
Error 4105 - Invalid object type for reserved name ^ (found BUFFER, requires Package)

dsdt.dsl 16016: Name (_PLD, Buffer (0x10)
Error 4105 - Invalid object type for reserved name ^ (found BUFFER, requires Package)

dsdt.dsl 16037: Name (_PLD, Buffer (0x10)
Error 4105 - Invalid object type for reserved name ^ (found BUFFER, requires Package)

dsdt.dsl 16058: Name (_PLD, Buffer (0x10)
Error 4105 - Invalid object type for reserved name ^ (found BUFFER, requires Package)

dsdt.dsl 16086: Name (_PLD, Buffer (0x10)
Error 4105 - Invalid object type for reserved name ^ (found BUFFER, requires Package)

dsdt.dsl 16107: Name (_PLD, Buffer (0x10)
Error 4105 - Invalid object type for reserved name ^ (found BUFFER, requires Package)

dsdt.dsl 16128: Name (_PLD, Buffer (0x10)
Error 4105 - Invalid object type for reserved name ^ (found BUFFER, requires Package)

dsdt.dsl 16149: Name (_PLD, Buffer (0x10)
Error 4105 - Invalid object type for reserved name ^ (found BUFFER, requires Package)

dsdt.dsl 16170: Name (_PLD, Buffer (0x10)
Error 4105 - Invalid object type for reserved name ^ (found BUFFER, requires Package)

dsdt.dsl 16191: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 16204: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 16214: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 16224: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 16260: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 16277: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 16289: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 16319: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 16352: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 16456: Method (_EJX, 1, NotSerialized)
Warning 1130 - Unknown reserved name ^ (_EJX)

dsdt.dsl 16888: Store (Package (0x22)
Remark 5063 - ^ Initializer list shorter than declared package length

ASL Input: dsdt.dsl - 17311 lines, 608228 bytes, 7718 keywords
Hex Dump: dsdt.hex - 649024 bytes

Compilation complete. 10 Errors, 19 Warnings, 8 Remarks, 2068 Optimizations

THX in advance for any ideas - any help is welcome.

One option to try is to navigate to:

  • Configure Desktop
  • Shortcuts and Gestures
  • Global Keyboard Shortcuts
  • KDE Component - select KDE Daemon

Next to Increase screen brightness and decrease brightness choose “Custom”. Click on “NONE” and press the function keys that you desire.
Click on the Apply button to enable the key selections.

Hi Romanator, thank You very much for your ultrafast reply :slight_smile:
I didnt even know this possibilitiy n KDE exist, although im a SuSE addict since SuSE 4.3 in 1996 (these days fvwm was the standard window manager, light years away from KDE in usability, but **** fast).

When I try to configure a custom Key Shortcut (ie F7 for brightness down) KDE daemon reports that the key is already conflicting with “brightness down”, same for F8 brightness up. As I mentioned , the backlighthelper display bars appear when pressing F7 / F8, move in the right direction, but nothing changes- I think the problem is more Kernel - Hardware (BIOS / Firmware) related.

Nevertheless, I learned something new about KDE, (cant live without it) - thank you - perhaps i should file a bug on http://bugzilla.novell.com/

When I try to configure a custom Key Shortcut (ie F7 for brightness down) KDE daemon reports that the key is already conflicting with “brightness down”, same for F8 brightness up. As I mentioned , the backlighthelper display bars appear when pressing F7 / F8, move in the right direction, but nothing changes- I think the problem is more Kernel - Hardware (BIOS / Firmware) related.

I’m experiencing a similar kernel regression with my HP laptop. The F9 and F10 keys no longer control the brightness. For now, I have defined (via KDE) the CTRL-F9 and CTRL-F10 keys to do this job.

Another idea.

You can try the Custom Shortcuts. Click on Edit → Global Shortcut → Command / URL. The trigger is your shortcut and the command url is the echo [number] /directory pointing to your screen.

I would submit a bug report with Bugzilla. They may provide an alternate way of using the “echo” command to increase or reduce the brightness and adding a configuration file to /etc/modprobe.d.

In the meantime, try downloading a different kernel from the stable repository here.

I found a lot of information via google about using “echo” which can help you resolve your problem.

Check outthis link.

I copied this from another post in which the user has a Lenovo Thinkpad. However, this could be very helpful.

For brightness control with laptop mode add the following to the file /etc/laptop-mode/conf.d/lcd-brightness.conf

# Commands to execute to set the brightness on your LCD
#
BATT_BRIGHTNESS_COMMAND="echo 13"
LM_AC_BRIGHTNESS_COMMAND="echo 15"
NOLM_AC_BRIGHTNESS_COMMAND="echo 15"
BRIGHTNESS_OUTPUT="/sys/class/backlight/acpi_video0/brightness"

Note

Check the directory path points to the correct directory. Restart your laptop.

@ loewe19](http://forums.opensuse.org/members/loewe19.html)
Are you running an open or proprietary driver? :expressionless:

Hi deano_ferrari, thank you for this very useful hint! I tried to define via KDE F10 / F11, the result was that the brightness bars of the backlighthelper appear and move ok, but nothing happens, the brightness stays at max.level. Kind regards, thank you for helping me :slight_smile:

Does the xbacklight command work for you? Try

xbacklight -dec 20
xbacklight -inc 10
xbacklight -set 100

Are you seeing any changes?

If that doesn’t work, we probably need to know a bit more about your graphics hardware and driver in use

/usr/sbin/hwinfo --gfxcard

Hi Romanator, (and also deano_ferrari and PiElle) I really appreciate your efforts in helping me! Can´t believe there are so many answers to my post. THANK YOU !

I think we are right on the way to solve the problem and get this machine working 24/7 with Opensuse!
I tried Gentoo, tried Ubuntu but Opensuse is the BEST :slight_smile:

The most funny thing: I just noticed when the GRUB Boot Screen for choosing OS apperars, I can adjust brightness normally with F7 / F8. Seems at this time BIOS still has full control over the Fn keys.

Nevertheless- when booting into opensuse it is set to max.

The next few days I will try out all your VERY useful hints.
I didnt know theres a file /etc/laptop-mode/conf.d/lcd-brightness.conf
I was also trying to adjust brightness via commandline and teh echo command a few days ago bit I didn`t succeed. Perhaps I will, when I modify this file.

The idea of using a different or newer kernel is also great, but for me somehow challenging ! I must admit, the last time I built and installed my own kernel was in the year 2005 when I tried to configure an exotic TV card.
I will post you the result when I manage to do this again- I think you have more experience, I first have to do a bit training (and install gcc , the kernel sources, libs, read the docu etc…)

I think its only a matter of how the ACPI tables an memory ranges of the Fn key are interpreted by the kernel- and there are different approaches to do so. The hardest one would be manually correct the ACPI Tables and then load the modified DSDT as mentioned above - but somehow too difficult for me.

I will post the results as soon as possible - in the meanwhile thank you all for your very useful and qualified help!

@PiElle I am running the standard Open Source Driver that comes with the Opensuse 12.2 64 kernel (maybe radeon?)

regards Thomas

Hi deano_ferrari, thank you very much for your help, I tried as you suggested:

linux-i2ox:/home/thomas # /usr/sbin/hwinfo --gfxcard
09: PCI 01.0: 0300 VGA compatible controller (VGA)
[Created at pci.319]
Unique ID: vSkL.lZk+Pk0GzLD
SysFS ID: /devices/pci0000:00/0000:00:01.0
SysFS BusID: 0000:00:01.0
Hardware Class: graphics card
Model: “ATI VGA compatible controller”
Vendor: pci 0x1002 “ATI Technologies Inc”
Device: pci 0x9903
SubVendor: pci 0x17aa “Lenovo”
SubDevice: pci 0x5100
Memory Range: 0xe0000000-0xefffffff (ro,non-prefetchable)
I/O Ports: 0x2000-0x20ff (rw)
Memory Range: 0xf0300000-0xf033ffff (rw,non-prefetchable)
IRQ: 17 (11949 events)
I/O Ports: 0x3c0-0x3df (rw)
Module Alias: “pci:v00001002d00009903sv000017AAsd00005100bc03sc00i00”
Driver Info #0:
Driver Status: radeon is active
Driver Activation Cmd: “modprobe radeon”
Config Status: cfg=no, avail=yes, need=no, active=unknown

I think this really seems to be a problem how the kernel interprets the ACPI Table memory ranges for the Fn Keys.

I really appreciate your very useful an qualified help in this forum, thank you VERY MUCH. I will also try out the suggestions of romanator :slight_smile: I think we are right on the way to get this machine working 24/7 with Opensuse.

Kind regards, Thomas

Your issue reads like this fedora thread:

https://lists.fedoraproject.org/pipermail/kde/2012-March/011183.html

where the following boot parameter was required

acpi_backlight=vendor

I’m not sure whether his is all there will be to it, or even if it is applicable to your situation, but you could give it a go.

If you’re using grub2, it needs to be added to /etc/default/grub as part of the ‘GRUB_CMDLINE_LINUX_DEFAULT="…’ entry. (This will require editing with root privileges.)

Then

sudo /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg

and reboot.

Follow Up

I would try deano_ferrari’s solution first. Then try mine out.

In reference to the laptop mode configuration file, make sure that you install the “laptop-mode-tools” package. Click on this link for reference.

Laptop Mode Tools is a laptop power saving package for Linux systems. It allows you to extend the battery life of your laptop, in several ways. It is the primary way to enable the Laptop Mode feature of the Linux kernel, which lets your hard drive spin down. In addition, it allows you to tweak a number of other power-related settings using a simple configuration file.

A number of people have found this package very useful.

Good Luck!

I guess your ThinkPad model is too new for ThinkWiki.org, but they have this page on How to get special keys to work. You may already be aware of the site and possibly that page. I just managed to avoid having to delve into that when thankfully support for my sl510 arrived in thinkpad_acpi driver a few years back, although some keys still don’t work (they do on W7, of course). It looks a bit of a nightmare, so apologies if it’s not appropriate for you. :slight_smile:

Yeah. ThinkWiki really needs to be updated. Since HAL is no longer used, the kernel developers have allowed the user to use sysfs with userspace to get the keys working.
It’s figuring them out. Using xmodmap is a start.

There is a package called “hotkeys” that addresses those extra keys for Internet/Multimedia and so on.

Right here. software.opensuse.org:

Hi deano_ferrari, I even tried out "acpi_os_name=“Microsoft Windows XP” (and 2000) as grub2 boot parameter>:( in desparation, this was a suggested solution in an Ubuntu Forum. No success. acpi_backlight=vendor also didn`t work. Anyhow, thanks a lot :slight_smile:

I just re-read this article, as mentioned above:

DSDT editing: Put an end to your ACPI woes

written by a very intelligent engineer from India, if you read it, I think thats the snag!
Seems I first have to gain access to the backlight interface /sys/class/backlight/acpi_video0 per commandline, otherwise
no other control software will be able change the values. The kernel first has to recognize there`s a backlight interface.

My serious problem now ist:
I cant debug my decompiled ACPI Tables from BIOS, although I tried, and put a modified DSDT to work. Perhaps in a few months (or years, I´m no student anymore, and no programmer)
I am quite sure the pre-installed Win7 has certain mumble to handle the somehow buggy / or “unconventional” BIOS,
otherwise the Brightness keys would not work in there.

As consused already mentioned this Laptop model simply seems too new

Right now I think I have two (or three?) alternatives- I have to face the thruth:
#1 wait for BIOS upate from Lenovo (this may take a long time, eventually they can provide a BIOS without bugs?)
#2 try a newer kernel (as you already suggested- realistic)
#3 by another lap with Intel chipset (boring and I dont like this idea but its there, but this lap is far beyond my old i3 Satellite, I want to keep it!)

I will report my progesses as soon as possible. First I will give laptop-mode-tools a try.
In the meantime THANK YOU ALL for your kind support.

The laptop-mode-tools configuration file provides preset numbers for brightness that your keys can access.

However using the echo command will adjust the screen brightness. If it doesn’t work you may have to disable the power management in Configure Desktop when testing.
Try disabling first and rebooting. If the keys work enable the power management.

I also recommend googling “echo scripts that adjust screen brightness”.

Hello consused, thanks a lot for this hint, the site really is a bit of a nightmare, but by reading this I get valuable information how software to hardware controls in Linux work at all! Very nice :slight_smile: BTW work is in progress I’ll soon write a short update.