AllowEmptyInput and HAL

Phil Endecott spam_from_xorg at chezphil.org
Tue May 5 10:58:21 PDT 2009


Still battling with this.  Help!  Some new details below.

Phil Endecott wrote:
> Phil Endecott wrote:
>> Daniel Stone wrote:
>>> Hi,
>>>
>>> On Tue, Apr 28, 2009 at 10:01:25PM +0100, Phil Endecott wrote:
>
>>>> I have a keyboard 
>>>> where every alternate keystroke produces the right letter and the 
>>>> others produce garbage (maybe top-bit-set characters?).
>>>
>>> Cool.  Could you please send xev output?
>>
>> Unfortunately this is hard as I cannot log in.  Presumably there is 
>> some way in which I can bypass xdm and cause X to start running and 
>> then start xev from another machine, or something.  I'll investigate.
>
> I started x using startx and I can now retype the following xev 
> output.  This is for press-release-press-release of the A key.  The 
> pattern then repeats and seems to be consistent with other keys:
>
> KeyPress event, serial 27, synthetic NO, window 0xa00001,
>      root 0x3e, subw 0, time 7372197, (78,77), root:(699,464),
>      state 0x5, keycode 38 (keysym 0x41, A), same_screen YES,
>      XLookupString gives 1 bytes: (01) ""
>      XmbLookupString gives 1 bytes: (01) ""
>      XFilterEvent returns: False
>
> KeyRelease event, serial 27, synthetic NO, window 0xa00001,
>      root 0x3e, subw 0, time 7372293, (78,77), root:(699,464),
>      state 0x5, keycode 38 (keysym 0x41, A), same_screen YES,
>      XLookupString gives 1 bytes: (01) ""
>
> KeyPress event, serial 27, synthetic NO, window 0xa00001,
>      root 0x3e, subw 0, time 7372549, (78,77), root:(699,464),
>      state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
>      XLookupString gives 1 bytes: (61) "a"
>      XmbLookupString gives 1 bytes: (61) "a"
>      XFilterEvent returns: False
>
> KeyRelease event, serial 27, synthetic NO, window 0xa00001,
>      root 0x3e, subw 0, time 7372621, (78,77), root:(699,464),
>      state 0x5, keycode 38 (keysym 0x41, A), same_screen YES,
>      XLookupString gives 1 bytes: (01) ""
>
> I then ran strace on X and looked at what it read from 
> /dev/input/event1 while I did the same thing.  Deciphering using 
> /usr/include/linux/input.h I see
>
> MSC SCAN 0407
> KEY A DOWN
> SYN
>
> MSC SCAN 0407
> KEY A UP
> SYN
>
> MSC SCAN 0407
> KEY A DOWN
> SYN
>
> MSC SCAN 0407
> KEY A UP
> SYN

I noticed that I get some additional output using startx that I don't 
see in the normal Xorg.log, perhaps due to stdout vs stderr (?); there 
are some xkbcomp errors about Level5 Shift and similar things.  This 
sounds like it could perhaps be related to the phantom control key that 
I'm getting.  I've put the output from "startx > startx.log 2>&1" here: 
http://chezphil.org/tmp/startx.log .  Any clues anyone?

I've also tried a few other keyboards.  I've tried installing the 
x11-input.fdi file as suggested by Carl Worth.  I've tried removing the 
kbd and mouse drivers so only evdev is left.  None of those changes anything.

I've also tried to see what's going on using gdb.  This isn't easy as 
the executables seem to be stripped.  What I can see is that I get only 
the expected call per key up or down event through as far as 
mieqEnqueue(), so there can't be extra ctrl key events injected before 
that point.  I then see four calls to ProcessOtherEvent() for one 
up-and-down, which I believe is perhaps due to the "master" and "slave" 
(I haven't tried to understand this).  I think I will need to build a 
non-stripped version to get any further in this direction.

Thanks for any advice.


Phil.






More information about the xorg mailing list