You are currently browsing the category archive for the ‘Hardware’ category.

Special prize for me the other morning. Now and again (think every couple of months) Phonon (the KDE device manager) would, upon login, pop up a small box telling me that Analogue Output Something Something Whatchamathing is no longer need, do you want me to just remove it? As you can tell the specifics escape me now, I blame a rather sleep deprived night leaving me in an unfit state to operate anything more complex than a spoon. Normally I say no, look at it suspiciously and swear to “do something about that later”. I had a 50/50 chance of purely by chance choosing the correct option… I didn’t.

ALSA was clearly working, I could hear audio on the command line with mplayer, but KDE specific apps were just not having it. So after a very long search, several chicken sacrifices and blind luck I stumbled upon a fix allowing you to reset your Phonon config. Apparently the device is still there, you’ve just removed it from your normal users login.

So…. As YOUR user (ie. not root) run the following commands:

rm $(kde4-config --localprefix)/cache-$(hostname)/libphonon/hardwaredatabase
kbuildsycoca4 --noincremental
rm -r ~/.config/kde.org
rm ~/.kde/share/config/phonondevicesrc
rm -r ~/.xine

Logout of KDE and back in and you should have working audio again. Alas I can’t remember where I got the fix so I hear-by claim this to not be my own work but perhaps useful to other dexterity challenged individuals.

WARNING: Before doing this bear in mind that if your laptop explodes in a cloud of molten plastic and silicon that I warned you and I take no responsibility… so don’t blame me ! 😉

A Friend of mine was running CentOS on a Thinkpad T43 (this should work on all though) and the fan was running but apparently not enough to stop the laptop dying after a hour or so. Sounds like a hardware issue, but nonetheless here’s a wee hack to get it to run in Maximum Fan Mode and so far has done the trick.

There is a kernel module in CentOS 5 called ibm_acpi, it needs to be loaded with experimental features, so easiest way to do this is to edit (or create, he didn’t have the file initially, so open in vi/nano etc.)

/etc/rc.modules

And add the line;

modprobe ibm_acpi experimental=1

This will load the module each time in experimental mode. Dont’ forget to

chmod +x /etc/rc.modules

If it didn’t exist as it’s a script that needs to be run so has to have execute permissions. Next use an editor to open up /etc/rc.local and add the following line to it;

echo 0x2F 0x40 > /proc/acpi/ibm/ecdump

When the laptop reboots it’ll load the ibm_acpi module creating a new directory in /proc containing special files, for instance the fan info file located at /proc/acpi/ibm/fan (you can cat this file and it’ll list the fans RPM and what mode it is in).

What the echo command we entered in ecdump does is switch the fan into “disengaged” mode, which basically tells it to not bother with auto sensing when it should turn on and run in full speed mode instead, which is around the 6000rpm mark as opposed to 3000rpm in normal mode. so in this new disengaged mode you’ll get something like this from using cat on /proc/acpi/ibm/fan

status:         disabled
speed:          6357
commands:       enable, disable

Yes it does say disabled but that’s it’s disengaged mode. If at any point you want to temporarily go back to auto just do the following;

echo 0x2F 0x80 > /proc/acpi/ibm/ecdump

And to permanently leave it in auto mode just remove that line from /etc/rc.local

Hope this helps someone out and it should be relativly simple to port to other distros. Bear in mind that after kernel 2.6.22 ibm_acpi no longer exists and totally new functionality has been built in a thinkpad module, but for more info best off looking on the thinkpad wiki site at:

ThinkPad Wiki

Edit To Add Other Mode Available:

#(fan off – DONT DO THIS !!)

echo 0x2F 0x00 > /proc/acpi/ibm/ecdump

#(low speed)

echo 0x2F 0x02 > /proc/acpi/ibm/ecdump

#(medium speed)

echo 0x2F 0x04 > /proc/acpi/ibm/ecdump

# (maximum speed)

echo 0x2F 0x07 > /proc/acpi/ibm/ecdump

#(automatic – default)

echo 0x2F 0x80 > /proc/acpi/ibm/ecdump

#(disengaged)

echo 0x2F 0x40 > /proc/acpi/ibm/ecdump