Broken evdev driver in dapper

Bug #40153 reported by Pär Lindfors
12
Affects Status Importance Assigned to Milestone
xserver-xorg-input-evdev (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

The evdev driver that is currently in Dapper is a huge regression compared to Breezy. Breezy uses patches (053_lnx_evdev.diff, 054_lnx_evdev_mouse.diff, 055_lnx_evdev_keyboard.diff) that adds a evdev protocol to the kbd driver.

The worst thing is that the driver in Dapper don't support XKB at all. This means that you can only use us keyboard layout and applications like setxkbmap segfaults.

The second worst thing is that you have to specify the event device (like /dev/input/event0) to use. This means that if you for instance re-arrange your usb devices so the kernel numbers them differently the configuration will break. With the old driver you could specify device with either Name or Phys from /proc/bus/input/devices.

In the freedesktop.org CVS driver/xf86-input-evdev has been replaced with a rewritten version, that use the same code as the old lnx_evdev-patches (see https://bugs.freedesktop.org/show_bug.cgi?id=5696 ). This new version compiles fine on Dapper, supports XKB, specifying devices with Name/Phys etc.

If possible I think the CVS version should replace the version currently in Dapper as it is a huge improvement and also contains all the features that where in Breezy.

Revision history for this message
Chris (chrw) wrote :

Why not just release the version that came with breezy, including patches and all? Obviously the current evdev is a regression (I doesn't even work for me, where the 'older' one did) and breezy's evdev had time enough to mature - please fix evdev.

Revision history for this message
Markus Schlager (m-slg) wrote :

Even worse, running dapper-beta on a four-headed multiseat-system with several usb-input-devices, the kernel numbers the event- and corresponding mouse-devices differently, every time the system reboots. This was not a problem with Dapper Flight5.

Revision history for this message
Fabio Massimo Di Nitto (fabbione) wrote :

thanks for the report guys.. working on it as we speak...

Fabio

Changed in xserver-xorg-input-evdev:
status: Unconfirmed → In Progress
Revision history for this message
Fabio Massimo Di Nitto (fabbione) wrote :

Ok guys, there is a new evdev package here:

http://people.ubuntu.com/~fabbione/xserver-xorg-input-evdev_1.1.2-0ubuntu1_i386.deb

made out of the last CVS snapshot.

I urge you to test it and come back to me ASAP.

Also note that we cannot port forward the old patches because they do not apply anylonger to X 7.0.0 and the changes are very very deep.

Fabio

Changed in xserver-xorg-input-evdev:
status: In Progress → Needs Info
Revision history for this message
Markus Schlager (m-slg) wrote : Re: [Bug 40153] Re: Broken evdev driver in dapper

> Ok guys, there is a new evdev package here:
>
> http://people.ubuntu.com/~fabbione/xserver-xorg-input-evdev_1.1.2-0ubuntu1_i386.deb
>
> made out of the last CVS snapshot.
>

Hi Fabio,

'Option "Phys"' for the input devices in xorg.conf works fine.

Unfortunately there's now an new problem with my multiseat-setup: Whenever
a user logs out from any of the screens, the X-Servers of _three_ out of
four screens get killed.

(By the way: differently from breezy, with dapper I need the option
'AlwaysRestartServer=true' set in gdm.conf in order to have login-screens
show up again after logout.)

German xkb-layout still is causing some problems: As an improvement
compared to breezy, the <>|-key is working, but now Alt_left, Alt_right,
the arrow-keys, Pg_Up/Down, Home, End, Ins, Del, Print are messed up. The
NumPad works fine.

Markus

Revision history for this message
Pär Lindfors (paran) wrote : Re: [Bug 40153] Re: [Bug 40153] Re: Broken evdev driver in dapper
Download full text (3.5 KiB)

On Tuesday 02 May 2006 09:18, Fabio Massimo Di Nitto wrote:
> Ok guys, there is a new evdev package here:

Nice work Fabio!

As I said in the original report I already use the CVS version. I simply
checked it out from CVS on 2006-04-18 and built a custom package using the
debian directory in the Dapper xserver-xorg-input-evdev source package. So
even though I am not using your package I can at least tell you that the
driver works fine together with the X-server in dapper for me. I will test
your package ASAP, but I am very busy this week and probably won't have time
until the weekend.

I run a multi user setup with two X-servers. Both keyboards use PS2 (The
kernel fully supports plugging a second keyboard into the "mouse port") and
both mice use USB. I specify the devices using Option "Name". Relevant parts
of my xorg.conf is at the end of this mail.

On Wednesday 03 May 2006 17:16, Markus Schlager wrote:
> Unfortunately there's now an new problem with my multiseat-setup: Whenever
> a user logs out from any of the screens, the X-Servers of _three_ out of
> four screens get killed.

This bug report is perhaps not the best place for discussing this, but make
sure you have 'Option "PciOsConfig" "1"' in the ServerFlags section
and 'Option "SingleCard" "true"' in each of your ServerLayout sections, that
solved many stability issues with my setup.

> German xkb-layout still is causing some problems: As an improvement
> compared to breezy, the <>|-key is working, but now Alt_left, Alt_right,
> the arrow-keys, Pg_Up/Down, Home, End, Ins, Del, Print are messed up. The
> NumPad works fine.

I had the same problem with special keys until I realized that with the CVS
driver you need to specify XkbModel as "evdev" (see my xorg.conf below for
details).

Using this everything works except the "less greater bar"-key on my Swedish
pc105 keyboard. For that a line with "<LSGT> = 94;" is needed
in /etc/X11/xkb/keycodes. That patch is submitted and accepted in upstream
CVS. If the CVS version of evdev makes it into Dapper as I hope it does, then
this patch should also be applied. I will submit a bug against
xkeyboard-config regarding this.

regards
Pär

xorg.conf:
### INPUT ############################################################
Section "InputDevice"
        Identifier "ps2-kbd"
        Driver "evdev"
        Option "CoreKeyboard"
        Option "Name" "AT Translated Set 2 keyboard"
        Option "XkbRules" "xorg"
        Option "XkbModel" "evdev"
        Option "XkbLayout" "se"
EndSection

Section "InputDevice"
        Identifier "ps2-aux"
        Driver "evdev"
        Option "CoreKeyboard"
        Option "Name" "AT Raw Set 2 keyboard"
        Option "XkbRules" "xorg"
        Option "XkbModel" "evdev"
        Option "XkbLayout" "se"
EndSection

Section "InputDevice"
        Identifier "LogitechMouse"
        Driver "evdev"
        Option "CorePointer"
        Option "SendCoreEvents" "true"
        Option "Name" ...

Read more...

Revision history for this message
Soewono Effendi (seffendi) wrote :

hi all,

I'm using ubuntu- and kubuntu- dapper-beta2 to provide a multi-seat X11 powered by VServer, which is currently shown at http://www.linuxtag.org/2006/en/home/news.html from 3-6 May 2006.
Everything works just fine :)
The biggest problem is still the evdev with German Keyboard Layout as reported by Markus.
I suspect that the keycode assignment in /etc/X11/xkb/keycodes/evdev might need some "reworked". I'm just not sure, which keycodes are TheRightOnes(tm).

BTW: Live pictures during the event can be seen at http://lt.deswahnsinns.de/index.html

(Sorry, this might be not the right place, but I just wanted to let you know that "something" really hot is happening around Ubuntu ... :)

cheers.....

Revision history for this message
Fabio Massimo Di Nitto (fabbione) wrote :

xserver-xorg-input-evdev (1:1.1.2-0ubuntu1) dapper; urgency=low

  * New upstream release. Exception granted by mdz.
  (Closes Ubuntu: #40153, #39878, #38493, #36081

 -- Fabio M. Di Nitto <email address hidden> Fri, 05 May 2006 06:55:47 +0200

Guys, for configuration changes introduced by the new upstream, you will have to cope on your own. I wish i could something about it, but i simply can't.

Fabio

Changed in xserver-xorg-input-evdev:
status: Needs Info → Fix Released
Revision history for this message
Markus Schlager (m-slg) wrote :
Download full text (7.5 KiB)

Hi Fabio,

German xkb-layout works perfectly now on a pc105-keyboard.
I'm using 'Option "XkbModel" "evdev"' as proposed by Pär, I only had to rewrite /etc/X11/xkb/keycodes/evdev, see below.

Markus

/etc/X11/xkb/keycodes/evdev:

// translation from evdev scancodes to something resembling xfree86 keycodes.

default xkb_keycodes "evdev" {
 minimum = 8;
 maximum = 255;

 <LSGT> = 94;

 <TLDE> = 49;
 <AE01> = 10;
 <AE02> = 11;
 <AE03> = 12;
 <AE04> = 13;
 <AE05> = 14;
 <AE06> = 15;
 <AE07> = 16;
 <AE08> = 17;
 <AE09> = 18;
 <AE10> = 19;
 <AE11> = 20;
 <AE12> = 21;
 <BKSP> = 22;

 <TAB> = 23;
 <AD01> = 24;
 <AD02> = 25;
 <AD03> = 26;
 <AD04> = 27;
 <AD05> = 28;
 <AD06> = 29;
 <AD07> = 30;
 <AD08> = 31;
 <AD09> = 32;
 <AD10> = 33;
 <AD11> = 34;
 <AD12> = 35;
 <BKSL> = 51;
 <RTRN> = 36;

 <CAPS> = 66;
 <AC01> = 38;
 <AC02> = 39;
 <AC03> = 40;
 <AC04> = 41;
 <AC05> = 42;
 <AC06> = 43;
 <AC07> = 44;
 <AC08> = 45;
 <AC09> = 46;
 <AC10> = 47;
 <AC11> = 48;

 <LFSH> = 50;
 <AB01> = 52;
 <AB02> = 53;
 <AB03> = 54;
 <AB04> = 55;
 <AB05> = 56;
 <AB06> = 57;
 <AB07> = 58;
 <AB08> = 59;
 <AB09> = 60;
 <AB10> = 61;
 <RTSH> = 62;

 <LALT> = 64;
 <LCTL> = 37;
 <SPCE> = 65;
 <RCTL> = 105;
 <RALT> = 108;
 // Microsoft keyboard extra keys
 <LWIN> = 133;
 <RWIN> = 134;
 <MENU> = 135;

 <ESC> = 9;
 <FK01> = 67;
 <FK02> = 68;
 <FK03> = 69;
 <FK04> = 70;
 <FK05> = 71;
 <FK06> = 72;
 <FK07> = 73;
 <FK08> = 74;
 <FK09> = 75;
 <FK10> = 76;
 <FK11> = 95;
 <FK12> = 96;

 <PRSC> = 107;
 // <SYRQ> = 107;
 <SCLK> = 78;
 <PAUS> = 127;
 // <BRK> = 419;

 <INS> = 118;
 <HOME> = 110;
 <PGUP> = 112;
 <DELE> = 119;
 <END> = 115;
 <PGDN> = 117;

 <UP> = 111;
 <LEFT> = 113;
 <DOWN> = 116;
 <RGHT> = 114;

 <NMLK> = 77;
 <KPDV> = 106;
 <KPMU> = 63;
 <KPSU> = 82;

 <KP7> = 79;
 <KP8> = 80;
 <KP9> = 81;
 <KPAD> = 86;

 <KP4> = 83;
 <KP5> = 84;
 <KP6> = 85;

 <KP1> = 87;
 <KP2> = 88;
 <KP3> = 89;
 <KPEN> = 104;

 <KP0> = 90;
 <KPDL> = 91;
 // <KPEQ> = 126;

 <FK13> = 191;
 <FK14> = 192;
 <FK15> = 193;
 <FK16> = 194;
 <FK17> = 195;
 // <KPDC> = 123;

 // Keys that are generated on Japanese keyboards

 // alias <HZTG> = <TLDE>; // Hankaku_Zenkaku toggle
 // <HZTG> = 85; // Hankaku/Zenkakau toggle
 // <HKTG> = 93; // Hiragana/Katakana toggle
 // <AB11> = 211; // backslash/underscore
 // <XFER> = 92; // Henkan
 // <NFER> = 94; // Muhenkan
 // <AE13> = 124; // Yen

 // Keys that are generated on Korean keyboards

 // alias <HNGL> = <FK16>; // Hangul Latin toggle
 // alias <HJCV> = <FK17>; // Hangul to Hanja conversion
 <HNGL> = 130;
 <HJCV> = 131;

 // Extended keys that may be generated on "Internet" keyboards.
 // These are not standardised, hence the meaningless names.
 // The entries commented out are never generated because the raw codes
 // in those positions are already used for well-defined keys.

 // evdev does standardize names for these though. comment them
 // all out for now.

 // alias <I01> = <XFER>;
 // <I02> = 130;
 // alias <I03> = <NFER>;
 // <I04> = 132;
 // alias ...

Read more...

Revision history for this message
Pär Lindfors (paran) wrote : Re: [Bug 40153] Re: Broken evdev driver in dapper

I run the new package from Dapper now. I notice no difference from my own
compiled version, in other words it works perfectly. Great work Fabio.

Markus: I reported the /etc/X11/xkb/keycodes/evdev problem, see Bug #42846

/Pär

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.