Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 180708 - x11-drivers/xf86-input-evdev ignoring some keycodes from kernel evdev
Summary: x11-drivers/xf86-input-evdev ignoring some keycodes from kernel evdev
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Piotr Jaroszyński (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-06-03 11:02 UTC by Joe H
Modified: 2008-01-08 23:36 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joe H 2007-06-03 11:02:34 UTC
I have a Logitech MX3200 keyboard.

When X is not loaded, running 'cat /dev/input/eventX', and pressing one of the extra/multimedia keys produces output on the console as expected.  Running with the evbug kernel module shows that an evdev event is being generated.

However, Xorg's evdev driver is unable to receive the event, and therefore the keys are all dead.  xev shows no activity when pressing the same buttons.

The evbug "Code" values in question are: 113, 114, 115, 136, 140, 163, 164, 165, 171.

An example of the evbug output while pressing some of these keys:

Jun  3 03:10:05 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 1, Code: 171, Value: 1
Jun  3 03:10:05 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 0, Code: 0, Value: 0
Jun  3 03:10:05 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 1, Code: 171, Value: 0
Jun  3 03:10:05 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 0, Code: 0, Value: 0
Jun  3 03:10:08 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 1, Code: 171, Value: 1
Jun  3 03:10:08 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 0, Code: 0, Value: 0
Jun  3 03:10:08 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 1, Code: 171, Value: 0
Jun  3 03:10:08 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 0, Code: 0, Value: 0
Jun  3 03:10:10 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 1, Code: 114, Value: 1
Jun  3 03:10:10 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 0, Code: 0, Value: 0
Jun  3 03:10:10 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 1, Code: 114, Value: 0
Jun  3 03:10:10 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 0, Code: 0, Value: 0
Jun  3 03:10:11 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 1, Code: 113, Value: 1
Jun  3 03:10:11 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 0, Code: 0, Value: 0
Jun  3 03:10:12 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 1, Code: 113, Value: 0
Jun  3 03:10:12 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 0, Code: 0, Value: 0
Jun  3 03:10:12 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 1, Code: 115, Value: 1
Jun  3 03:10:12 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 0, Code: 0, Value: 0
Jun  3 03:10:13 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 1, Code: 115, Value: 0
Jun  3 03:10:13 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, Type: 0, Code: 0, Value: 0

One difference that I noticed between the keys that are working properly, and the keys that are not, was a difference in the dev->evbit value.  All of the working keys seemed to have a value of 1179651, whereas the keys that are not being interpreted correctly by xorg's evdev have an evbit value of only 15.  For example:

Jun  3 03:21:41 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, EvBit: 15, Type: 1, Code: 163, Value: 1
Jun  3 03:21:41 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, EvBit: 15, Type: 0, Code: 0, Value: 0
Jun  3 03:21:41 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, EvBit: 15, Type: 1, Code: 163, Value: 0
Jun  3 03:21:41 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input1, EvBit: 15, Type: 0, Code: 0, Value: 0
Jun  3 03:21:45 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input0, EvBit: 1179651, Type: 1, Code: 37, Value: 1
Jun  3 03:21:45 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input0, EvBit: 1179651, Type: 0, Code: 0, Value: 0
Jun  3 03:21:45 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input0, EvBit: 1179651, Type: 1, Code: 37, Value: 0
Jun  3 03:21:45 madcoder64 evbug.c: Event. Dev: usb-0000:00:0a.1-1.4/input0, EvBit: 1179651, Type: 0, Code: 0, Value: 0

Another difference I found was in input.c, the value for keybit varied for the working and non-working keys:

Jun  3 03:44:25 madcoder64 EV_KEY: Code=126, Keybit=4294967294, key=0, value=0
Jun  3 03:44:51 madcoder64 EV_KEY: Code=171, Keybit=0, key=0, value=1

The 126 key code is a standard key that xorg's evdev driver understands.  The 171 keycode has a keybit of 0, and xorg is unable to understand that keycode.

Reproducible: Always

Actual Results:  
Keys are not interpreted by Xorg

Expected Results:  
Keys should be interpreted by Xorg

# emerge --info
Portage 2.1.2.7 (default-linux/amd64/2006.1, gcc-4.1.1, glibc-2.5-r2, 2.6.20-reiser4-r8 x86_64)
=================================================================
System uname: 2.6.20-reiser4-r8 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
Gentoo Base System release 1.12.9
Timestamp of tree: Fri, 01 Jun 2007 08:50:01 +0000
dev-java/java-config: 1.3.7, 2.0.32
dev-lang/python:     2.4.4-r4
dev-python/pycrypto: 2.0.1-r5
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.16.1-r3
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe -msse3"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/php/apache1-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-march=athlon64 -O2 -pipe -msse3"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.mirrors.easynews.com/linux/gentoo/ ftp://mirror.d atapipe.net/gentoo http://mirror.datapipe.net/gentoo"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/gnome-experimental /usr/local/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="X a52 aac acpi alsa amd64 ao apache2 apic avi berkdb bitmap-fonts bluetooth cairo cdr cli cracklib crypt css dbus dri dvb dvd dvdnav dvdr dvdread evdev fastbuild ffmpeg firefox firewire fortran freetype ftp gd gdbm gif glx gnome gpm gstreamer gtk gtk2 hal hddtemp iconv ieee1394 isdnlog java jpeg jpeg2k lame libg++ libnotify lm_sensors logrotate mad meanwhile midi mozdevelop mozilla mp3 mpeg msn mudflap ncurses nls nptl nptlonly nsplugin nvidia offensive opengl openmp pam pcntl pcre perl png posix ppds pppd prediction python readline reflection sensord session simplexml smp sockets spell spl sse3 ssl svg tcpd tk truetype truetype-fonts type1-fonts udev unicode usb userlocales v4l v4l2 visualization wmv xforms xine xml xml2 xorg xsl xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="evdev mouse keyboard kbd" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa vga glint"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

Kernel 2.6.20-reiser4-gentoo-sources
Xorg 7.2.0
Gnome 2.18.1
xf86-input-evdev 1.1.5-r1
Comment 1 Joshua Baergen (RETIRED) gentoo-dev 2007-06-05 23:18:44 UTC
Please report this issue upstream at https://bugs.freedesktop.org and put the link here.  Thanks!