I have a USB Linux Kernel module that compiles and builds. Running insmod loads my module and dmseg and tail -f /var/log/debug shows me it works as expected. Running depmod -a then modprobe from the terminal loads the module and modprobe -r unloads and I see - tail -f /var/log/debug output as expected.When I plug in my USB keyboard though it does not trigger and load on-demand as expected. I have investigated /etc/udev/rules.d with no success. Any workarounds or guidance is most welcome. Am running Ubuntu 12.04.4 LTS with a Custom Linux Kernel 3.14.0#include <linux/module.h>#include <linux/kernel.h>#include <linux/usb.h>#include <linux/usb/input.h>#include <linux/hid.h>MODULE_LICENSE(GPL);MODULE_AUTHOR(Aruna Hewapathirane);MODULE_DESCRIPTION(A USB Keyboard Driver Kernel Module);static struct usb_device_id usb_kbd_id_table[] = {    { USB_INTERFACE_INFO(        USB_INTERFACE_CLASS_HID,        USB_INTERFACE_SUBCLASS_BOOT,        USB_INTERFACE_PROTOCOL_KEYBOARD) },    { } /* Terminating entry */};MODULE_DEVICE_TABLE(usb, usb_kbd_id_table);static int __init kbd_init(void){    printk(KERN_DEBUG USB Keyboard Plugged In.. \n);    return 0;}static void __exit kbd_exit(void){    printk(KERN_DEBUG USB Keyboard Removed.. \n);    return ;}module_init(kbd_init);module_exit(kbd_exit);
usb kernel module does not load on demand but works fine with insmod and modprobe from the shell
linux;kernel;usb;kernel modules