I get the boot message: Loading module uinput ... udevd-work[1598]: kernel provided name 'uinput' and NAME 'input/uinput' disagree, please use SYMLINK+= or change the kernel to provide the proper name The modul uinput is loaded and I can't find any uinput entry under /etc/udev: root@moose:/root(50)# lsmod | grep uinput uinput 7035 0 root@moose:/root(51)# find /etc/udev/ -exec grep uinput {} \; -print Reproducible: Always root@moose:/root(52)# emerge --info Portage 2.1.8.3 (default/linux/amd64/10.0/desktop, gcc-4.4.3, glibc-2.11.1-r0, 2.6.34-gentoo x86_64) ================================================================= System uname: Linux-2.6.34-gentoo-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9650_@_3.00GHz-with-gentoo-2.0.1 Timestamp of tree: Thu, 27 May 2010 02:00:01 +0000 app-shells/bash: 4.1_p7 dev-java/java-config: 2.1.11 dev-lang/python: 2.6.5-r2, 3.1.2-r3 dev-python/pycrypto: 2.1.0 dev-util/cmake: 2.8.1-r1 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.1-r1 sys-apps/sandbox: 2.2 sys-devel/autoconf: 2.13, 2.65 sys-devel/automake: 1.7.9-r2, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.3-r2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.7b virtual/os-headers: 2.6.33 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA PUEL dlj-1.1 skype-eula googleearth" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" FFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer" GENTOO_MIRRORS="http://distfiles.gentoo.org" LDFLAGS="-Wl,-O1" LINGUAS="de fr" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/science /var/lib/layman/x11 /var/lib/layman/n4g /var/lib/layman/java-overlay /var/lib/layman/zugaina /var/lib/layman/sunrise /var/lib/layman/arcon /usr/local/portage /var/lib/cpan" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="64bit X Xaw3d a52 aac abiword acl acpi afs alsa amd64 ao apache2 applet archive arpack asf aspell assistant audacious audiofile automap automount bash-completion beagle berkdb blas blast bluetooth boo boost branding bzip2 cairo cdda cddb cdf cdio cdparanoia cdr cg cgi chm cli consolekit corba cracklib crypt css cuda cups curl cxx daap db dbase dbi dbm dbus designer devhelp device-mapper dga dia djvu doc dri ds2490 ds9097 ds9097u dts dv dvb dvd dvdr dvi eds elf emacs emboss empathy encode epiphany evo examples exif expat extensions extra extras fam fame ffmpeg fftw firefox fits flac fltk foomaticdb fortran fpx fts3 fuse galago garmin gd gdal gdbm gedit geoip geolocation geos gif gimp ginac git glade glib glitz gml gmp gmtsuppl gnokii gnome gnome-keyring gnome-print gnuplot gnutls gphoto2 gpm grammar graphics graphtft graphviz grass gs gsl gsm gstreamer gtk guile hal harness hddtemp hdf hdf5 hdri hlapi http httpd hvm iconv icq icu id3 ide imagemagick imap innodb inotify ipod ipv6 irda ithreads jabber jadetex java java5 java6 jbig john jpeg jpeg2k kdrive kerberos kpathsea kqemu kvm ladspa lame lapack latex latex3 lcms ldap lensfun libffi libgda libnotify libsamplerate lirc lm_sensors lua lzo mad mail maildir mailwrapper mapnik math matroska mikmod mkl mmx mmxext mng modules mono moonlight motif mozdevelop mozilla mp3 mp4 mpeg mpi mplayer mtp mudflap multilib musicbrainz mysql mysqli nautilus ncurses neXt netcdf netpbm network networking networkmanager nfs nls nntp nptl nptlonly nsplugin ntfs ntp numarray numeric nvidia obex objc ocaml octave odbc ogdi ogg ole openexr opengl openmp overview pae pam pango pcre pda pdf perl plotutils plugins png podcast policykit posix postgres postscript ppds pppd preview-latex proj projectx pstricks pulseaudio pymol python python-bindings qemu qhull qt3support qt4 quicktime readline reflection reiserfs rle romio rpc rrdcgi rrdtool samba sasl science sdl secure-delete semantic-desktop server session sip slang slp smbclient smp sms sndfile snmp soup sox speex spell spl sql sqlite sse sse2 ssl startup-notification stlport subtitles subversion suexec svg swig sysfs szip t1lib tcl tcpd tex tex4ht texmacs theora threads thunderbird tidy tiff tk tntc tools truetype udev unicode usb userlocales utempter v4l2 virtualbox vorbis wav webdav webdav-serf webkit wifi wmf wxwidgets x264 xattr xcb xemacs xext xine xml xmlreader xmlrpc xorg xpm xulrunner xv xvid xvmc zlib zvbi" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" CAMERAS="canon" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev " KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de fr" NETBEANS_MODULES="apisupport cnd dlight enterprise ergonomics groovy gsf harness ide identity j2ee java mobility nb php profiler ruby websvccommon xml" QEMU_SOFTMMU_TARGETS="i386 ppc ppc64 x86_64" QEMU_USER_TARGETS="arm i386 x86_64" RUBY_TARGETS="ruby18 jruby" USERLAND="GNU" VIDEO_CARDS="nv nvidia nouveau vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
There's also a rules dir under /lib/udev/rules.d/ Please locate the file that tries to set uinput and then determine to which package the file belongs with "qfile" (from app-portage/gentoolkit package).
Those are in /lib/udev/rules.d/30-kernel-compat.rules and seem to be Gentoo specific (see udev tarball).
> There's also a rules dir under /lib/udev/rules.d/ Ah, thanks. I found two files, which seems to belong to udev: root@moose:/root(10)# find /lib/udev -exec grep uinput {} \; -print KERNEL=="ts[0-9]*|uinput", MODE="0640" /lib/udev/rules.d/50-udev-default.rules KERNEL=="ts[0-9]*|uinput", NAME="input/%k" /lib/udev/rules.d/30-kernel-compat.rules root@moose:/root(11)# qfile -v 30-kernel-compat.rules 50-udev-default.rules sys-fs/udev-154 (/lib64/udev/rules.d/50-udev-default.rules) sys-fs/udev-154 (/lib64/udev/rules.d/30-kernel-compat.rules)
Like Rafał said definitely the fault of 30-kernel-compat.rules
I was guessing, what I could do and changed in /lib/udev/rules.d/30-kernel-compat.rules the line: KERNEL=="ts[0-9]*|uinput", NAME="input/%k" into KERNEL=="ts[0-9]*|uinput", SYMLINK+="input/%k" After that the kernel does not more complain. But does it make sense, what I did?
After upgrading udev to version 157 my change to /lib/udev/rules.d/30-kernel-compat.rules disappeared. Would it not be better to make the changes to /etc/udev/rules.d/60-thinkfinger.rules? It has now the contents: # SGS Thomson Microelectronics Fingerprint Reader ATTRS{idVendor}=="0483", ATTRS{idProduct}=="2016", SYMLINK+="input/thinkfinger-%k", MODE="0660", GROUP="fingerprint" # the also-needed uinput device KERNEL=="uinput", MODE="0660", GROUP="fingerprint" I tried to replace the last line by: KERNEL=="uinput", SYMLINK+="input/%k", MODE="0660", GROUP="fingerprint" But the error: udevd-work[1555]: kernel provided name 'uinput' and NAME 'input/uinput' disagree, please use SYMLINK+= ... did not vanish. I still get the additional error: udevd-work[1555]: device node /dev/input/uinput already exist, link to /dev/input/uinput' will not overwrite it. So I will again modify lib/udev/rules.d/30-kernel-compat.rules.
I'm getting the same error on udev-164. Can udev be patched to fix this rule with uinput until upstream gets around to fixing it? I'd like to note that I have uinput compiled into the kernel and not as a module.
Modifying /lib64/udev/rules.d/30-kernel-compat.rules also works for me as described above.
If you still have this bug. It is just udev complaining about the kernel not setting the path correctly itself. After an update to a recent kernel, udev should stop complaining. If there is a real need to use udev with older kernels and get rid of the warning we could patch it away.
I get the message: udevd-work[1598]: kernel provided name 'uinput' and NAME 'input/uinput' disagree, please use SYMLINK+= or change the kernel to provide the proper name also with the newest kernel: root@lynx:/root(3)# uname -a Linux lynx 2.6.38-gentoo #2 SMP Thu Mar 17 11:04:17 CET 2011 x86_64 Intel(R) Core(TM)2 Duo CPU T8300 @ 2.40GHz GenuineIntel GNU/Linux if I do not patch /lib/udev/rules.d/30-kernel-compat.rules. So I have to patch this file after each udev-update. Is there something wrong with my kernel config?
Created attachment 266877 [details] /usr/src/linux-2.6.38/.config
*** Bug 361609 has been marked as a duplicate of this bug. ***
still exists, sys-fs/udev-167 and gentoo-sources-2.6.38-r1. Please merge the fix. Thank you very much.
Ok, I did some searching, and as it seems udev upstream/kernel has dropped this "input/uinput" name and just changed to /dev/uinput. So we should just drop the rename rule for uinput. For compatibility we can make /dev/input/uinput a symlink.
Still not fixed: gentoo-sources-2.6.38-r4, udev-168-r1, uinput built-in
On a minor note: upstream has recently dropped many of those rules in git.
Fixed in udev-168-r2. But in udev-169 the rules are removed by upstream, as the kernel versions that needed it are no longer supported.