[PATCH libevdev 0/8] libevdev backwards-compatibility

Peter Hutterer peter.hutterer at who-t.net
Mon Oct 14 14:13:20 PDT 2013


On 14/10/13 22:25 , Gaetan Nadon wrote:
> On 13-10-14 02:14 AM, Peter Hutterer wrote:
>> libevdev fails to build or run on older kernels. This set of patches enables libevdev to build on
>> RHEL6 and anything later (I suspect). the runtime behaviour changes depending on the kernel but is
>> largely modelled on what makes sense.
>>
>> Cheers,
>>    Peter
>> _______________________________________________
>> Input-tools mailing list
>> Input-tools at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/input-tools
>>
>
> I have applied the patches and ran "sudo make check":
>
>     Making check in test
>     make  check-TESTS check-local
>     Running suite(s): libevdev_has_event tests
>       libevdev event tests
>       libevdev init tests
>     libevdev error in libevdev_change_fd: BUG: device not initialized.
>     call libevdev_set_fd() first
>     libevdev error in libevdev_set_fd: BUG: device already initialized.
>     libevdev error in libevdev_grab: BUG: invalid grab parameter 0
>     libevdev error in libevdev_grab: BUG: invalid grab parameter 0x1
>       Event queue
>       Event names
>       libevdev uinput device tests
>     libevdev error in libevdev_uinput_create_from_device: BUG: Invalid fd -1
>     93%: Checks: 89, Failures: 5, Errors: 1
>     test-libevdev-has-event.c:144:E:event codes:test_event_codes:0:
>     (after this point) Test timeout expired

this is weird. you're not the first to see a timeout, but no-one has 
ever tried debugging this why it even happens.

>     test-libevdev-has-event.c:372:F:multitouch
>     info:test_slot_init_value:0: Assertion 'libevdev_get_slot_value(dev,
>     0, 0x35)==100' failed: libevdev_get_slot_value(dev, 0, 0x35)==0,
>     100==100

expected, you don't have EVIOCGMTSLOTS

>     test-libevdev-events.c:409:F:SYN_DROPPED deltas:test_syn_delta_mt:0:
>     Assertion 'rc==LIBEVDEV_READ_STATUS_SYNC' failed: rc==-22,
>     LIBEVDEV_READ_STATUS_SYNC==1

same as above

>     test-libevdev-init.c:62:F:device init:test_init_from_invalid_fd:0:
>     Assertion 'rc==-25' failed: rc==-22, -25==-25

that shouldn't happen, I think. what's the errno 22? (try printf 
strerror(22))

>     test-libevdev-init.c:286:F:clock id:test_set_clock_id:0: Assertion
>     'rc==0' failed: rc==-22, 0==0
>     test-libevdev-init.c:326:F:clock id:test_clock_id_events:0:
>     Assertion 'rc==0' failed: rc==-22, 0==0

both expected, you don't have EVIOCSCLOCKID

>     FAIL: test-libevdev
>     ==================
>     1 of 1 test failed
>     ==================
>     make[2]: *** [check-TESTS] Error 1
>     make[1]: *** [check-am] Error 2
>     make: *** [check-recursive] Error 1
>
> Linux memsize 3.2.0-54-generic #82-Ubuntu SMP Tue Sep 10 20:08:42 UTC
> 2013 x86_64 x86_64 x86_64 GNU/Linux
>
> In the docs, it says the tests create lots of X devices. How can I
> see/remove those?

they're created while you run the tests and disappear as quickly again 
so you don't need to remove them. They're not X devices technically, 
just uinput devices. But the default xorg.conf snippets mean that the 
server will pick them up as they appear and initialise a device for 
them. Most of them only exist for a few milliseconds though. If you 
check the xorg.log you should see all of them.

Cheers,
   Peter


More information about the Input-tools mailing list