If you set the device in xorg.conf to a symbolic link, the device will not load correctly. For example: Section "InputDevice" Identifier "KeyboardProjector" Driver "evdev" Option "Device" "/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd" EndSection If I change it to /dev/input/even5 (which usb-Logitech... links to) it works fine. The logs simply report the device as "NULL" and the keyboard is non-functional. I have a multi-head and multi-foot setup (two keyboards, mice, etc) so my only option for the keyboard driver is the evdev driver. Since these usb devices can change their eventX numbers as I unplug and replug them, it would be nice to be able to use the links established by udev in the /dev/input/by-id directory. The mouse driver can properly negotiate symbolic links I am using the following versions: xf86-input-evdev-1.1.5-r2 xf86-input-keyboard-1.2.2 xf86-input-mouse-1.2.2-r1 emerge --info: # emerge --info Portage 2.1.3.16 (default-linux/amd64/2006.1/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.23-gentoo x86_64) ================================================================= System uname: 2.6.23-gentoo x86_64 Intel(R) Pentium(R) D CPU 2.80GHz Timestamp of tree: Thu, 01 Nov 2007 08:30:01 +0000 app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.1.2-r1 dev-lang/python: 2.3.6-r2, 2.4.4-r4, 2.5.1-r3 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.10-r5 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 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.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=nocona" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -march=nocona" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" 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/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac aalib acpi aim alsa amd64 audiofile berkdb bitmap-fonts browserplugin bzip2 cairo cdinstall cdparanoia cdr cli cracklib crypt cups dbus dri dts dvd dvdr dvdread eds emboss emul-linux-x86 encode exif fam ffmpeg firefox flac fortran ftp gdbm gif gnome gpm gstreamer gtk gtk2 gtkhtml hal iconv ipv6 isdnlog java jpeg kde ldap lirc log4j mad matroska midi mikmod mono mp3 mpeg msn mudflap mysql ncurses nls nptl nptlonly nsplugin nvidia offensive ogg oggvorbis opengl openmp pam pcre pda pdf perl png ppds pppd python qt3 qt4 quicktime readline reflection rtc samba sdl seamonkey session spell spl ssl svg tcpd theora truetype truetype-fonts type1-fonts unicode usb vcd vorbis wmf xinerama xml xorg xscreensaver xv xvid yahoo 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="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIRC_DEVICES="logitech" USERLAND="GNU" VIDEO_CARDS="nvidia trident" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS Reproducible: Always
man evdev Option "Device" "string" Specifies the device note through which the device can be accessed. At this time ONLY /dev/input/event<N>, where <N> is an integer, are matched against this this field. This option uses globbing. Please note that use of this option is strongly discouraged. NOTABUG, use something else to match your device.