[Bug 1361338] Re: Custom keymap in hwdb not working

Malte Wetz 1361338 at bugs.launchpad.net
Tue Aug 26 09:56:09 UTC 2014


I figured out what the problem was myself: The manpage of udevadm is
incorrect. Or at least misleading.  It says:

<----- snip ----->
   udevadm hwdb [options]
       Maintain the hardware database index in /lib/udev/hwdb.bin.

       --update
           Compile the hardware database information located in
           /lib/udev/hwdb.d/, /etc/udev/hwdb.d/ and store it in
           /lib/udev/hwdb.bin. This should be done after any update to the
           source files; it will not be called automatically. The running udev
           daemon will detect a new database on its own and does not need to
           be notified about it.
<----- snap ----->

The last sentence seems to indicate that compiling the hwdb is the only
thing you have to do to make changes take effect. This, however, is NOT
true on my system.

Not only did I have to recompile the hwdb but you also reload it:
'udevadm control --reload'.

Then I had to re-connect the keyboard in question.

And *then* I could use the new keymapping.


I therefore suggest to change the sentence in the manpage above to say the exact opposite, refer the user to the 'udevadm control --reload' command and tell them to reconnect the hardware (or reboot, if hotplugging is not supported).

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to udev in Ubuntu.
https://bugs.launchpad.net/bugs/1361338

Title:
  Custom keymap in hwdb not working

Status in “udev” 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 at 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 at debian~# cat /etc/udev/keymaps/ideazon-zboard
  0x7005B         pagedown

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

  root at 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 at ubuntu:~# lsusb | grep -i ideazon
  Bus 003 Device 009: ID 1038:0310 Ideazon, Inc.

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

  root at ubuntu:~# udevadm hwdb --update

  root at 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/udev/+bug/1361338/+subscriptions



More information about the foundations-bugs mailing list