Bug#788498: udev: breaks the keyboard configuration

Vincent Lefevre vincent at vinc17.net
Fri Jun 12 13:14:12 BST 2015


On 2015-06-12 13:11:45 +0200, Martin Pitt wrote:
> Vincent Lefevre [2015-06-11 23:51 +0200]:
> > Severity: grave
> > Justification: renders package unusable
> 
> This bug is highly hardware specific and specific to local
> configuration, so it does only affect very few people. It also does
> not render udev completely useless, it just affects a few keys.

However, it might prevent the user from logging in if his password
has characters that are affected, and since what is typed is not
visible, this may be very confusing. I agree that this affects few
people, but this can have very bad consequences. Something should
be done to make sure that the user is aware of this change, early
enough if possible.

> > evdev:input:b0003v05ACp0221*
> >  KEYBOARD_KEY_70035=102nd       # Left to z: backslash bar
> >  KEYBOARD_KEY_70064=grave       # Left to 1: grave notsign
> >  KEYBOARD_KEY_70068=insert      # F13: Insert
> 
> Matching on the hardcoded bus ID 0003 seems unnecessary and it might
> even be wrong. Please check lsusb/lspci if that keyboard is really on
> the bus 3;

If it is not on bus ID 0003, this seems to be a documentation bug,
because /lib/udev/hwdb.d/60-keyboard.hwdb says:

#    This matches on the kernel modalias of the input-device, mainly:
#    ZZZZ is the bus-id (see /usr/include/linux/input.h BUS_*), YYYY, XXXX and
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

and /usr/include/linux/input.h contains:

#define BUS_PCI                 0x01
#define BUS_ISAPNP              0x02
#define BUS_USB                 0x03
#define BUS_HIL                 0x04
#define BUS_BLUETOOTH           0x05
#define BUS_VIRTUAL             0x06

#define BUS_ISA                 0x10
#define BUS_I8042               0x11
#define BUS_XTKBD               0x12
#define BUS_RS232               0x13
#define BUS_GAMEPORT            0x14
#define BUS_PARPORT             0x15
#define BUS_AMIGA               0x16
#define BUS_ADB                 0x17
#define BUS_I2C                 0x18
#define BUS_HOST                0x19
#define BUS_GSC                 0x1A
#define BUS_ATARI               0x1B
#define BUS_SPI                 0x1C

BTW, what about all the "b0003" in /lib/udev/hwdb.d/60-keyboard.hwdb?

[The tests below are done with udev 215-18, as I had to revert.]

lsusb gives for the keyboard:

Bus 008 Device 003: ID 05ac:0221 Apple, Inc. Aluminum Keyboard (ISO)

Does this mean that it is on bus ID 0008? But see below.

> But as this doesn't seem important, just try
> 
>    evdev:input:b*v05ACp0221*
> 
> instead?

I am not in front of the machine, but I'll try tonight.

If this works, using a wildcard for b should be suggested by the
documentation.

> If that still does not work, can you please check "cat
> /sys/class/input/event1/device/modalias" for the actual modalias of
> that device? (Replace event1 with the actual keyboard) That's the one
> that the rule above needs to match.

xvii:~> cat /sys/class/input/event1/device/name
Apple, Inc Apple Keyboard
xvii:~> cat /sys/class/input/event1/device/modalias
input:b0003v05ACp0221e0111-e0,1,4,11,14,k71,72,73,74,75,77,78,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87,88,89,8A,8C,8E,96,98,9E,9F,A1,A3,A4,A5,A6,AD,B0,B1,B2,B3,B4,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,CC,E0,E1,E3,E4,E5,E6,F0,1D0,ram4,l0,1,2,3,4,sfw

So, it seems to be on bus ID 0003.

-- 
Vincent Lefèvre <vincent at vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)





More information about the Pkg-systemd-maintainers mailing list