← Back to team overview

touch-packages team mailing list archive

[Bug 1361338] Re: [udev] changing hwdb requires calling udevadm control --reload

 

All of these steps are necessary:

- udevadm hwdb --update
- udevadm control --reload
- replug the keyboard or do a unbind-bind-cycle via sysfs

Not doing any one of them will not produce the intended effect.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1361338

Title:
  [udev] changing hwdb requires calling udevadm control --reload

Status in systemd package in Ubuntu:
  New

Bug description:
  I have a small gaming keyboard (Ideozon Fang) which has a terrible
  default keymapping that I want to fix. To do that, I need to change
  its default keymapping. But only for that keyboard and no other. My
  system is Ubuntu 14.04 (amd64).

  As an example, I will change the key '3' which is by default mapped to
  'Numpad 3' to 'PgDn'.

  The old way that used to work (and still does in Debian 7.6) was this:

  <----- snip ----->
  root@debian~# /lib/udev/keymap -i /dev/input/event7
  Press ESC to finish, or Control-C if this device is not your primary keyboard
  scan code: 0x7005B   key code: kp3

  root@debian~# cat /etc/udev/keymaps/ideazon-zboard
  0x7005B         pagedown

  root@debian~# /lib/udev/keymap /dev/input/event7 /etc/udev/keymaps/ideazon-zboard
  Remapped scancode 0x7005b to 0x6d (prior: 0x51)

  root@debian~# evtest /dev/input/event7
  Input driver version is 1.0.1
  Input device ID: bus 0x3 vendor 0x1038 product 0x310 version 0x111
  Input device name: "Ideazon Zboard USB Gaming Device"
  [...]
  Event: time 1408993871.777960, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7005b
  Event: time 1408993871.777971, type 1 (EV_KEY), code 109 (KEY_PAGEDOWN), value 1
  <----- snap ----->

  However, this method does not work anymore in 14.04 (for instance,
  there is no 'keymap' utility). Now, if I researched it correctly, we
  are supposed to do this:

  <----- snip ----->
  root@ubuntu:~# lsusb | grep -i ideazon
  Bus 003 Device 009: ID 1038:0310 Ideazon, Inc.

  root@ubuntu:~# cat /etc/udev/hwdb.d/91-local-ideazon-zboard.hwdb
  keyboard:usb:v1038p0310*
   KEYBOARD_KEY_07005b=pagedown

  root@ubuntu:~# udevadm hwdb --update

  root@ubuntu:~# evtest /dev/input/event6
  Input driver version is 1.0.1
  Input device ID: bus 0x3 vendor 0x1038 product 0x310 version 0x111
  Input device name: "Ideazon Zboard USB Gaming Device"
  [...]
  Event: time 1408993986.205654, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7005b
  Event: time 1408993986.205654, type 1 (EV_KEY), code 81 (KEY_KP3), value 1
  <----- snap ----->

  But, as you can see, it does not work. 'evtest' still reports the key
  as 'Numpad 3'. Even unplugging and re-plugging the keyboard has no
  effect. 'udevadm' seems to compile my custom file alright (it
  complains if I purposefully put a syntax error in it). But I still
  cannot redefine my keymap.

  I do not know if this is a problem of the newer udev itself. But even
  if it is, Ubuntu should not use it until it actually works. Especially
  not in a LTS version.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1361338/+subscriptions