Bug 41018 - evdev doesn't enumerate input devices at xserver startup.
Summary: evdev doesn't enumerate input devices at xserver startup.
Status: RESOLVED NOTOURBUG
Alias: None
Product: xorg
Classification: Unclassified
Component: Input/evdev (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium blocker
Assignee: Peter Hutterer
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-19 11:12 UTC by Pawel Sikora
Modified: 2011-09-22 05:30 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
installed rpms. (26.47 KB, text/plain)
2011-09-19 11:12 UTC, Pawel Sikora
no flags Details
xserver configuration (2.25 KB, text/plain)
2011-09-19 23:25 UTC, Pawel Sikora
no flags Details
xserver log (22.03 KB, text/plain)
2011-09-19 23:25 UTC, Pawel Sikora
no flags Details
dmesg log (61.43 KB, text/plain)
2011-09-19 23:26 UTC, Pawel Sikora
no flags Details
'udevadm info --export-db'before xserver startup. (174.87 KB, text/plain)
2011-09-20 23:59 UTC, Pawel Sikora
no flags Details
'udevadm info --export-db' with xserver online (and dead inputs). (180.25 KB, text/plain)
2011-09-21 00:00 UTC, Pawel Sikora
no flags Details

Description Pawel Sikora 2011-09-19 11:12:00 UTC
Created attachment 51368 [details]
installed rpms.

hi,

i've recently installed my favourite linux distro with fresh rpm package set
on new laptop but i've noticed a critical blocker problem with xserver/evdev.
after console login the keyboard/ps2 works fine but the xserver startup
gives me a dead kdm login dialog - keyboard and touchpad don't work.

i've worked around this problem by connecting an usb keayboard/mouse
and adding 'rmmod/modprobe usbhid' to kdm startup scrupt. i'm also sure
that this is not a kde problem because the purisitic twm behaves in the same way.

afaics in the xorg.log the evdev simply doesn't enumerate input devices
at xserver startup. please tell me how can i debug this problem?
Comment 1 Peter Hutterer 2011-09-19 15:11:39 UTC
fwiw, evdev doesn't enumerate devices. without an Xorg.log + xorg.conf it's hard to see what's going on but my guess is that you either have a configuration error or the driver/server ABI mismatch. the latter can be fixed by rebuilding the drivers.
Comment 2 Pawel Sikora 2011-09-19 23:25:12 UTC
Created attachment 51383 [details]
xserver configuration
Comment 3 Pawel Sikora 2011-09-19 23:25:38 UTC
Created attachment 51384 [details]
xserver log
Comment 4 Pawel Sikora 2011-09-19 23:26:02 UTC
Created attachment 51385 [details]
dmesg log
Comment 5 Pawel Sikora 2011-09-20 01:02:58 UTC
(In reply to comment #1)
> fwiw, evdev doesn't enumerate devices. without an Xorg.log + xorg.conf it's
> hard to see what's going on but my guess is that you either have a
> configuration error or the driver/server ABI mismatch. the latter can be fixed
> by rebuilding the drivers.

as you can see in dmesg log all devices (ps2+usb) were detected
and work fine in console mode. the xserver was started at ~242nd second
with dead inputs. at ~253rd second the rmmod/modprobe-usbhid hack
was applied and xserver discovered external usb inputs.
Comment 6 Peter Hutterer 2011-09-20 14:24:58 UTC
You've got two devices show up in your log, a logitech mouse and an MS keyboard. do they not work? is that the first log or the second log (after the rmmod)?
Comment 7 Peter Hutterer 2011-09-20 14:25:21 UTC
also, what does udevadm info --export-db say when the devices aren't working?
Comment 8 Pawel Sikora 2011-09-20 23:58:37 UTC
(In reply to comment #6)
> You've got two devices show up in your log, a logitech mouse and an MS
> keyboard. do they not work? is that the first log or the second log (after the
> rmmod)?

none of these 4 inputs (builtin keyboard/touchpad, external usb kbd/mouse)
work after xserver startup. only usbhid reload after xserver startup brings
usb input devices (ms kbd + logitech mouse) to live.
Comment 9 Pawel Sikora 2011-09-20 23:59:48 UTC
Created attachment 51445 [details]
'udevadm info --export-db'before xserver startup.
Comment 10 Pawel Sikora 2011-09-21 00:00:55 UTC
Created attachment 51446 [details]
'udevadm info --export-db' with xserver online (and dead inputs).
Comment 11 Peter Hutterer 2011-09-21 15:55:52 UTC
this is a udev setup bug. the X server relies on /lib/udev/input_id to mark all input devices with the right ID_INPUT, ID_INPUT_TABLET, ID_INPUT_KEY, etc. In your case this doesn't show up so the X server thinks there are no input devices.

for example, compare the Power Button virtual device, they should be identical (aside from the device numbers) but in your output the ID_INPUT* parts are missing.

P: /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
E: UDEV_LOG=3
E: DEVPATH=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
E: PRODUCT=19/0/1/0
E: NAME="Power Button"
E: PHYS="LNXPWRBN/button/input0"
E: PROP=0
E: EV=3
E: KEY=10000000000000 0
E: MODALIAS=input:b0019v0000p0001e0000-e0,1,k74,ramlsfw
E: SUBSYSTEM=input

P: /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2/event2
N: input/event2
E: UDEV_LOG=3
E: DEVPATH=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2/event2
E: MAJOR=13
E: MINOR=66
E: DEVNAME=/dev/input/event2
E: SUBSYSTEM=input
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: DMI_VENDOR=LENOVO


This is a bug but I can't say whether your udev version is broken or if it's a local setup issue. either way, it's not something we can fix in evdev, sorry.
Comment 12 Daniel Stone 2011-09-22 05:20:40 UTC
Looks like it could just be a missing 'udevadm trigger' call somewhere
in the boot process?
Comment 13 Pawel Sikora 2011-09-22 05:30:18 UTC
(In reply to comment #12)
> Looks like it could just be a missing 'udevadm trigger' call somewhere
> in the boot process?

rc.sysinit needs `mount -n -t tmpfs run /run` for udev data.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.