Guest User

Untitled

a guest
Apr 26th, 2018
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. [36078.726962] usb 1-2: USB disconnect, device number 24
  2. [36080.925619] usb 1-2: new full-speed USB device number 25 using xhci_hcd
  3. [36081.067062] usb 1-2: New USB device found, idVendor=0483, idProduct=5750
  4. [36081.067067] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
  5. [36081.067071] usb 1-2: Product: CHW20160112 HID
  6. [36081.067075] usb 1-2: Manufacturer: Chuanghongweitech1
  7. [36081.068695] input: Chuanghongweitech1 CHW20160112 HID as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0483:5750.0018/input/input40
  8. [36081.069072] hid-generic 0003:0483:5750.0018: input,hidraw2: USB HID v1.10 Device [Chuanghongweitech1 CHW20160112 HID] on usb-0000:00:14.0-2/input0
  9.  
  10. [36216.554620] ledbadge:, Unloading module. Handler: ledbadge_exit
  11. [36216.554620] ledbadge:, Attempting to deregister USB device.
  12. [36216.554621] usbcore: deregistering interface driver ledbadge
  13. [36216.554647] ledbadge:, Leaving module!
  14. [36217.632615] ledbadge:, Loading module. Handler: ledbadge_init
  15. [36217.632616] ledbadge:, Attempting to register USB device.
  16. [36217.632636] usbcore: registered new interface driver ledbadge
  17.  
  18. #include <linux/init.h>
  19. #include <linux/module.h>
  20. #include <linux/usb.h>
  21.  
  22.  
  23.  
  24. #define LEDBADGE_VENDOR_ID 0x0483
  25. #define LEDBADGE_PRODUCT_ID 0x5750
  26. #define LEDBADGE_MOD_NAME "ledbadge"
  27. #define LEDBADGE_DRV_NAME "ledbadge"
  28.  
  29.  
  30. /************* usb operations *************/
  31.  
  32. /*
  33. ledbadge_probe
  34.  
  35. called when plugging the USB device */
  36.  
  37.  
  38. static int ledbadge_probe(struct usb_interface *interface, const struct usb_device_id *id)
  39. {
  40. printk(KERN_NOTICE "Led Badge driver (%04X: %04X) plugged n", id->idVendor, id->idProduct);
  41. return 0;
  42. }
  43.  
  44.  
  45. /*
  46. ledbadge_disconnect
  47.  
  48. called when unplugging the USB device */
  49.  
  50. static void ledbadge_disconnect(struct usb_interface *interface)
  51. {
  52. printk(KERN_NOTICE "%s:, ledbage USB device removed", LEDBADGE_DRV_NAME);
  53. }
  54.  
  55.  
  56.  
  57.  
  58. /************* usb driver *************/
  59.  
  60. // information required to recognize the device
  61.  
  62. static struct usb_device_id ledbadge_table [] = {
  63. {USB_DEVICE(LEDBADGE_VENDOR_ID, LEDBADGE_PRODUCT_ID)},
  64. { }, // terminating entry
  65. };
  66. MODULE_DEVICE_TABLE(usb, ledbadge_table);
  67.  
  68.  
  69. static struct usb_driver ledbadge_driver = {
  70. .name = LEDBADGE_DRV_NAME,
  71. .id_table = ledbadge_table,
  72. .probe = ledbadge_probe,
  73. .disconnect = ledbadge_disconnect,
  74. };
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83. /************** module definition **************/
  84.  
  85. /* ledbadge_init
  86.  
  87. caled on module loading */
  88.  
  89. static int __init ledbadge_init(void)
  90. {
  91. int ret = -1;
  92.  
  93. printk(KERN_NOTICE "%s:, Loading module. Handler: %s",
  94. LEDBADGE_MOD_NAME, __FUNCTION__);
  95.  
  96. printk(KERN_NOTICE "%s:, Attempting to register USB device.", LEDBADGE_MOD_NAME);
  97.  
  98. // attempt to register usb device
  99. ret = usb_register(&ledbadge_driver);
  100.  
  101. // log dmesg of status
  102. if(ret == 0) printk(KERN_NOTICE "%s:, Device registered!", LEDBADGE_MOD_NAME);
  103. else printk(KERN_ERR "%s:, Device registration failed > %d", LEDBADGE_MOD_NAME, ret);
  104.  
  105. return ret;
  106. }
  107.  
  108. /* ledbadge_exit
  109.  
  110. caled on module unloading */
  111.  
  112. static void __exit ledbadge_exit(void)
  113. {
  114. printk(KERN_NOTICE "%s:, Unloading module. Handler: %s",
  115. LEDBADGE_MOD_NAME, __FUNCTION__);
  116.  
  117. printk(KERN_NOTICE "%s:, Attempting to deregister USB device.", LEDBADGE_MOD_NAME);
  118.  
  119. // attempt to deregister usb device
  120. usb_deregister(&ledbadge_driver);
  121.  
  122. // log dmesg of status
  123. printk(KERN_NOTICE "%s:, Leaving module!", LEDBADGE_MOD_NAME);
  124. }
  125.  
  126. module_init(ledbadge_init);
  127. module_exit(ledbadge_exit);
  128.  
  129. MODULE_LICENSE("GPL");
Add Comment
Please, Sign In to add comment