Red Hat Bugzilla – Bug 192345
i8kbuttons fails on ioctl call
Last modified: 2007-11-30 17:11:33 EST
Description of problem:
I have a Dell Latitude D610 laptop, which has the volume buttons nominally
controlled by the i8kbuttons binary in the i8kutils package. However,
i8kbuttons fails at boot time, nor can it be started later. Running with strace
shows this to be the failing step:
ioctl(3, I8K_FN_STATUS, 0xbfac0404) = -1 EINVAL (Invalid argument)
The i8k kernel module is successfully loaded, as witnessed by lsmod:
i8k 6233 0
Just to be clear here, I verified that the i8k module was loaded BEFORE
attempting to start i8kbuttons. The contents of /proc/i8k are:
1.0 A05 72JDS81 36 -22 1 27660 68940 -1 -22
Version-Release number of selected component (if applicable):
Always, on my hardware
Steps to Reproduce:
1. Install i8kutils on a Dell Latitude D610
2. Watch for a failed message from /etc/rc.d/init.d/i8kbuttons at bootup
i8kbuttons fails on an ioctl call
i8kbuttons should run, since I do have the volume control buttons it controls
This problem has been reported to gentoo also, but with no resolution as yet:
It has also been discussed briefly on linux.debian.laptop:
Have you tried using the "System" -> "Preferences" -> "Keyboard Preferences"
utility that GNOME offers directly? It is quite possible that the i8kbuttons is
only needed on older Dell laptops : I had an Inspiron 8000 where it was needed
to get the buttons to do something, but on a newer Inspiron 8600 (the D610 is
even newer) the special buttons seem to send normal key codes properly by default.
Sure enough. It looks like the "inspiron" keyboard layout is in fact the
closest to what I actually have on this Latitude. Thanks for the tip.
OK, then what I'll do it simply update the init script in order to have it
disabled by default, since it doesn't make sense for all users who install the
package to have it running. It's only confusing as you report shows!
I've just submitted a build in Extras development of a new package which
contains quite a few enhancements. By default it now only loads the i8k kernel
module (required to get the service tag and control fans), and editing an "i8k"
file in /etc/sysconfig/ is required to get the i8kbuttons daemon to run too.
Should get things working on modern hardware and be less confusing to users.