Thinkpad volume buttons not working

Asked by Jim on 2009-06-02

thinkpad T43 sound control buttons worked in Ibex, but not in Jackalope. Volume slider does not change, nor indicates mute. An onscreen speaker does not come up as it did in Ibex.

IBM Thinkpad T43 model 1871FU1.
512 MB
40 GB HDD

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu Edit question
Assignee:
No assignee Edit question
Solved by:
jari
Solved:
2009-06-04
Last query:
2009-06-04
Last reply:
2009-06-04
Jim (jim-wallace) said : #1

The buttons and indications worked with a default Ibex install. Does not work with a clean Jackalope install. The BIOS beeps occurs when the buttons are depressed, but nothing is indicated in the UI.

Do they generate events in xev (run it in na terminal / konsole)

If it does then you can simply jump into keyboard settings and assign the shortcuts there. If not you may need extra config

Can you please paste some of the xev outputs.

Jim (jim-wallace) said : #3

Xev did not present any events with the volume buttons or other Fn keys.

Jim (jim-wallace) said : #4

In 8.10, xev did present events for the volume keys.

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyGrab, detail NotifyAncestor

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyPointer

FocusIn event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 31, synthetic NO, window 0x0,
    keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
           0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyGrab, detail NotifyAncestor

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyPointer

FocusIn event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 31, synthetic NO, window 0x0,
    keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
           0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyGrab, detail NotifyAncestor

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyPointer

FocusIn event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 31, synthetic NO, window 0x0,
    keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
           0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyGrab, detail NotifyAncestor

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyPointer

FocusIn event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 31, synthetic NO, window 0x0,
    keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
           0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyGrab, detail NotifyAncestor

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyPointer

FocusIn event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 31, synthetic NO, window 0x0,
    keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
           0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyGrab, detail NotifyAncestor

FocusOut event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyPointer

FocusIn event, serial 31, synthetic NO, window 0x3200001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 31, synthetic NO, window 0x0,
    keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
           0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Best jari (jaript) said : #5

Funny, I had that problem with Intrepid but working out of the box in Jaunty. The following line fixed it for me in Intrepid, you could try if it does for you. Note that it doesn't survive reboots so if it works and you want to start using it, put it in rc.local or somewhere.

echo enable,0x00ffffff >/proc/acpi/ibm/hotkey

Oh, needs to be done as super user of course (sudo -i).

Jim (jim-wallace) said : #6

Thanks jari, that solved my question.

cirobr (ciro-rosa) said : #7

Hello,

Herewith I confirm operation of volume keys on Ubuntu Intrepid and earlier, but not on Jaunty, running on a T41.

Jari's fix worked out, although making it persistent to reboot has not.

Thanks in advance for providing detailed instructions.

Regards,

Ciro.

Jim (jim-wallace) said : #8

Using "sudo gedit etc/rc.local", open the rc.local file.

The file should end with "exit 0". Before the exit statement, add the "echo enable,0x00ffffff >/proc/acpi/ibm/hotkey" statement and save the file. The rc.local script file should be after every reboot.

This is what worked for me.

Don't use 'sudo gedit' as it is an incorrect use of sudo. Please use

gksudo gedit /etc/rc.local

(Jim also forgot the leading '/' as the etc folder is at the top of the file tree)

sudo is used for CLI apps ONLY, examples of these are:
nano, vi, apt-get, ln, cp, mv, rm

gksudo is for GUI apps, examples of this are:
nautilus, dolphin, gedit, leafpad, kate

Using sudo with GUI apps is WRONG and will damage file ownerships and permissions. sudo does not set up the environment correctly. sudo does work but it modifies files that are edited.

Please do not advise sudo gedit, or sudo with any GUI app.

Here is an example of exactly what will happen:

https://answers.launchpad.net/ubuntu/+source/azureus/+question/72151

Its realy annoying and can be avoided. Please read, understand and tell 2 friends, then tell them to tell 2 friends.

tscholl (tascholl) said : #10

Had the same problem with an upgrade to Ubuntu 9.04 and my T60.

echo enable,0x00ffffff >/proc/acpi/ibm/hotkey

fixed it as well.

Thanks

soro2005 (soro) said : #11

I believe that the correct line to echo should be

echo 0xffffffff > /proc/acpi/ibm/hotkey

It seems to do it for me, in any case (X32, Karmic Beta). The other line throws a kernel message. Reference:

http://www.kernel.org/doc/Documentation/laptops/thinkpad-acpi.txt