I had the same problem. In my case it was caused by the usbhid
module being already loaded, since I was using a USB mouse.
If I understand it correctly, in Ubuntu 14.04, the udev rule that loads the proper module(s) when a new device is attached is the following (located in /lib/udev/rules.d/80-drivers.rules
):
DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{builtin}="kmod load $env{MODALIAS}"
As you can see, kmod load
is executed only if the new device has no driver. However, if usbhid
is already loaded, the just-attached keyboard already has a driver. Therefore the "hello world" module is not loaded.
A possible solution is to modify/override the udev rule by removing the DRIVER!="?*"
condition, thus turning it into:
ENV{MODALIAS}=="?*", RUN{builtin}="kmod load $env{MODALIAS}"`.
Another possible workaround is to unload the usbhid
module before attaching the keyboard. Of course, that will cause all USB keyboards, mice and other HID class devices to stop working until you attach the new keyboard.