diff options
author | Filip Wieladek <wattos@gmail.com> | 2013-05-11 17:07:28 +0200 |
---|---|---|
committer | Filip Wieladek <wattos@gmail.com> | 2013-05-11 17:07:28 +0200 |
commit | d1fa1eb19eeaa95b673e695e48da090be4f55f37 (patch) | |
tree | 6ddaba8edbbbb1c90a6efaec947af7ed337766f3 |
initial version
-rw-r--r-- | Makefile | 10 | ||||
-rw-r--r-- | README.md | 67 | ||||
-rw-r--r-- | info/feature_info | 7 | ||||
-rw-r--r-- | info/keypresses | 545 | ||||
-rw-r--r-- | misc/.Xmodmap | 10 | ||||
-rw-r--r-- | misc/90-logitech-g710-plus.rules | 1 | ||||
-rw-r--r-- | src/kernel/Makefile | 15 | ||||
-rw-r--r-- | src/kernel/hid-ids.h | 898 | ||||
-rw-r--r-- | src/kernel/hid-lg-g710-plus.c | 342 | ||||
-rwxr-xr-x | src/kernel/test.sh | 1 | ||||
-rw-r--r-- | src/kernel/usbhid/usbhid.h | 105 | ||||
-rw-r--r-- | src/userspace/Makefile | 7 |
12 files changed, 2008 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f7398e8 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +SUBDIRS=src/kernel src/userspace + +default: + for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@; done + +install: + for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@; done + +clean: + for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@; done
\ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..0d75009 --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +Logitech G710+ Keyboard Driver +========================== + +The Logitech G710+ mechanical keyboard is a great piece of hardware. Unfortunately, there is no support in the kernel for the additional features of the keyboard. + +This kernel driver allows the keys M1-MR and G1-G6 to be used. + + +Instalation Instructions +------------------------- + +First you have to compile the driver: +<pre> +make +</pre> + +if the compilation was successfull, you will now have a new kernel module in the directory. + +The next step is to install the kernel module: + +<pre> +sudo make install +sudo depmod -a +</pre> + +At this point the generic driver will still take control. The simple fix for that issue is to copy the 90-logitech-g710-plus.rules file from the misc folder to /etc/udev/rules.d/: + +<pre> +sudo cp misc/90-logitech-g710-plus.rules /etc/udev/rules.d/ +</pre> + +Finally, if you do not receive any events in your environment, it might be necessary to use the modmap provided in the misc folder: + +<pre> +xmodmap misc/.Xmodmap +</pre> + + +Usage +-------------------------- +Use the key shortcut utilities provided by your DE to make use of the additional buttons. + +API +-------------------------- +The driver also exposes a way to set the keyboard backlight intensity. That is done by writing either: + +<pre> +/sys/bus/hid/devices/0003:046D:C24D.XXXX/logitech-g710/led_macro +/sys/bus/hid/devices/0003:046D:C24D.XXXX/logitech-g710/led_keys +</pre> + +where XXXX is varies (e.g. 0008) + +The led_macro file expects a single number which is a bitmask of the first 4 bits. Each bit corresponds to a button. E.g. if you want to light up M1 and M3, you must write the bit pattern 0101, which corresponds to 5 in decimal: + +<pre> +echo -n "5" > /sys/bus/hid/devices/0003:046D:C24D.XXXX/logitech-g710/led_macro +</pre> + +Writing the led_keys is a bit more involved. The file expects a single digit which is constructed in the following way: +value= wasd << 4 | key + +where: + wasd - WASD light intensity + key - Other key light intensity + +Only values from 0-4 accepted
\ No newline at end of file diff --git a/info/feature_info b/info/feature_info new file mode 100644 index 0000000..2c72fd5 --- /dev/null +++ b/info/feature_info @@ -0,0 +1,7 @@ +Feature report: id=5 type=2 size=56 maxfield=1 report_count=7 +May 9 19:46:17 battipaglia kernel: [ 568.808834] Feature report: id=6 type=2 size=8 maxfield=1 report_count=1 +May 9 19:46:17 battipaglia kernel: [ 568.808838] Feature report: id=7 type=2 size=32 maxfield=1 report_count=4 +May 9 19:46:17 battipaglia kernel: [ 568.808841] Feature report: id=8 type=2 size=24 maxfield=1 report_count=3 +May 9 19:46:17 battipaglia kernel: [ 568.808844] Feature report: id=9 type=2 size=96 maxfield=1 report_count=12 +May 9 19:46:17 battipaglia kernel: [ 568.808848] Feature report: id=128 type=2 size=56 maxfield=1 report_count=7 + diff --git a/info/keypresses b/info/keypresses new file mode 100644 index 0000000..4dd8893 --- /dev/null +++ b/info/keypresses @@ -0,0 +1,545 @@ +INPUT MAPPING: +May 11 12:21:46 battipaglia kernel: [137842.081084] usage->hid & HID_USAGE 0xe0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081087] usage->hid & HID_USAGE 0xe1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081088] usage->hid & HID_USAGE 0xe2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081089] usage->hid & HID_USAGE 0xe3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081090] usage->hid & HID_USAGE 0xe4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081090] usage->hid & HID_USAGE 0xe5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081091] usage->hid & HID_USAGE 0xe6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081092] usage->hid & HID_USAGE 0xe7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081093] usage->hid & HID_USAGE 0x0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081094] usage->hid & HID_USAGE 0x1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081095] usage->hid & HID_USAGE 0x2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081095] usage->hid & HID_USAGE 0x3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081096] usage->hid & HID_USAGE 0x4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081097] usage->hid & HID_USAGE 0x5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081098] usage->hid & HID_USAGE 0x6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081098] usage->hid & HID_USAGE 0x7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081099] usage->hid & HID_USAGE 0x8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081100] usage->hid & HID_USAGE 0x9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081101] usage->hid & HID_USAGE 0xa usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081101] usage->hid & HID_USAGE 0xb usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081102] usage->hid & HID_USAGE 0xc usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081103] usage->hid & HID_USAGE 0xd usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081104] usage->hid & HID_USAGE 0xe usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081104] usage->hid & HID_USAGE 0xf usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081105] usage->hid & HID_USAGE 0x10 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081106] usage->hid & HID_USAGE 0x11 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081107] usage->hid & HID_USAGE 0x12 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081108] usage->hid & HID_USAGE 0x13 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081109] usage->hid & HID_USAGE 0x14 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081109] usage->hid & HID_USAGE 0x15 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081110] usage->hid & HID_USAGE 0x16 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081111] usage->hid & HID_USAGE 0x17 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081112] usage->hid & HID_USAGE 0x18 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081113] usage->hid & HID_USAGE 0x19 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081121] usage->hid & HID_USAGE 0x1a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081122] usage->hid & HID_USAGE 0x1b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081122] usage->hid & HID_USAGE 0x1c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081123] usage->hid & HID_USAGE 0x1d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081124] usage->hid & HID_USAGE 0x1e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081125] usage->hid & HID_USAGE 0x1f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081125] usage->hid & HID_USAGE 0x20 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081126] usage->hid & HID_USAGE 0x21 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081127] usage->hid & HID_USAGE 0x22 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081127] usage->hid & HID_USAGE 0x23 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081128] usage->hid & HID_USAGE 0x24 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081129] usage->hid & HID_USAGE 0x25 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081130] usage->hid & HID_USAGE 0x26 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081130] usage->hid & HID_USAGE 0x27 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081131] usage->hid & HID_USAGE 0x28 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081132] usage->hid & HID_USAGE 0x29 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081132] usage->hid & HID_USAGE 0x2a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081133] usage->hid & HID_USAGE 0x2b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081134] usage->hid & HID_USAGE 0x2c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081135] usage->hid & HID_USAGE 0x2d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081135] usage->hid & HID_USAGE 0x2e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081136] usage->hid & HID_USAGE 0x2f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081137] usage->hid & HID_USAGE 0x30 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081137] usage->hid & HID_USAGE 0x31 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081138] usage->hid & HID_USAGE 0x32 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081139] usage->hid & HID_USAGE 0x33 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081140] usage->hid & HID_USAGE 0x34 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081140] usage->hid & HID_USAGE 0x35 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081141] usage->hid & HID_USAGE 0x36 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081142] usage->hid & HID_USAGE 0x37 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081142] usage->hid & HID_USAGE 0x38 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081143] usage->hid & HID_USAGE 0x39 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081144] usage->hid & HID_USAGE 0x3a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081145] usage->hid & HID_USAGE 0x3b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081145] usage->hid & HID_USAGE 0x3c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081146] usage->hid & HID_USAGE 0x3d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081147] usage->hid & HID_USAGE 0x3e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081147] usage->hid & HID_USAGE 0x3f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081148] usage->hid & HID_USAGE 0x40 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081149] usage->hid & HID_USAGE 0x41 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081150] usage->hid & HID_USAGE 0x42 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081150] usage->hid & HID_USAGE 0x43 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081151] usage->hid & HID_USAGE 0x44 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081152] usage->hid & HID_USAGE 0x45 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081153] usage->hid & HID_USAGE 0x46 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081153] usage->hid & HID_USAGE 0x47 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081154] usage->hid & HID_USAGE 0x48 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081155] usage->hid & HID_USAGE 0x49 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081156] usage->hid & HID_USAGE 0x4a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081156] usage->hid & HID_USAGE 0x4b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081157] usage->hid & HID_USAGE 0x4c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081158] usage->hid & HID_USAGE 0x4d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081159] usage->hid & HID_USAGE 0x4e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081159] usage->hid & HID_USAGE 0x4f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081160] usage->hid & HID_USAGE 0x50 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081161] usage->hid & HID_USAGE 0x51 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081161] usage->hid & HID_USAGE 0x52 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081162] usage->hid & HID_USAGE 0x53 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081163] usage->hid & HID_USAGE 0x54 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081164] usage->hid & HID_USAGE 0x55 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081164] usage->hid & HID_USAGE 0x56 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081165] usage->hid & HID_USAGE 0x57 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081166] usage->hid & HID_USAGE 0x58 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081166] usage->hid & HID_USAGE 0x59 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081167] usage->hid & HID_USAGE 0x5a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081168] usage->hid & HID_USAGE 0x5b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081169] usage->hid & HID_USAGE 0x5c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081169] usage->hid & HID_USAGE 0x5d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081170] usage->hid & HID_USAGE 0x5e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081171] usage->hid & HID_USAGE 0x5f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081171] usage->hid & HID_USAGE 0x60 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081172] usage->hid & HID_USAGE 0x61 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081173] usage->hid & HID_USAGE 0x62 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081174] usage->hid & HID_USAGE 0x63 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081174] usage->hid & HID_USAGE 0x64 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081175] usage->hid & HID_USAGE 0x65 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081176] usage->hid & HID_USAGE 0x66 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081176] usage->hid & HID_USAGE 0x67 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081177] usage->hid & HID_USAGE 0x68 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081178] usage->hid & HID_USAGE 0x69 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081179] usage->hid & HID_USAGE 0x6a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081179] usage->hid & HID_USAGE 0x6b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081180] usage->hid & HID_USAGE 0x6c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081181] usage->hid & HID_USAGE 0x6d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081181] usage->hid & HID_USAGE 0x6e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081182] usage->hid & HID_USAGE 0x6f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081183] usage->hid & HID_USAGE 0x70 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081184] usage->hid & HID_USAGE 0x71 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081184] usage->hid & HID_USAGE 0x72 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081185] usage->hid & HID_USAGE 0x73 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081186] usage->hid & HID_USAGE 0x74 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081186] usage->hid & HID_USAGE 0x75 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081187] usage->hid & HID_USAGE 0x76 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081188] usage->hid & HID_USAGE 0x77 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081189] usage->hid & HID_USAGE 0x78 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081189] usage->hid & HID_USAGE 0x79 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081190] usage->hid & HID_USAGE 0x7a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081191] usage->hid & HID_USAGE 0x7b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081192] usage->hid & HID_USAGE 0x7c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081192] usage->hid & HID_USAGE 0x7d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081193] usage->hid & HID_USAGE 0x7e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081194] usage->hid & HID_USAGE 0x7f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081195] usage->hid & HID_USAGE 0x80 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081195] usage->hid & HID_USAGE 0x81 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081196] usage->hid & HID_USAGE 0x82 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081197] usage->hid & HID_USAGE 0x83 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081198] usage->hid & HID_USAGE 0x84 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081198] usage->hid & HID_USAGE 0x85 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081199] usage->hid & HID_USAGE 0x86 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081200] usage->hid & HID_USAGE 0x87 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081200] usage->hid & HID_USAGE 0x88 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081201] usage->hid & HID_USAGE 0x89 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081202] usage->hid & HID_USAGE 0x8a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081203] usage->hid & HID_USAGE 0x8b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081203] usage->hid & HID_USAGE 0x8c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081204] usage->hid & HID_USAGE 0x8d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081205] usage->hid & HID_USAGE 0x8e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081205] usage->hid & HID_USAGE 0x8f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081206] usage->hid & HID_USAGE 0x90 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081207] usage->hid & HID_USAGE 0x91 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081208] usage->hid & HID_USAGE 0x92 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081208] usage->hid & HID_USAGE 0x93 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081209] usage->hid & HID_USAGE 0x94 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081210] usage->hid & HID_USAGE 0x95 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081211] usage->hid & HID_USAGE 0x96 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081211] usage->hid & HID_USAGE 0x97 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081212] usage->hid & HID_USAGE 0x98 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081213] usage->hid & HID_USAGE 0x99 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081213] usage->hid & HID_USAGE 0x9a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081214] usage->hid & HID_USAGE 0x9b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081215] usage->hid & HID_USAGE 0x9c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081216] usage->hid & HID_USAGE 0x9d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081216] usage->hid & HID_USAGE 0x9e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081217] usage->hid & HID_USAGE 0x9f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081218] usage->hid & HID_USAGE 0xa0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081218] usage->hid & HID_USAGE 0xa1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081219] usage->hid & HID_USAGE 0xa2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081220] usage->hid & HID_USAGE 0xa3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081220] usage->hid & HID_USAGE 0xa4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081221] usage->hid & HID_USAGE 0xa5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081222] usage->hid & HID_USAGE 0xa6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081223] usage->hid & HID_USAGE 0xa7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081223] usage->hid & HID_USAGE 0xa8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081224] usage->hid & HID_USAGE 0xa9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081225] usage->hid & HID_USAGE 0xaa usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081226] usage->hid & HID_USAGE 0xab usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081226] usage->hid & HID_USAGE 0xac usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081227] usage->hid & HID_USAGE 0xad usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081228] usage->hid & HID_USAGE 0xae usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081229] usage->hid & HID_USAGE 0xaf usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081229] usage->hid & HID_USAGE 0xb0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081230] usage->hid & HID_USAGE 0xb1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081231] usage->hid & HID_USAGE 0xb2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081232] usage->hid & HID_USAGE 0xb3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081232] usage->hid & HID_USAGE 0xb4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081233] usage->hid & HID_USAGE 0xb5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081234] usage->hid & HID_USAGE 0xb6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081234] usage->hid & HID_USAGE 0xb7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081235] usage->hid & HID_USAGE 0xb8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081236] usage->hid & HID_USAGE 0xb9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081237] usage->hid & HID_USAGE 0xba usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081237] usage->hid & HID_USAGE 0xbb usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081238] usage->hid & HID_USAGE 0xbc usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081239] usage->hid & HID_USAGE 0xbd usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081239] usage->hid & HID_USAGE 0xbe usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081240] usage->hid & HID_USAGE 0xbf usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081241] usage->hid & HID_USAGE 0xc0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081242] usage->hid & HID_USAGE 0xc1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081242] usage->hid & HID_USAGE 0xc2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081243] usage->hid & HID_USAGE 0xc3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081244] usage->hid & HID_USAGE 0xc4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081244] usage->hid & HID_USAGE 0xc5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081245] usage->hid & HID_USAGE 0xc6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081246] usage->hid & HID_USAGE 0xc7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081247] usage->hid & HID_USAGE 0xc8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081247] usage->hid & HID_USAGE 0xc9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081248] usage->hid & HID_USAGE 0xca usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081249] usage->hid & HID_USAGE 0xcb usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081249] usage->hid & HID_USAGE 0xcc usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081250] usage->hid & HID_USAGE 0xcd usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081251] usage->hid & HID_USAGE 0xce usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081251] usage->hid & HID_USAGE 0xcf usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081252] usage->hid & HID_USAGE 0xd0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081253] usage->hid & HID_USAGE 0xd1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081254] usage->hid & HID_USAGE 0xd2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081254] usage->hid & HID_USAGE 0xd3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081255] usage->hid & HID_USAGE 0xd4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081256] usage->hid & HID_USAGE 0xd5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081256] usage->hid & HID_USAGE 0xd6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081257] usage->hid & HID_USAGE 0xd7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081258] usage->hid & HID_USAGE 0xd8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081259] usage->hid & HID_USAGE 0xd9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081259] usage->hid & HID_USAGE 0xda usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081260] usage->hid & HID_USAGE 0xdb usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081261] usage->hid & HID_USAGE 0xdc usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081262] usage->hid & HID_USAGE 0xdd usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081262] usage->hid & HID_USAGE 0xde usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081263] usage->hid & HID_USAGE 0xdf usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081264] usage->hid & HID_USAGE 0xe0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081264] usage->hid & HID_USAGE 0xe1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081265] usage->hid & HID_USAGE 0xe2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081266] usage->hid & HID_USAGE 0xe3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081267] usage->hid & HID_USAGE 0xe4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081268] usage->hid & HID_USAGE 0xe5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081268] usage->hid & HID_USAGE 0xe6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081269] usage->hid & HID_USAGE 0xe7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081270] usage->hid & HID_USAGE 0xe8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081270] usage->hid & HID_USAGE 0xe9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081271] usage->hid & HID_USAGE 0xea usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081272] usage->hid & HID_USAGE 0xeb usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081273] usage->hid & HID_USAGE 0xec usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081273] usage->hid & HID_USAGE 0xed usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081274] usage->hid & HID_USAGE 0xee usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081275] usage->hid & HID_USAGE 0xef usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081275] usage->hid & HID_USAGE 0xf0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081276] usage->hid & HID_USAGE 0xf1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081277] usage->hid & HID_USAGE 0xf2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081278] usage->hid & HID_USAGE 0xf3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081278] usage->hid & HID_USAGE 0xf4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081279] usage->hid & HID_USAGE 0xf5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081280] usage->hid & HID_USAGE 0xf6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081280] usage->hid & HID_USAGE 0xf7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081281] usage->hid & HID_USAGE 0xf8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081282] usage->hid & HID_USAGE 0xf9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081283] usage->hid & HID_USAGE 0xfa usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081283] usage->hid & HID_USAGE 0xfb usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081284] usage->hid & HID_USAGE 0xfc usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081285] usage->hid & HID_USAGE 0xfd usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081285] usage->hid & HID_USAGE 0xfe usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081286] usage->hid & HID_USAGE 0xff usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.081287] usage->hid & HID_USAGE 0x1 usage->hid & HID_USAGE_PAGE 0x80000 +May 11 12:21:46 battipaglia kernel: [137842.081288] usage->hid & HID_USAGE 0x2 usage->hid & HID_USAGE_PAGE 0x80000 +May 11 12:21:46 battipaglia kernel: [137842.081289] usage->hid & HID_USAGE 0x3 usage->hid & HID_USAGE_PAGE 0x80000 +May 11 12:21:46 battipaglia kernel: [137842.081329] input: Logitech Logitech G710 Keyboard as /devices/pci0000:00/0000:00:1c.6/0000:0e:00.0/usb3/3-1/3-1:1.0/input/input195 +May 11 12:21:46 battipaglia kernel: [137842.081478] hid-lg-g710-plus 0003:046D:C24D.006F: input,hidraw0: USB HID v1.11 Keyboard [Logitech Logitech G710 Keyboard] on usb-0000:0e:00.0-1/input0 +May 11 12:21:46 battipaglia kernel: [137842.135072] usage->hid & HID_USAGE 0x0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135083] usage->hid & HID_USAGE 0x1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135087] usage->hid & HID_USAGE 0x2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135090] usage->hid & HID_USAGE 0x3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135093] usage->hid & HID_USAGE 0x4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135097] usage->hid & HID_USAGE 0x5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135100] usage->hid & HID_USAGE 0x6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135103] usage->hid & HID_USAGE 0x7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135106] usage->hid & HID_USAGE 0x8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135109] usage->hid & HID_USAGE 0x9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135113] usage->hid & HID_USAGE 0xa usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135116] usage->hid & HID_USAGE 0xb usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135119] usage->hid & HID_USAGE 0xc usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135122] usage->hid & HID_USAGE 0xd usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135125] usage->hid & HID_USAGE 0xe usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135128] usage->hid & HID_USAGE 0xf usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135131] usage->hid & HID_USAGE 0x10 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135135] usage->hid & HID_USAGE 0x11 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135138] usage->hid & HID_USAGE 0x12 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135141] usage->hid & HID_USAGE 0x13 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135144] usage->hid & HID_USAGE 0x14 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135147] usage->hid & HID_USAGE 0x15 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135150] usage->hid & HID_USAGE 0x16 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135153] usage->hid & HID_USAGE 0x17 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135157] usage->hid & HID_USAGE 0x18 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135160] usage->hid & HID_USAGE 0x19 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135163] usage->hid & HID_USAGE 0x1a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135166] usage->hid & HID_USAGE 0x1b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135169] usage->hid & HID_USAGE 0x1c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135172] usage->hid & HID_USAGE 0x1d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135175] usage->hid & HID_USAGE 0x1e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135178] usage->hid & HID_USAGE 0x1f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135181] usage->hid & HID_USAGE 0x20 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135184] usage->hid & HID_USAGE 0x21 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135187] usage->hid & HID_USAGE 0x22 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135190] usage->hid & HID_USAGE 0x23 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135193] usage->hid & HID_USAGE 0x24 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135196] usage->hid & HID_USAGE 0x25 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135199] usage->hid & HID_USAGE 0x26 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135202] usage->hid & HID_USAGE 0x27 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135205] usage->hid & HID_USAGE 0x28 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135208] usage->hid & HID_USAGE 0x29 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135211] usage->hid & HID_USAGE 0x2a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135214] usage->hid & HID_USAGE 0x2b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135218] usage->hid & HID_USAGE 0x2c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135221] usage->hid & HID_USAGE 0x2d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135224] usage->hid & HID_USAGE 0x2e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135227] usage->hid & HID_USAGE 0x2f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135230] usage->hid & HID_USAGE 0x30 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135233] usage->hid & HID_USAGE 0x31 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135236] usage->hid & HID_USAGE 0x32 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135239] usage->hid & HID_USAGE 0x33 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135242] usage->hid & HID_USAGE 0x34 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135245] usage->hid & HID_USAGE 0x35 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135248] usage->hid & HID_USAGE 0x36 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135251] usage->hid & HID_USAGE 0x37 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135254] usage->hid & HID_USAGE 0x38 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135257] usage->hid & HID_USAGE 0x39 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135260] usage->hid & HID_USAGE 0x3a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135263] usage->hid & HID_USAGE 0x3b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135266] usage->hid & HID_USAGE 0x3c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135269] usage->hid & HID_USAGE 0x3d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135272] usage->hid & HID_USAGE 0x3e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135276] usage->hid & HID_USAGE 0x3f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135279] usage->hid & HID_USAGE 0x40 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135282] usage->hid & HID_USAGE 0x41 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135285] usage->hid & HID_USAGE 0x42 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135288] usage->hid & HID_USAGE 0x43 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135291] usage->hid & HID_USAGE 0x44 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135294] usage->hid & HID_USAGE 0x45 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135298] usage->hid & HID_USAGE 0x46 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135300] usage->hid & HID_USAGE 0x47 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135304] usage->hid & HID_USAGE 0x48 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135307] usage->hid & HID_USAGE 0x49 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135310] usage->hid & HID_USAGE 0x4a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135313] usage->hid & HID_USAGE 0x4b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135316] usage->hid & HID_USAGE 0x4c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135319] usage->hid & HID_USAGE 0x4d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135322] usage->hid & HID_USAGE 0x4e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135325] usage->hid & HID_USAGE 0x4f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135328] usage->hid & HID_USAGE 0x50 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135331] usage->hid & HID_USAGE 0x51 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135334] usage->hid & HID_USAGE 0x52 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135337] usage->hid & HID_USAGE 0x53 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135340] usage->hid & HID_USAGE 0x54 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135343] usage->hid & HID_USAGE 0x55 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135346] usage->hid & HID_USAGE 0x56 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135349] usage->hid & HID_USAGE 0x57 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135352] usage->hid & HID_USAGE 0x58 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135355] usage->hid & HID_USAGE 0x59 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135358] usage->hid & HID_USAGE 0x5a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135361] usage->hid & HID_USAGE 0x5b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135364] usage->hid & HID_USAGE 0x5c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135367] usage->hid & HID_USAGE 0x5d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135370] usage->hid & HID_USAGE 0x5e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135373] usage->hid & HID_USAGE 0x5f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135376] usage->hid & HID_USAGE 0x60 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135379] usage->hid & HID_USAGE 0x61 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135383] usage->hid & HID_USAGE 0x62 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135386] usage->hid & HID_USAGE 0x63 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135389] usage->hid & HID_USAGE 0x64 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135392] usage->hid & HID_USAGE 0x65 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135395] usage->hid & HID_USAGE 0x66 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135398] usage->hid & HID_USAGE 0x67 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135401] usage->hid & HID_USAGE 0x68 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135404] usage->hid & HID_USAGE 0x69 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135407] usage->hid & HID_USAGE 0x6a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135410] usage->hid & HID_USAGE 0x6b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135413] usage->hid & HID_USAGE 0x6c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135416] usage->hid & HID_USAGE 0x6d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135419] usage->hid & HID_USAGE 0x6e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135422] usage->hid & HID_USAGE 0x6f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135425] usage->hid & HID_USAGE 0x70 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135428] usage->hid & HID_USAGE 0x71 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135431] usage->hid & HID_USAGE 0x72 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135434] usage->hid & HID_USAGE 0x73 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135437] usage->hid & HID_USAGE 0x74 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135441] usage->hid & HID_USAGE 0x75 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135444] usage->hid & HID_USAGE 0x76 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135447] usage->hid & HID_USAGE 0x77 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135450] usage->hid & HID_USAGE 0x78 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135453] usage->hid & HID_USAGE 0x79 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135456] usage->hid & HID_USAGE 0x7a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135459] usage->hid & HID_USAGE 0x7b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135462] usage->hid & HID_USAGE 0x7c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135465] usage->hid & HID_USAGE 0x7d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135468] usage->hid & HID_USAGE 0x7e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135472] usage->hid & HID_USAGE 0x7f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135474] usage->hid & HID_USAGE 0x80 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135478] usage->hid & HID_USAGE 0x81 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135481] usage->hid & HID_USAGE 0x82 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135484] usage->hid & HID_USAGE 0x83 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135487] usage->hid & HID_USAGE 0x84 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135490] usage->hid & HID_USAGE 0x85 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135493] usage->hid & HID_USAGE 0x86 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135496] usage->hid & HID_USAGE 0x87 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135499] usage->hid & HID_USAGE 0x88 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135502] usage->hid & HID_USAGE 0x89 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135505] usage->hid & HID_USAGE 0x8a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135508] usage->hid & HID_USAGE 0x8b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135511] usage->hid & HID_USAGE 0x8c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135514] usage->hid & HID_USAGE 0x8d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135517] usage->hid & HID_USAGE 0x8e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135520] usage->hid & HID_USAGE 0x8f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135523] usage->hid & HID_USAGE 0x90 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135526] usage->hid & HID_USAGE 0x91 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135529] usage->hid & HID_USAGE 0x92 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135532] usage->hid & HID_USAGE 0x93 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135535] usage->hid & HID_USAGE 0x94 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135538] usage->hid & HID_USAGE 0x95 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135542] usage->hid & HID_USAGE 0x96 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135545] usage->hid & HID_USAGE 0x97 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135548] usage->hid & HID_USAGE 0x98 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135551] usage->hid & HID_USAGE 0x99 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135554] usage->hid & HID_USAGE 0x9a usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135557] usage->hid & HID_USAGE 0x9b usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135560] usage->hid & HID_USAGE 0x9c usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135563] usage->hid & HID_USAGE 0x9d usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135566] usage->hid & HID_USAGE 0x9e usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135569] usage->hid & HID_USAGE 0x9f usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135572] usage->hid & HID_USAGE 0xa0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135575] usage->hid & HID_USAGE 0xa1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135578] usage->hid & HID_USAGE 0xa2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135581] usage->hid & HID_USAGE 0xa3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135584] usage->hid & HID_USAGE 0xa4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135587] usage->hid & HID_USAGE 0xa5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135591] usage->hid & HID_USAGE 0xa6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135594] usage->hid & HID_USAGE 0xa7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135597] usage->hid & HID_USAGE 0xa8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135600] usage->hid & HID_USAGE 0xa9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135603] usage->hid & HID_USAGE 0xaa usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135606] usage->hid & HID_USAGE 0xab usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135609] usage->hid & HID_USAGE 0xac usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135612] usage->hid & HID_USAGE 0xad usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135615] usage->hid & HID_USAGE 0xae usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135618] usage->hid & HID_USAGE 0xaf usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135621] usage->hid & HID_USAGE 0xb0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135624] usage->hid & HID_USAGE 0xb1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135627] usage->hid & HID_USAGE 0xb2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135630] usage->hid & HID_USAGE 0xb3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135633] usage->hid & HID_USAGE 0xb4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135636] usage->hid & HID_USAGE 0xb5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135640] usage->hid & HID_USAGE 0xb6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135643] usage->hid & HID_USAGE 0xb7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135646] usage->hid & HID_USAGE 0xb8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135649] usage->hid & HID_USAGE 0xb9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135652] usage->hid & HID_USAGE 0xba usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135655] usage->hid & HID_USAGE 0xbb usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135658] usage->hid & HID_USAGE 0xbc usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135661] usage->hid & HID_USAGE 0xbd usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135664] usage->hid & HID_USAGE 0xbe usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135667] usage->hid & HID_USAGE 0xbf usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135670] usage->hid & HID_USAGE 0xc0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135673] usage->hid & HID_USAGE 0xc1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135676] usage->hid & HID_USAGE 0xc2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135679] usage->hid & HID_USAGE 0xc3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135682] usage->hid & HID_USAGE 0xc4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135685] usage->hid & HID_USAGE 0xc5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135688] usage->hid & HID_USAGE 0xc6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135691] usage->hid & HID_USAGE 0xc7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135694] usage->hid & HID_USAGE 0xc8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135697] usage->hid & HID_USAGE 0xc9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135700] usage->hid & HID_USAGE 0xca usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135703] usage->hid & HID_USAGE 0xcb usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135706] usage->hid & HID_USAGE 0xcc usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135709] usage->hid & HID_USAGE 0xcd usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135712] usage->hid & HID_USAGE 0xce usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135716] usage->hid & HID_USAGE 0xcf usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135719] usage->hid & HID_USAGE 0xd0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135722] usage->hid & HID_USAGE 0xd1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135725] usage->hid & HID_USAGE 0xd2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135728] usage->hid & HID_USAGE 0xd3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135731] usage->hid & HID_USAGE 0xd4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135734] usage->hid & HID_USAGE 0xd5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135737] usage->hid & HID_USAGE 0xd6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135740] usage->hid & HID_USAGE 0xd7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135743] usage->hid & HID_USAGE 0xd8 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135746] usage->hid & HID_USAGE 0xd9 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135750] usage->hid & HID_USAGE 0xda usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135753] usage->hid & HID_USAGE 0xdb usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135756] usage->hid & HID_USAGE 0xdc usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135759] usage->hid & HID_USAGE 0xdd usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135762] usage->hid & HID_USAGE 0xde usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135765] usage->hid & HID_USAGE 0xdf usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135768] usage->hid & HID_USAGE 0xe0 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135771] usage->hid & HID_USAGE 0xe1 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135774] usage->hid & HID_USAGE 0xe2 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135777] usage->hid & HID_USAGE 0xe3 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135780] usage->hid & HID_USAGE 0xe4 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135783] usage->hid & HID_USAGE 0xe5 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135787] usage->hid & HID_USAGE 0xe6 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135789] usage->hid & HID_USAGE 0xe7 usage->hid & HID_USAGE_PAGE 0x70000 +May 11 12:21:46 battipaglia kernel: [137842.135793] usage->hid & HID_USAGE 0xb5 usage->hid & HID_USAGE_PAGE 0xc0000 +May 11 12:21:46 battipaglia kernel: [137842.135796] usage->hid & HID_USAGE 0xb6 usage->hid & HID_USAGE_PAGE 0xc0000 +May 11 12:21:46 battipaglia kernel: [137842.135799] usage->hid & HID_USAGE 0xb7 usage->hid & HID_USAGE_PAGE 0xc0000 +May 11 12:21:46 battipaglia kernel: [137842.135803] usage->hid & HID_USAGE 0xcd usage->hid & HID_USAGE_PAGE 0xc0000 +May 11 12:21:46 battipaglia kernel: [137842.135806] usage->hid & HID_USAGE 0xe9 usage->hid & HID_USAGE_PAGE 0xc0000 +May 11 12:21:46 battipaglia kernel: [137842.135809] usage->hid & HID_USAGE 0xea usage->hid & HID_USAGE_PAGE 0xc0000 +May 11 12:21:46 battipaglia kernel: [137842.135813] usage->hid & HID_USAGE 0xe2 usage->hid & HID_USAGE_PAGE 0xc0000 +May 11 12:21:46 battipaglia kernel: [137842.135816] usage->hid & HID_USAGE 0x3 usage->hid & HID_USAGE_PAGE 0xff000000 +May 11 12:21:46 battipaglia kernel: [137842.135820] usage->hid & HID_USAGE 0x3 usage->hid & HID_USAGE_PAGE 0xff000000 +May 11 12:21:46 battipaglia kernel: [137842.135823] usage->hid & HID_USAGE 0x3 usage->hid & HID_USAGE_PAGE 0xff000000 +May 11 12:21:46 battipaglia kernel: [137842.135826] usage->hid & HID_USAGE 0x4 usage->hid & HID_USAGE_PAGE 0xff000000 +May 11 12:21:46 battipaglia kernel: [137842.135829] usage->hid & HID_USAGE 0x4 usage->hid & HID_USAGE_PAGE 0xff000000 +May 11 12:21:46 battipaglia kernel: [137842.135832] usage->hid & HID_USAGE 0x4 usage->hid & HID_USAGE_PAGE 0xff000000 +May 11 12:21:46 battipaglia kernel: [137842.135835] usage->hid & HID_USAGE 0x4 usage->hid & HID_USAGE_PAGE 0xff000000 +May 11 12:21:46 battipaglia kernel: [137842.135838] usage->hid & HID_USAGE 0x4 usage->hid & HID_USAGE_PAGE 0xff000000 +May 11 12:21:46 battipaglia kernel: [137842.135841] usage->hid & HID_USAGE 0x4 usage->hid & HID_USAGE_PAGE 0xff000000 +May 11 12:21:46 battipaglia kernel: [137842.135844] usage->hid & HID_USAGE 0x4 usage->hid & HID_USAGE_PAGE 0xff000000 + + + + +Raw Events: +May 11 12:07:33 battipaglia kernel: [136988.732797] Raw event: 1554035584 report id: 3 size: 4 data: 3 1 0 0 <-- G1 Button Press +May 11 12:07:33 battipaglia kernel: [136988.842785] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 0 0 <-- G1 Button Release +May 11 12:07:34 battipaglia kernel: [136989.812669] Raw event: 1554035584 report id: 3 size: 4 data: 3 2 0 0 <-- G2 Button Press +May 11 12:07:34 battipaglia kernel: [136989.942682] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 0 0 <-- G2 Button Release +May 11 12:07:34 battipaglia kernel: [136990.386601] Raw event: 1554035584 report id: 3 size: 4 data: 3 4 0 0 <-- G3 Button Press +May 11 12:07:34 battipaglia kernel: [136990.514603] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 0 0 <-- G3 Button Release +May 11 12:07:35 battipaglia kernel: [136991.078519] Raw event: 1554035584 report id: 3 size: 4 data: 3 8 0 0 <-- G4 Button Press +May 11 12:07:35 battipaglia kernel: [136991.206503] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 0 0 <-- G4 Button Release +May 11 12:07:35 battipaglia kernel: [136991.550478] Raw event: 1554035584 report id: 3 size: 4 data: 3 10 0 0 <-- G5 Button Press +May 11 12:07:36 battipaglia kernel: [136991.684448] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 0 0 <-- G5 Button Release +May 11 12:07:36 battipaglia kernel: [136991.990411] Raw event: 1554035584 report id: 3 size: 4 data: 3 20 0 0 <-- G6 Button Press +May 11 12:07:36 battipaglia kernel: [136992.142421] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 0 0 <-- G6 Button Release + +May 11 12:10:03 battipaglia kernel: [137138.591301] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 10 0 <-- M1 Button Press +May 11 12:10:03 battipaglia kernel: [137138.807212] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 0 0 <-- M1 Button Release +May 11 12:10:03 battipaglia kernel: [137139.287239] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 20 0 <-- M2 Button Press +May 11 12:10:03 battipaglia kernel: [137139.471192] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 0 0 <-- M2 Button Release +May 11 12:10:04 battipaglia kernel: [137139.787179] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 40 0 <-- M3 Button Press +May 11 12:10:04 battipaglia kernel: [137139.943151] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 0 0 <-- M3 Button Release +May 11 12:10:04 battipaglia kernel: [137140.225128] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 80 0 <-- MR Button Press +May 11 12:10:04 battipaglia kernel: [137140.401107] Raw event: 1554035584 report id: 3 size: 4 data: 3 0 0 0 <-- MR Button Release
\ No newline at end of file diff --git a/misc/.Xmodmap b/misc/.Xmodmap new file mode 100644 index 0000000..0774e8f --- /dev/null +++ b/misc/.Xmodmap @@ -0,0 +1,10 @@ +keycode 191 = XF86Launch0 +keycode 192 = XF86Launch1 +keycode 193 = XF86Launch2 +keycode 194 = XF86Launch3 +keycode 195 = XF86Launch4 +keycode 196 = XF86Launch5 +keycode 197 = XF86Launch6 +keycode 198 = XF86Launch7 +keycode 199 = XF86Launch8 +keycode 200 = XF86Launch9 diff --git a/misc/90-logitech-g710-plus.rules b/misc/90-logitech-g710-plus.rules new file mode 100644 index 0000000..ba43608 --- /dev/null +++ b/misc/90-logitech-g710-plus.rules @@ -0,0 +1 @@ +ACTION=="add", SUBSYSTEM=="hid", DRIVER=="hid-generic", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c24d", RUN+="/bin/sh -c '/sbin/modprobe hid-lg-g710-plus; if test -d /sys/bus/hid/drivers/hid-generic && test -d /sys/bus/hid/drivers/hid-lg-g710-plus; then /bin/echo -n %k > /sys/bus/hid/drivers/hid-generic/unbind; /bin/echo -n %k > /sys/bus/hid/drivers/hid-lg-g710-plus/bind;fi'"
\ No newline at end of file diff --git a/src/kernel/Makefile b/src/kernel/Makefile new file mode 100644 index 0000000..ee91069 --- /dev/null +++ b/src/kernel/Makefile @@ -0,0 +1,15 @@ + +KVERSION = $(shell uname -r) +KDIR := /lib/modules/$(KVERSION)/build +PWD := $(shell pwd) + +obj-m = hid-lg-g710-plus.o + +default: build + +build: + make -C $(KDIR) M=$(PWD) modules +clean: + make -C $(KDIR) M=$(PWD) clean +install: + make -C $(KDIR) M=$(PWD) modules_install
\ No newline at end of file diff --git a/src/kernel/hid-ids.h b/src/kernel/hid-ids.h new file mode 100644 index 0000000..38535c9 --- /dev/null +++ b/src/kernel/hid-ids.h @@ -0,0 +1,898 @@ +/* + * USB HID quirks support for Linux + * + * Copyright (c) 1999 Andreas Gal + * Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz> + * Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc + * Copyright (c) 2006-2007 Jiri Kosina + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + */ + +#ifndef HID_IDS_H_FILE +#define HID_IDS_H_FILE + +#define USB_VENDOR_ID_3M 0x0596 +#define USB_DEVICE_ID_3M1968 0x0500 +#define USB_DEVICE_ID_3M2256 0x0502 +#define USB_DEVICE_ID_3M3266 0x0506 + +#define USB_VENDOR_ID_A4TECH 0x09da +#define USB_DEVICE_ID_A4TECH_WCP32PU 0x0006 +#define USB_DEVICE_ID_A4TECH_X5_005D 0x000a +#define USB_DEVICE_ID_A4TECH_RP_649 0x001a + +#define USB_VENDOR_ID_AASHIMA 0x06d6 +#define USB_DEVICE_ID_AASHIMA_GAMEPAD 0x0025 +#define USB_DEVICE_ID_AASHIMA_PREDATOR 0x0026 + +#define USB_VENDOR_ID_ACECAD 0x0460 +#define USB_DEVICE_ID_ACECAD_FLAIR 0x0004 +#define USB_DEVICE_ID_ACECAD_302 0x0008 + +#define USB_VENDOR_ID_ACRUX 0x1a34 + +#define USB_VENDOR_ID_ACTIONSTAR 0x2101 +#define USB_DEVICE_ID_ACTIONSTAR_1011 0x1011 + +#define USB_VENDOR_ID_ADS_TECH 0x06e1 +#define USB_DEVICE_ID_ADS_TECH_RADIO_SI470X 0xa155 + +#define USB_VENDOR_ID_AFATECH 0x15a4 +#define USB_DEVICE_ID_AFATECH_AF9016 0x9016 + +#define USB_VENDOR_ID_AIPTEK 0x08ca +#define USB_DEVICE_ID_AIPTEK_01 0x0001 +#define USB_DEVICE_ID_AIPTEK_10 0x0010 +#define USB_DEVICE_ID_AIPTEK_20 0x0020 +#define USB_DEVICE_ID_AIPTEK_21 0x0021 +#define USB_DEVICE_ID_AIPTEK_22 0x0022 +#define USB_DEVICE_ID_AIPTEK_23 0x0023 +#define USB_DEVICE_ID_AIPTEK_24 0x0024 + +#define USB_VENDOR_ID_AIRCABLE 0x16CA +#define USB_DEVICE_ID_AIRCABLE1 0x1502 + +#define USB_VENDOR_ID_AIREN 0x1a2c +#define USB_DEVICE_ID_AIREN_SLIMPLUS 0x0002 + +#define USB_VENDOR_ID_ALCOR 0x058f +#define USB_DEVICE_ID_ALCOR_USBRS232 0x9720 + +#define USB_VENDOR_ID_ALPS 0x0433 +#define USB_DEVICE_ID_IBM_GAMEPAD 0x1101 + +#define USB_VENDOR_ID_APPLE 0x05ac +#define USB_DEVICE_ID_APPLE_MIGHTYMOUSE 0x0304 +#define USB_DEVICE_ID_APPLE_MAGICMOUSE 0x030d +#define USB_DEVICE_ID_APPLE_MAGICTRACKPAD 0x030e +#define USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI 0x020e +#define USB_DEVICE_ID_APPLE_FOUNTAIN_ISO 0x020f +#define USB_DEVICE_ID_APPLE_GEYSER_ANSI 0x0214 +#define USB_DEVICE_ID_APPLE_GEYSER_ISO 0x0215 +#define USB_DEVICE_ID_APPLE_GEYSER_JIS 0x0216 +#define USB_DEVICE_ID_APPLE_GEYSER3_ANSI 0x0217 +#define USB_DEVICE_ID_APPLE_GEYSER3_ISO 0x0218 +#define USB_DEVICE_ID_APPLE_GEYSER3_JIS 0x0219 +#define USB_DEVICE_ID_APPLE_GEYSER4_ANSI 0x021a +#define USB_DEVICE_ID_APPLE_GEYSER4_ISO 0x021b +#define USB_DEVICE_ID_APPLE_GEYSER4_JIS 0x021c +#define USB_DEVICE_ID_APPLE_ALU_MINI_ANSI 0x021d +#define USB_DEVICE_ID_APPLE_ALU_MINI_ISO 0x021e +#define USB_DEVICE_ID_APPLE_ALU_MINI_JIS 0x021f +#define USB_DEVICE_ID_APPLE_ALU_ANSI 0x0220 +#define USB_DEVICE_ID_APPLE_ALU_ISO 0x0221 +#define USB_DEVICE_ID_APPLE_ALU_JIS 0x0222 +#define USB_DEVICE_ID_APPLE_WELLSPRING_ANSI 0x0223 +#define USB_DEVICE_ID_APPLE_WELLSPRING_ISO 0x0224 +#define USB_DEVICE_ID_APPLE_WELLSPRING_JIS 0x0225 +#define USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI 0x0229 +#define USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO 0x022a +#define USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS 0x022b +#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI 0x022c +#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO 0x022d +#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS 0x022e +#define USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI 0x0230 +#define USB_DEVICE_ID_APPLE_WELLSPRING2_ISO 0x0231 +#define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS 0x0232 +#define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236 +#define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237 +#define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238 +#define USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI 0x023f +#define USB_DEVICE_ID_APPLE_WELLSPRING4_ISO 0x0240 +#define USB_DEVICE_ID_APPLE_WELLSPRING4_JIS 0x0241 +#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI 0x0242 +#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO 0x0243 +#define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS 0x0244 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI 0x0245 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_ISO 0x0246 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_JIS 0x0247 +#define USB_DEVICE_ID_APPLE_ALU_REVB_ANSI 0x024f +#define USB_DEVICE_ID_APPLE_ALU_REVB_ISO 0x0250 +#define USB_DEVICE_ID_APPLE_ALU_REVB_JIS 0x0251 +#define USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI 0x0252 +#define USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO 0x0253 +#define USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS 0x0254 +#define USB_DEVICE_ID_APPLE_WELLSPRING7A_ANSI 0x0259 +#define USB_DEVICE_ID_APPLE_WELLSPRING7A_ISO 0x025a +#define USB_DEVICE_ID_APPLE_WELLSPRING7A_JIS 0x025b +#define USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI 0x0249 +#define USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO 0x024a +#define USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS 0x024b +#define USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI 0x024c +#define USB_DEVICE_ID_APPLE_WELLSPRING6_ISO 0x024d +#define USB_DEVICE_ID_APPLE_WELLSPRING6_JIS 0x024e +#define USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI 0x0262 +#define USB_DEVICE_ID_APPLE_WELLSPRING7_ISO 0x0263 +#define USB_DEVICE_ID_APPLE_WELLSPRING7_JIS 0x0264 +#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI 0x0239 +#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO 0x023a +#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b +#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI 0x0255 +#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO 0x0256 +#define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a +#define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b +#define USB_DEVICE_ID_APPLE_IRCONTROL 0x8240 +#define USB_DEVICE_ID_APPLE_IRCONTROL2 0x1440 +#define USB_DEVICE_ID_APPLE_IRCONTROL3 0x8241 +#define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242 +#define USB_DEVICE_ID_APPLE_IRCONTROL5 0x8243 + +#define USB_VENDOR_ID_ASUS 0x0486 +#define USB_DEVICE_ID_ASUS_T91MT 0x0185 +#define USB_DEVICE_ID_ASUSTEK_MULTITOUCH_YFO 0x0186 + +#define USB_VENDOR_ID_ASUSTEK 0x0b05 +#define USB_DEVICE_ID_ASUSTEK_LCM 0x1726 +#define USB_DEVICE_ID_ASUSTEK_LCM2 0x175b + +#define USB_VENDOR_ID_ATEN 0x0557 +#define USB_DEVICE_ID_ATEN_UC100KM 0x2004 +#define USB_DEVICE_ID_ATEN_CS124U 0x2202 +#define USB_DEVICE_ID_ATEN_2PORTKVM 0x2204 +#define USB_DEVICE_ID_ATEN_4PORTKVM 0x2205 +#define USB_DEVICE_ID_ATEN_4PORTKVMC 0x2208 + +#define USB_VENDOR_ID_ATMEL 0x03eb +#define USB_DEVICE_ID_ATMEL_MULTITOUCH 0x211c +#define USB_DEVICE_ID_ATMEL_MXT_DIGITIZER 0x2118 +#define USB_VENDOR_ID_ATMEL_V_USB 0x16c0 +#define USB_DEVICE_ID_ATMEL_V_USB 0x05df + +#define USB_VENDOR_ID_AUREAL 0x0755 +#define USB_DEVICE_ID_AUREAL_W01RN 0x2626 + +#define USB_VENDOR_ID_AVERMEDIA 0x07ca +#define USB_DEVICE_ID_AVER_FM_MR800 0xb800 + +#define USB_VENDOR_ID_AXENTIA 0x12cf +#define USB_DEVICE_ID_AXENTIA_FM_RADIO 0x7111 + +#define USB_VENDOR_ID_BAANTO 0x2453 +#define USB_DEVICE_ID_BAANTO_MT_190W2 0x0100 + +#define USB_VENDOR_ID_BELKIN 0x050d +#define USB_DEVICE_ID_FLIP_KVM 0x3201 + +#define USB_VENDOR_ID_BERKSHIRE 0x0c98 +#define USB_DEVICE_ID_BERKSHIRE_PCWD 0x1140 + +#define USB_VENDOR_ID_BTC 0x046e +#define USB_DEVICE_ID_BTC_EMPREX_REMOTE 0x5578 +#define USB_DEVICE_ID_BTC_EMPREX_REMOTE_2 0x5577 + +#define USB_VENDOR_ID_CANDO 0x2087 +#define USB_DEVICE_ID_CANDO_PIXCIR_MULTI_TOUCH 0x0703 +#define USB_DEVICE_ID_CANDO_MULTI_TOUCH 0x0a01 +#define USB_DEVICE_ID_CANDO_MULTI_TOUCH_10_1 0x0a02 +#define USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6 0x0b03 +#define USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6 0x0f01 + +#define USB_VENDOR_ID_CH 0x068e +#define USB_DEVICE_ID_CH_PRO_THROTTLE 0x00f1 +#define USB_DEVICE_ID_CH_PRO_PEDALS 0x00f2 +#define USB_DEVICE_ID_CH_FIGHTERSTICK 0x00f3 +#define USB_DEVICE_ID_CH_COMBATSTICK 0x00f4 +#define USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE 0x0051 +#define USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE 0x00ff +#define USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK 0x00d3 +#define USB_DEVICE_ID_CH_AXIS_295 0x001c + +#define USB_VENDOR_ID_CHERRY 0x046a +#define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023 +#define USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR 0x0027 + +#define USB_VENDOR_ID_CHIC 0x05fe +#define USB_DEVICE_ID_CHIC_GAMEPAD 0x0014 + +#define USB_VENDOR_ID_CHICONY 0x04f2 +#define USB_DEVICE_ID_CHICONY_TACTICAL_PAD 0x0418 +#define USB_DEVICE_ID_CHICONY_MULTI_TOUCH 0xb19d +#define USB_DEVICE_ID_CHICONY_WIRELESS 0x0618 +#define USB_DEVICE_ID_CHICONY_WIRELESS2 0x1123 +#define USB_DEVICE_ID_CHICONY_AK1D 0x1125 + +#define USB_VENDOR_ID_CHUNGHWAT 0x2247 +#define USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH 0x0001 + +#define USB_VENDOR_ID_CIDC 0x1677 + +#define USB_VENDOR_ID_CMEDIA 0x0d8c +#define USB_DEVICE_ID_CM109 0x000e + +#define USB_VENDOR_ID_CODEMERCS 0x07c0 +#define USB_DEVICE_ID_CODEMERCS_IOW_FIRST 0x1500 +#define USB_DEVICE_ID_CODEMERCS_IOW_LAST 0x15ff + +#define USB_VENDOR_ID_CREATIVELABS 0x041e +#define USB_DEVICE_ID_PRODIKEYS_PCMIDI 0x2801 + +#define USB_VENDOR_ID_CVTOUCH 0x1ff7 +#define USB_DEVICE_ID_CVTOUCH_SCREEN 0x0013 + +#define USB_VENDOR_ID_CYGNAL 0x10c4 +#define USB_DEVICE_ID_CYGNAL_RADIO_SI470X 0x818a + +#define USB_VENDOR_ID_CYPRESS 0x04b4 +#define USB_DEVICE_ID_CYPRESS_MOUSE 0x0001 +#define USB_DEVICE_ID_CYPRESS_HIDCOM 0x5500 +#define USB_DEVICE_ID_CYPRESS_ULTRAMOUSE 0x7417 +#define USB_DEVICE_ID_CYPRESS_BARCODE_1 0xde61 +#define USB_DEVICE_ID_CYPRESS_BARCODE_2 0xde64 +#define USB_DEVICE_ID_CYPRESS_BARCODE_3 0xbca1 +#define USB_DEVICE_ID_CYPRESS_BARCODE_4 0xed81 +#define USB_DEVICE_ID_CYPRESS_TRUETOUCH 0xc001 + +#define USB_VENDOR_ID_DEALEXTREAME 0x10c5 +#define USB_DEVICE_ID_DEALEXTREAME_RADIO_SI4701 0x819a + +#define USB_VENDOR_ID_DELORME 0x1163 +#define USB_DEVICE_ID_DELORME_EARTHMATE 0x0100 +#define USB_DEVICE_ID_DELORME_EM_LT20 0x0200 + +#define USB_VENDOR_ID_DMI 0x0c0b +#define USB_DEVICE_ID_DMI_ENC 0x5fab + +#define USB_VENDOR_ID_DRAGONRISE 0x0079 + +#define USB_VENDOR_ID_DWAV 0x0eef +#define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER 0x0001 +#define USB_DEVICE_ID_DWAV_TOUCHCONTROLLER 0x0002 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D 0x480d +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E 0x480e +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7207 0x7207 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C 0x720c +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224 0x7224 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_722A 0x722A +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_725E 0x725e +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7262 0x7262 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B 0x726b +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72AA 0x72aa +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1 0x72a1 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA 0x72fa +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302 0x7302 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349 0x7349 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_73F7 0x73f7 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001 0xa001 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224 0x7224 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72D0 0x72d0 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72C4 0x72c4 + +#define USB_VENDOR_ID_ELECOM 0x056e +#define USB_DEVICE_ID_ELECOM_BM084 0x0061 + +#define USB_VENDOR_ID_DREAM_CHEEKY 0x1d34 + +#define USB_VENDOR_ID_ELO 0x04E7 +#define USB_DEVICE_ID_ELO_TS2515 0x0022 +#define USB_DEVICE_ID_ELO_TS2700 0x0020 + +#define USB_VENDOR_ID_EMS 0x2006 +#define USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II 0x0118 + +#define USB_VENDOR_ID_FLATFROG 0x25b5 +#define USB_DEVICE_ID_MULTITOUCH_3200 0x0002 + +#define USB_VENDOR_ID_ESSENTIAL_REALITY 0x0d7f +#define USB_DEVICE_ID_ESSENTIAL_REALITY_P5 0x0100 + +#define USB_VENDOR_ID_ETT 0x0664 +#define USB_DEVICE_ID_TC5UH 0x0309 +#define USB_DEVICE_ID_TC4UM 0x0306 + +#define USB_VENDOR_ID_ETURBOTOUCH 0x22b9 +#define USB_DEVICE_ID_ETURBOTOUCH 0x0006 + +#define USB_VENDOR_ID_EZKEY 0x0518 +#define USB_DEVICE_ID_BTC_8193 0x0002 + +#define USB_VENDOR_ID_FORMOSA 0x147a +#define USB_DEVICE_ID_FORMOSA_IR_RECEIVER 0xe03e + +#define USB_VENDOR_ID_FREESCALE 0x15A2 +#define USB_DEVICE_ID_FREESCALE_MX28 0x004F + +#define USB_VENDOR_ID_FRUCTEL 0x25B6 +#define USB_DEVICE_ID_GAMETEL_MT_MODE 0x0002 + +#define USB_VENDOR_ID_GAMERON 0x0810 +#define USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR 0x0001 +#define USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR 0x0002 + +#define USB_VENDOR_ID_GENERAL_TOUCH 0x0dfc +#define USB_DEVICE_ID_GENERAL_TOUCH_WIN7_TWOFINGERS 0x0003 +#define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PWT_TENFINGERS 0x0100 + +#define USB_VENDOR_ID_GLAB 0x06c2 +#define USB_DEVICE_ID_4_PHIDGETSERVO_30 0x0038 +#define USB_DEVICE_ID_1_PHIDGETSERVO_30 0x0039 +#define USB_DEVICE_ID_0_0_4_IF_KIT 0x0040 +#define USB_DEVICE_ID_0_16_16_IF_KIT 0x0044 +#define USB_DEVICE_ID_8_8_8_IF_KIT 0x0045 +#define USB_DEVICE_ID_0_8_7_IF_KIT 0x0051 +#define USB_DEVICE_ID_0_8_8_IF_KIT 0x0053 +#define USB_DEVICE_ID_PHIDGET_MOTORCONTROL 0x0058 + +#define USB_VENDOR_ID_GOODTOUCH 0x1aad +#define USB_DEVICE_ID_GOODTOUCH_000f 0x000f + +#define USB_VENDOR_ID_GOTOP 0x08f2 +#define USB_DEVICE_ID_SUPER_Q2 0x007f +#define USB_DEVICE_ID_GOGOPEN 0x00ce +#define USB_DEVICE_ID_PENPOWER 0x00f4 + +#define USB_VENDOR_ID_GREENASIA 0x0e8f +#define USB_DEVICE_ID_GREENASIA_DUAL_USB_JOYPAD 0x3013 + +#define USB_VENDOR_ID_GRETAGMACBETH 0x0971 +#define USB_DEVICE_ID_GRETAGMACBETH_HUEY 0x2005 + +#define USB_VENDOR_ID_GRIFFIN 0x077d +#define USB_DEVICE_ID_POWERMATE 0x0410 +#define USB_DEVICE_ID_SOUNDKNOB 0x04AA +#define USB_DEVICE_ID_RADIOSHARK 0x627a + +#define USB_VENDOR_ID_GTCO 0x078c +#define USB_DEVICE_ID_GTCO_90 0x0090 +#define USB_DEVICE_ID_GTCO_100 0x0100 +#define USB_DEVICE_ID_GTCO_101 0x0101 +#define USB_DEVICE_ID_GTCO_103 0x0103 +#define USB_DEVICE_ID_GTCO_104 0x0104 +#define USB_DEVICE_ID_GTCO_105 0x0105 +#define USB_DEVICE_ID_GTCO_106 0x0106 +#define USB_DEVICE_ID_GTCO_107 0x0107 +#define USB_DEVICE_ID_GTCO_108 0x0108 +#define USB_DEVICE_ID_GTCO_200 0x0200 +#define USB_DEVICE_ID_GTCO_201 0x0201 +#define USB_DEVICE_ID_GTCO_202 0x0202 +#define USB_DEVICE_ID_GTCO_203 0x0203 +#define USB_DEVICE_ID_GTCO_204 0x0204 +#define USB_DEVICE_ID_GTCO_205 0x0205 +#define USB_DEVICE_ID_GTCO_206 0x0206 +#define USB_DEVICE_ID_GTCO_207 0x0207 +#define USB_DEVICE_ID_GTCO_300 0x0300 +#define USB_DEVICE_ID_GTCO_301 0x0301 +#define USB_DEVICE_ID_GTCO_302 0x0302 +#define USB_DEVICE_ID_GTCO_303 0x0303 +#define USB_DEVICE_ID_GTCO_304 0x0304 +#define USB_DEVICE_ID_GTCO_305 0x0305 +#define USB_DEVICE_ID_GTCO_306 0x0306 +#define USB_DEVICE_ID_GTCO_307 0x0307 +#define USB_DEVICE_ID_GTCO_308 0x0308 +#define USB_DEVICE_ID_GTCO_309 0x0309 +#define USB_DEVICE_ID_GTCO_400 0x0400 +#define USB_DEVICE_ID_GTCO_401 0x0401 +#define USB_DEVICE_ID_GTCO_402 0x0402 +#define USB_DEVICE_ID_GTCO_403 0x0403 +#define USB_DEVICE_ID_GTCO_404 0x0404 +#define USB_DEVICE_ID_GTCO_405 0x0405 +#define USB_DEVICE_ID_GTCO_500 0x0500 +#define USB_DEVICE_ID_GTCO_501 0x0501 +#define USB_DEVICE_ID_GTCO_502 0x0502 +#define USB_DEVICE_ID_GTCO_503 0x0503 +#define USB_DEVICE_ID_GTCO_504 0x0504 +#define USB_DEVICE_ID_GTCO_1000 0x1000 +#define USB_DEVICE_ID_GTCO_1001 0x1001 +#define USB_DEVICE_ID_GTCO_1002 0x1002 +#define USB_DEVICE_ID_GTCO_1003 0x1003 +#define USB_DEVICE_ID_GTCO_1004 0x1004 +#define USB_DEVICE_ID_GTCO_1005 0x1005 +#define USB_DEVICE_ID_GTCO_1006 0x1006 +#define USB_DEVICE_ID_GTCO_1007 0x1007 + +#define USB_VENDOR_ID_GYRATION 0x0c16 +#define USB_DEVICE_ID_GYRATION_REMOTE 0x0002 +#define USB_DEVICE_ID_GYRATION_REMOTE_2 0x0003 +#define USB_DEVICE_ID_GYRATION_REMOTE_3 0x0008 + +#define USB_VENDOR_ID_HANWANG 0x0b57 +#define USB_DEVICE_ID_HANWANG_TABLET_FIRST 0x5000 +#define USB_DEVICE_ID_HANWANG_TABLET_LAST 0x8fff + +#define USB_VENDOR_ID_HANVON 0x20b3 +#define USB_DEVICE_ID_HANVON_MULTITOUCH 0x0a18 + +#define USB_VENDOR_ID_HANVON_ALT 0x22ed +#define USB_DEVICE_ID_HANVON_ALT_MULTITOUCH 0x1010 + +#define USB_VENDOR_ID_HAPP 0x078b +#define USB_DEVICE_ID_UGCI_DRIVING 0x0010 +#define USB_DEVICE_ID_UGCI_FLYING 0x0020 +#define USB_DEVICE_ID_UGCI_FIGHTING 0x0030 + +#define USB_VENDOR_ID_IDEACOM 0x1cb6 +#define USB_DEVICE_ID_IDEACOM_IDC6650 0x6650 +#define USB_DEVICE_ID_IDEACOM_IDC6651 0x6651 + +#define USB_VENDOR_ID_ILITEK 0x222a +#define USB_DEVICE_ID_ILITEK_MULTITOUCH 0x0001 + +#define USB_VENDOR_ID_ION 0x15e4 +#define USB_DEVICE_ID_ICADE 0x0132 + +#define USB_VENDOR_ID_HOLTEK 0x1241 +#define USB_DEVICE_ID_HOLTEK_ON_LINE_GRIP 0x5015 + +#define USB_VENDOR_ID_HOLTEK_ALT 0x04d9 +#define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD 0xa055 + +#define USB_VENDOR_ID_IMATION 0x0718 +#define USB_DEVICE_ID_DISC_STAKKA 0xd000 + +#define USB_VENDOR_ID_IRTOUCHSYSTEMS 0x6615 +#define USB_DEVICE_ID_IRTOUCH_INFRARED_USB 0x0070 + +#define USB_VENDOR_ID_JESS 0x0c45 +#define USB_DEVICE_ID_JESS_YUREX 0x1010 + +#define USB_VENDOR_ID_JESS2 0x0f30 +#define USB_DEVICE_ID_JESS2_COLOR_RUMBLE_PAD 0x0111 + +#define USB_VENDOR_ID_KBGEAR 0x084e +#define USB_DEVICE_ID_KBGEAR_JAMSTUDIO 0x1001 + +#define USB_VENDOR_ID_KENSINGTON 0x047d +#define USB_DEVICE_ID_KS_SLIMBLADE 0x2041 + +#define USB_VENDOR_ID_KWORLD 0x1b80 +#define USB_DEVICE_ID_KWORLD_RADIO_FM700 0xd700 + +#define USB_VENDOR_ID_KEYTOUCH 0x0926 +#define USB_DEVICE_ID_KEYTOUCH_IEC 0x3333 + +#define USB_VENDOR_ID_KYE 0x0458 +#define USB_DEVICE_ID_KYE_ERGO_525V 0x0087 +#define USB_DEVICE_ID_KYE_GPEN_560 0x5003 +#define USB_DEVICE_ID_KYE_EASYPEN_I405X 0x5010 +#define USB_DEVICE_ID_KYE_MOUSEPEN_I608X 0x5011 +#define USB_DEVICE_ID_KYE_EASYPEN_M610X 0x5013 + +#define USB_VENDOR_ID_LABTEC 0x1020 +#define USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD 0x0006 + +#define USB_VENDOR_ID_LCPOWER 0x1241 +#define USB_DEVICE_ID_LCPOWER_LC1000 0xf767 + +#define USB_VENDOR_ID_LD 0x0f11 +#define USB_DEVICE_ID_LD_CASSY 0x1000 +#define USB_DEVICE_ID_LD_CASSY2 0x1001 +#define USB_DEVICE_ID_LD_POCKETCASSY 0x1010 +#define USB_DEVICE_ID_LD_POCKETCASSY2 0x1011 +#define USB_DEVICE_ID_LD_MOBILECASSY 0x1020 +#define USB_DEVICE_ID_LD_MOBILECASSY2 0x1021 +#define USB_DEVICE_ID_LD_MICROCASSYVOLTAGE 0x1031 +#define USB_DEVICE_ID_LD_MICROCASSYCURRENT 0x1032 +#define USB_DEVICE_ID_LD_MICROCASSYTIME 0x1033 +#define USB_DEVICE_ID_LD_MICROCASSYTEMPERATURE 0x1035 +#define USB_DEVICE_ID_LD_MICROCASSYPH 0x1038 +#define USB_DEVICE_ID_LD_JWM 0x1080 +#define USB_DEVICE_ID_LD_DMMP 0x1081 +#define USB_DEVICE_ID_LD_UMIP 0x1090 +#define USB_DEVICE_ID_LD_UMIC 0x10A0 +#define USB_DEVICE_ID_LD_UMIB 0x10B0 +#define USB_DEVICE_ID_LD_XRAY 0x1100 +#define USB_DEVICE_ID_LD_XRAY2 0x1101 +#define USB_DEVICE_ID_LD_XRAYCT 0x1110 +#define USB_DEVICE_ID_LD_VIDEOCOM 0x1200 +#define USB_DEVICE_ID_LD_MOTOR 0x1210 +#define USB_DEVICE_ID_LD_COM3LAB 0x2000 +#define USB_DEVICE_ID_LD_TELEPORT 0x2010 +#define USB_DEVICE_ID_LD_NETWORKANALYSER 0x2020 +#define USB_DEVICE_ID_LD_POWERCONTROL 0x2030 +#define USB_DEVICE_ID_LD_MACHINETEST 0x2040 +#define USB_DEVICE_ID_LD_MOSTANALYSER 0x2050 +#define USB_DEVICE_ID_LD_MOSTANALYSER2 0x2051 +#define USB_DEVICE_ID_LD_ABSESP 0x2060 +#define USB_DEVICE_ID_LD_AUTODATABUS 0x2070 +#define USB_DEVICE_ID_LD_MCT 0x2080 +#define USB_DEVICE_ID_LD_HYBRID 0x2090 +#define USB_DEVICE_ID_LD_HEATCONTROL 0x20A0 + +#define USB_VENDOR_ID_LENOVO 0x17ef +#define USB_DEVICE_ID_LENOVO_TPKBD 0x6009 + +#define USB_VENDOR_ID_LG 0x1fd2 +#define USB_DEVICE_ID_LG_MULTITOUCH 0x0064 + +#define USB_VENDOR_ID_LOGITECH 0x046d +#define USB_DEVICE_ID_LOGITECH_AUDIOHUB 0x0a0e +#define USB_DEVICE_ID_LOGITECH_RECEIVER 0xc101 +#define USB_DEVICE_ID_LOGITECH_HARMONY_FIRST 0xc110 +#define USB_DEVICE_ID_LOGITECH_HARMONY_LAST 0xc14f +#define USB_DEVICE_ID_LOGITECH_HARMONY_PS3 0x0306 +#define USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD 0xc20a +#define USB_DEVICE_ID_LOGITECH_RUMBLEPAD 0xc211 +#define USB_DEVICE_ID_LOGITECH_EXTREME_3D 0xc215 +#define USB_DEVICE_ID_LOGITECH_RUMBLEPAD2 0xc218 +#define USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2 0xc219 +#define USB_DEVICE_ID_LOGITECH_WINGMAN_F3D 0xc283 +#define USB_DEVICE_ID_LOGITECH_FORCE3D_PRO 0xc286 +#define USB_DEVICE_ID_LOGITECH_FLIGHT_SYSTEM_G940 0xc287 +#define USB_DEVICE_ID_LOGITECH_WINGMAN_FFG 0xc293 +#define USB_DEVICE_ID_LOGITECH_WHEEL 0xc294 +#define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL 0xc295 +#define USB_DEVICE_ID_LOGITECH_DFP_WHEEL 0xc298 +#define USB_DEVICE_ID_LOGITECH_G25_WHEEL 0xc299 +#define USB_DEVICE_ID_LOGITECH_DFGT_WHEEL 0xc29a +#define USB_DEVICE_ID_LOGITECH_G27_WHEEL 0xc29b +#define USB_DEVICE_ID_LOGITECH_WII_WHEEL 0xc29c +#define USB_DEVICE_ID_LOGITECH_ELITE_KBD 0xc30a +#define USB_DEVICE_ID_S510_RECEIVER 0xc50c +#define USB_DEVICE_ID_S510_RECEIVER_2 0xc517 +#define USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500 0xc512 +#define USB_DEVICE_ID_MX3000_RECEIVER 0xc513 +#define USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER 0xc52b +#define USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2 0xc532 +#define USB_DEVICE_ID_SPACETRAVELLER 0xc623 +#define USB_DEVICE_ID_SPACENAVIGATOR 0xc626 +#define USB_DEVICE_ID_DINOVO_DESKTOP 0xc704 +#define USB_DEVICE_ID_DINOVO_EDGE 0xc714 +#define USB_DEVICE_ID_DINOVO_MINI 0xc71f +#define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2 0xca03 + +#define USB_VENDOR_ID_LUMIO 0x202e +#define USB_DEVICE_ID_CRYSTALTOUCH 0x0006 +#define USB_DEVICE_ID_CRYSTALTOUCH_DUAL 0x0007 + +#define USB_VENDOR_ID_MADCATZ 0x0738 +#define USB_DEVICE_ID_MADCATZ_BEATPAD 0x4540 + +#define USB_VENDOR_ID_MCC 0x09db +#define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 +#define USB_DEVICE_ID_MCC_PMD1208LS 0x007a + +#define USB_VENDOR_ID_MGE 0x0463 +#define USB_DEVICE_ID_MGE_UPS 0xffff +#define USB_DEVICE_ID_MGE_UPS1 0x0001 + +#define USB_VENDOR_ID_MICROCHIP 0x04d8 +#define USB_DEVICE_ID_PICKIT1 0x0032 +#define USB_DEVICE_ID_PICKIT2 0x0033 +#define USB_DEVICE_ID_PICOLCD 0xc002 +#define USB_DEVICE_ID_PICOLCD_BOOTLOADER 0xf002 + +#define USB_VENDOR_ID_MICROSOFT 0x045e +#define USB_DEVICE_ID_SIDEWINDER_GV 0x003b +#define USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0 0x009d +#define USB_DEVICE_ID_MS_NE4K 0x00db +#define USB_DEVICE_ID_MS_NE4K_JP 0x00dc +#define USB_DEVICE_ID_MS_LK6K 0x00f9 +#define USB_DEVICE_ID_MS_PRESENTER_8K_BT 0x0701 +#define USB_DEVICE_ID_MS_PRESENTER_8K_USB 0x0713 +#define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K 0x0730 +#define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500 0x076c + +#define USB_VENDOR_ID_MOJO 0x8282 +#define USB_DEVICE_ID_RETRO_ADAPTER 0x3201 + +#define USB_VENDOR_ID_MONTEREY 0x0566 +#define USB_DEVICE_ID_GENIUS_KB29E 0x3004 + +#define USB_VENDOR_ID_MSI 0x1770 +#define USB_DEVICE_ID_MSI_GX680R_LED_PANEL 0xff00 + +#define USB_VENDOR_ID_NATIONAL_SEMICONDUCTOR 0x0400 +#define USB_DEVICE_ID_N_S_HARMONY 0xc359 + +#define USB_VENDOR_ID_NATSU 0x08b7 +#define USB_DEVICE_ID_NATSU_GAMEPAD 0x0001 + +#define USB_VENDOR_ID_NCR 0x0404 +#define USB_DEVICE_ID_NCR_FIRST 0x0300 +#define USB_DEVICE_ID_NCR_LAST 0x03ff + +#define USB_VENDOR_ID_NEC 0x073e +#define USB_DEVICE_ID_NEC_USB_GAME_PAD 0x0301 + +#define USB_VENDOR_ID_NEXIO 0x1870 +#define USB_DEVICE_ID_NEXIO_MULTITOUCH_420 0x010d + +#define USB_VENDOR_ID_NEXTWINDOW 0x1926 +#define USB_DEVICE_ID_NEXTWINDOW_TOUCHSCREEN 0x0003 + +#define USB_VENDOR_ID_NINTENDO 0x057e +#define USB_DEVICE_ID_NINTENDO_WIIMOTE 0x0306 +#define USB_DEVICE_ID_NINTENDO_WIIMOTE2 0x0330 + +#define USB_VENDOR_ID_NOVATEK 0x0603 +#define USB_DEVICE_ID_NOVATEK_PCT 0x0600 +#define USB_DEVICE_ID_NOVATEK_MOUSE 0x1602 + +#define USB_VENDOR_ID_NTRIG 0x1b96 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN 0x0001 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_1 0x0003 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_2 0x0004 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_3 0x0005 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_4 0x0006 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_5 0x0007 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_6 0x0008 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_7 0x0009 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_8 0x000A +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_9 0x000B +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_10 0x000C +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_11 0x000D +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_12 0x000E +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_13 0x000F +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_14 0x0010 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_15 0x0011 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_16 0x0012 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_17 0x0013 +#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18 0x0014 + +#define USB_VENDOR_ID_ONTRAK 0x0a07 +#define USB_DEVICE_ID_ONTRAK_ADU100 0x0064 + +#define USB_VENDOR_ID_ORTEK 0x05a4 +#define USB_DEVICE_ID_ORTEK_PKB1700 0x1700 +#define USB_DEVICE_ID_ORTEK_WKB2000 0x2000 + +#define USB_VENDOR_ID_PANASONIC 0x04da +#define USB_DEVICE_ID_PANABOARD_UBT780 0x1044 +#define USB_DEVICE_ID_PANABOARD_UBT880 0x104d + +#define USB_VENDOR_ID_PANJIT 0x134c + +#define USB_VENDOR_ID_PANTHERLORD 0x0810 +#define USB_DEVICE_ID_PANTHERLORD_TWIN_USB_JOYSTICK 0x0001 + +#define USB_VENDOR_ID_PENMOUNT 0x14e1 +#define USB_DEVICE_ID_PENMOUNT_PCI 0x3500 + +#define USB_VENDOR_ID_PETALYNX 0x18b1 +#define USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE 0x0037 + +#define USB_VENDOR_ID_PHILIPS 0x0471 +#define USB_DEVICE_ID_PHILIPS_IEEE802154_DONGLE 0x0617 + +#define USB_VENDOR_ID_PI_ENGINEERING 0x05f3 +#define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL 0xff + +#define USB_VENDOR_ID_PIXART 0x093a +#define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN 0x8001 +#define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1 0x8002 +#define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2 0x8003 + +#define USB_VENDOR_ID_PLAYDOTCOM 0x0b43 +#define USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII 0x0003 + +#define USB_VENDOR_ID_POWERCOM 0x0d9f +#define USB_DEVICE_ID_POWERCOM_UPS 0x0002 + +#define USB_VENDOR_ID_PRODIGE 0x05af +#define USB_DEVICE_ID_PRODIGE_CORDLESS 0x3062 + +#define USB_VENDOR_ID_QUANTA 0x0408 +#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH 0x3000 +#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001 0x3001 +#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008 0x3008 + +#define USB_VENDOR_ID_REALTEK 0x0bda +#define USB_DEVICE_ID_REALTEK_READER 0x0152 + +#define USB_VENDOR_ID_ROCCAT 0x1e7d +#define USB_DEVICE_ID_ROCCAT_ARVO 0x30d4 +#define USB_DEVICE_ID_ROCCAT_ISKU 0x319c +#define USB_DEVICE_ID_ROCCAT_ISKUFX 0x3264 +#define USB_DEVICE_ID_ROCCAT_KONE 0x2ced +#define USB_DEVICE_ID_ROCCAT_KONEPLUS 0x2d51 +#define USB_DEVICE_ID_ROCCAT_KONEPURE 0x2dbe +#define USB_DEVICE_ID_ROCCAT_KONEXTD 0x2e22 +#define USB_DEVICE_ID_ROCCAT_KOVAPLUS 0x2d50 +#define USB_DEVICE_ID_ROCCAT_LUA 0x2c2e +#define USB_DEVICE_ID_ROCCAT_PYRA_WIRED 0x2c24 +#define USB_DEVICE_ID_ROCCAT_PYRA_WIRELESS 0x2cf6 +#define USB_DEVICE_ID_ROCCAT_SAVU 0x2d5a + +#define USB_VENDOR_ID_SAITEK 0x06a3 +#define USB_DEVICE_ID_SAITEK_RUMBLEPAD 0xff17 +#define USB_DEVICE_ID_SAITEK_PS1000 0x0621 + +#define USB_VENDOR_ID_SAMSUNG 0x0419 +#define USB_DEVICE_ID_SAMSUNG_IR_REMOTE 0x0001 +#define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE 0x0600 + +#define USB_VENDOR_ID_SENNHEISER 0x1395 +#define USB_DEVICE_ID_SENNHEISER_BTD500USB 0x002c + +#define USB_VENDOR_ID_SIGMA_MICRO 0x1c4f +#define USB_DEVICE_ID_SIGMA_MICRO_KEYBOARD 0x0002 + +#define USB_VENDOR_ID_SIGMATEL 0x066F +#define USB_DEVICE_ID_SIGMATEL_STMP3780 0x3780 + +#define USB_VENDOR_ID_SKYCABLE 0x1223 +#define USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER 0x3F07 + +#define USB_VENDOR_ID_SONY 0x054c +#define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE 0x024b +#define USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE 0x0374 +#define USB_DEVICE_ID_SONY_PS3_BDREMOTE 0x0306 +#define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268 +#define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER 0x042f + +#define USB_VENDOR_ID_SOUNDGRAPH 0x15c2 +#define USB_DEVICE_ID_SOUNDGRAPH_IMON_FIRST 0x0034 +#define USB_DEVICE_ID_SOUNDGRAPH_IMON_LAST 0x0046 + +#define USB_VENDOR_ID_STANTUM 0x1f87 +#define USB_DEVICE_ID_MTP 0x0002 + +#define USB_VENDOR_ID_STANTUM_STM 0x0483 +#define USB_DEVICE_ID_MTP_STM 0x3261 + +#define USB_VENDOR_ID_STANTUM_SITRONIX 0x1403 +#define USB_DEVICE_ID_MTP_SITRONIX 0x5001 + +#define USB_VENDOR_ID_STEELSERIES 0x1038 +#define USB_DEVICE_ID_STEELSERIES_SRWS1 0x1410 + +#define USB_VENDOR_ID_SUN 0x0430 +#define USB_DEVICE_ID_RARITAN_KVM_DONGLE 0xcdab + +#define USB_VENDOR_ID_SUNPLUS 0x04fc +#define USB_DEVICE_ID_SUNPLUS_WDESKTOP 0x05d8 + +#define USB_VENDOR_ID_SYMBOL 0x05e0 +#define USB_DEVICE_ID_SYMBOL_SCANNER_1 0x0800 +#define USB_DEVICE_ID_SYMBOL_SCANNER_2 0x1300 + +#define USB_VENDOR_ID_SYNAPTICS 0x06cb +#define USB_DEVICE_ID_SYNAPTICS_TP 0x0001 +#define USB_DEVICE_ID_SYNAPTICS_INT_TP 0x0002 +#define USB_DEVICE_ID_SYNAPTICS_CPAD 0x0003 +#define USB_DEVICE_ID_SYNAPTICS_TS 0x0006 +#define USB_DEVICE_ID_SYNAPTICS_STICK 0x0007 +#define USB_DEVICE_ID_SYNAPTICS_WP 0x0008 +#define USB_DEVICE_ID_SYNAPTICS_COMP_TP 0x0009 +#define USB_DEVICE_ID_SYNAPTICS_WTP 0x0010 +#define USB_DEVICE_ID_SYNAPTICS_DPAD 0x0013 + +#define USB_VENDOR_ID_THINGM 0x27b8 +#define USB_DEVICE_ID_BLINK1 0x01ed + +#define USB_VENDOR_ID_THRUSTMASTER 0x044f + +#define USB_VENDOR_ID_TIVO 0x150a +#define USB_DEVICE_ID_TIVO_SLIDE_BT 0x1200 +#define USB_DEVICE_ID_TIVO_SLIDE 0x1201 + +#define USB_VENDOR_ID_TOPSEED 0x0766 +#define USB_DEVICE_ID_TOPSEED_CYBERLINK 0x0204 + +#define USB_VENDOR_ID_TOPSEED2 0x1784 +#define USB_DEVICE_ID_TOPSEED2_RF_COMBO 0x0004 +#define USB_DEVICE_ID_TOPSEED2_PERIPAD_701 0x0016 + +#define USB_VENDOR_ID_TOPMAX 0x0663 +#define USB_DEVICE_ID_TOPMAX_COBRAPAD 0x0103 + +#define USB_VENDOR_ID_TOUCH_INTL 0x1e5e +#define USB_DEVICE_ID_TOUCH_INTL_MULTI_TOUCH 0x0313 + +#define USB_VENDOR_ID_TOUCHPACK 0x1bfd +#define USB_DEVICE_ID_TOUCHPACK_RTS 0x1688 + +#define USB_VENDOR_ID_TPV 0x25aa +#define USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN 0x8883 + +#define USB_VENDOR_ID_TURBOX 0x062a +#define USB_DEVICE_ID_TURBOX_KEYBOARD 0x0201 +#define USB_DEVICE_ID_TURBOX_TOUCHSCREEN_MOSART 0x7100 + +#define USB_VENDOR_ID_TWINHAN 0x6253 +#define USB_DEVICE_ID_TWINHAN_IR_REMOTE 0x0100 + +#define USB_VENDOR_ID_UCLOGIC 0x5543 +#define USB_DEVICE_ID_UCLOGIC_TABLET_PF1209 0x0042 +#define USB_DEVICE_ID_UCLOGIC_TABLET_KNA5 0x6001 +#define USB_DEVICE_ID_UCLOGIC_TABLET_TWA60 0x0064 +#define USB_DEVICE_ID_UCLOGIC_TABLET_WP4030U 0x0003 +#define USB_DEVICE_ID_UCLOGIC_TABLET_WP5540U 0x0004 +#define USB_DEVICE_ID_UCLOGIC_TABLET_WP8060U 0x0005 +#define USB_DEVICE_ID_UCLOGIC_TABLET_WP1062 0x0064 +#define USB_DEVICE_ID_UCLOGIC_WIRELESS_TABLET_TWHL850 0x0522 +#define USB_DEVICE_ID_UCLOGIC_TABLET_TWHA60 0x0781 + +#define USB_VENDOR_ID_UNITEC 0x227d +#define USB_DEVICE_ID_UNITEC_USB_TOUCH_0709 0x0709 +#define USB_DEVICE_ID_UNITEC_USB_TOUCH_0A19 0x0a19 + +#define USB_VENDOR_ID_VELLEMAN 0x10cf +#define USB_DEVICE_ID_VELLEMAN_K8055_FIRST 0x5500 +#define USB_DEVICE_ID_VELLEMAN_K8055_LAST 0x5503 +#define USB_DEVICE_ID_VELLEMAN_K8061_FIRST 0x8061 +#define USB_DEVICE_ID_VELLEMAN_K8061_LAST 0x8068 + +#define USB_VENDOR_ID_VERNIER 0x08f7 +#define USB_DEVICE_ID_VERNIER_LABPRO 0x0001 +#define USB_DEVICE_ID_VERNIER_GOTEMP 0x0002 +#define USB_DEVICE_ID_VERNIER_SKIP 0x0003 +#define USB_DEVICE_ID_VERNIER_CYCLOPS 0x0004 +#define USB_DEVICE_ID_VERNIER_LCSPEC 0x0006 + +#define USB_VENDOR_ID_WACOM 0x056a +#define USB_DEVICE_ID_WACOM_GRAPHIRE_BLUETOOTH 0x81 +#define USB_DEVICE_ID_WACOM_INTUOS4_BLUETOOTH 0x00BD + +#define USB_VENDOR_ID_WALTOP 0x172f +#define USB_DEVICE_ID_WALTOP_SLIM_TABLET_5_8_INCH 0x0032 +#define USB_DEVICE_ID_WALTOP_SLIM_TABLET_12_1_INCH 0x0034 +#define USB_DEVICE_ID_WALTOP_Q_PAD 0x0037 +#define USB_DEVICE_ID_WALTOP_PID_0038 0x0038 +#define USB_DEVICE_ID_WALTOP_MEDIA_TABLET_10_6_INCH 0x0501 +#define USB_DEVICE_ID_WALTOP_MEDIA_TABLET_14_1_INCH 0x0500 +#define USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET 0x0502 + +#define USB_VENDOR_ID_WISEGROUP 0x0925 +#define USB_DEVICE_ID_SMARTJOY_PLUS 0x0005 +#define USB_DEVICE_ID_1_PHIDGETSERVO_20 0x8101 +#define USB_DEVICE_ID_4_PHIDGETSERVO_20 0x8104 +#define USB_DEVICE_ID_8_8_4_IF_KIT 0x8201 +#define USB_DEVICE_ID_SUPER_JOY_BOX_3 0x8888 +#define USB_DEVICE_ID_QUAD_USB_JOYPAD 0x8800 +#define USB_DEVICE_ID_DUAL_USB_JOYPAD 0x8866 + +#define USB_VENDOR_ID_WISEGROUP_LTD 0x6666 +#define USB_VENDOR_ID_WISEGROUP_LTD2 0x6677 +#define USB_DEVICE_ID_SMARTJOY_DUAL_PLUS 0x8802 +#define USB_DEVICE_ID_SUPER_JOY_BOX_3_PRO 0x8801 +#define USB_DEVICE_ID_SUPER_DUAL_BOX_PRO 0x8802 +#define USB_DEVICE_ID_SUPER_JOY_BOX_5_PRO 0x8804 + +#define USB_VENDOR_ID_X_TENSIONS 0x1ae7 +#define USB_DEVICE_ID_SPEEDLINK_VAD_CEZANNE 0x9001 + +#define USB_VENDOR_ID_XAT 0x2505 +#define USB_DEVICE_ID_XAT_CSR 0x0220 + +#define USB_VENDOR_ID_XIROKU 0x1477 +#define USB_DEVICE_ID_XIROKU_SPX 0x1006 +#define USB_DEVICE_ID_XIROKU_MPX 0x1007 +#define USB_DEVICE_ID_XIROKU_CSR 0x100e +#define USB_DEVICE_ID_XIROKU_SPX1 0x1021 +#define USB_DEVICE_ID_XIROKU_CSR1 0x1022 +#define USB_DEVICE_ID_XIROKU_MPX1 0x1023 +#define USB_DEVICE_ID_XIROKU_SPX2 0x1024 +#define USB_DEVICE_ID_XIROKU_CSR2 0x1025 +#define USB_DEVICE_ID_XIROKU_MPX2 0x1026 + +#define USB_VENDOR_ID_YEALINK 0x6993 +#define USB_DEVICE_ID_YEALINK_P1K_P4K_B2K 0xb001 + +#define USB_VENDOR_ID_ZEROPLUS 0x0c12 + +#define USB_VENDOR_ID_ZYDACRON 0x13EC +#define USB_DEVICE_ID_ZYDACRON_REMOTE_CONTROL 0x0006 + +#define USB_VENDOR_ID_ZYTRONIC 0x14c8 +#define USB_DEVICE_ID_ZYTRONIC_ZXY100 0x0005 + +#define USB_VENDOR_ID_PRIMAX 0x0461 +#define USB_DEVICE_ID_PRIMAX_KEYBOARD 0x4e05 + +#endif diff --git a/src/kernel/hid-lg-g710-plus.c b/src/kernel/hid-lg-g710-plus.c new file mode 100644 index 0000000..eff059f --- /dev/null +++ b/src/kernel/hid-lg-g710-plus.c @@ -0,0 +1,342 @@ +/* + * Logitech G710+ Keyboard Input Driver + * + * Driver generates additional key events for the keys M1-MR, G1-G6 + * and supports setting the backlight levels of the keyboard + * + * Copyright (c) 2013 Filip Wieladke <Wattos@gmail.com> + */ + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + */ + +#include <linux/hid.h> +#include <linux/input.h> +#include <linux/device.h> +#include <linux/module.h> +#include <linux/usb.h> + +#include "hid-ids.h" +#include "usbhid/usbhid.h" + +#define USB_DEVICE_ID_LOGITECH_KEYBOARD_G710_PLUS 0xc24d + +// 20 seeconds timeout +#define WAIT_TIME_OUT 20000 + +#define LOGITECH_KEY_MAP_SIZE 16 + +static const u8 g710_plus_key_map[LOGITECH_KEY_MAP_SIZE] = { + 0, /* unused */ + 0, /* unused */ + 0, /* unused */ + 0, /* unused */ + KEY_F13, /* M1 */ + KEY_F14, /* M2 */ + KEY_F15, /* M3 */ + KEY_F16, /* MR */ + KEY_F17, /* G1 */ + KEY_F18, /* G2 */ + KEY_F19, /* G3 */ + KEY_F20, /* G4 */ + KEY_F21, /* G5 */ + KEY_F22, /* G6 */ + 0, /* unused */ + 0, /* unused */ +}; + +/* Convenience macros */ +#define lg_g710_plus_get_data(hdev) \ + ((struct lg_g710_plus_data *)(hid_get_drvdata(hdev))) + +#define BIT_AT(var,pos) ((var) & (1<<(pos))) + +struct lg_g710_plus_data { + struct hid_report *g_mr_buttons_support_report; /* Needs to be written to enable G1-G6 and M1-MR keys */ + struct hid_report *mr_buttons_led_report; /* Controls the backlight of M1-MR buttons */ + struct hid_report *other_buttons_led_report; /* Controls the backlight of other buttons */ + struct hid_report *gamemode_report; /* Controls the backlight of other buttons */ + + u8 first_event; + + u16 macro_button_state; /* Holds the last state of the G1-G6, M1-MR buttons. Required to know which buttons were pressed and which were released */ + struct hid_device *hdev; + struct input_dev *input_dev; + struct attribute_group attr_group; + + u8 led_macro; /* state of the M1-MR macro leds as returned by the keyboard ==> binary coded 0 -> 0xF*/ + u8 led_keys; /* state of the WASD key leds as returned by the keyboard ==> 0 -> 4 */ + + spinlock_t lock; /* lock for communication with user space */ + struct completion ready; /* ready indicator */ +}; + +static ssize_t lg_g710_plus_show_led_macro(struct device *device, struct device_attribute *attr, char *buf); +static ssize_t lg_g710_plus_store_led_macro(struct device *device, struct device_attribute *attr, const char *buf, size_t count); +static ssize_t lg_g710_plus_show_led_keys(struct device *device, struct device_attribute *attr, char *buf); +static ssize_t lg_g710_plus_store_led_keys(struct device *device, struct device_attribute *attr, const char *buf, size_t count); + +static DEVICE_ATTR(led_macro, S_IRUGO | S_IWUGO, lg_g710_plus_show_led_macro, lg_g710_plus_store_led_macro); +static DEVICE_ATTR(led_keys, S_IRUGO | S_IWUGO, lg_g710_plus_show_led_keys, lg_g710_plus_store_led_keys); + +static struct attribute *lg_g710_plus_attrs[] = { + &dev_attr_led_macro.attr, + &dev_attr_led_keys.attr, + NULL, +}; + +static int lg_g710_plus_extra_key_event(struct hid_device *hdev, struct hid_report *report, u8 *data, int size) { + u8 i; + u16 keys_pressed; + struct lg_g710_plus_data* g710_data = lg_g710_plus_get_data(hdev); + if (g710_data == NULL || size < 3 || data[0] != 3) { + return 1; /* cannot handle the event */ + } + + keys_pressed= data[1] << 8 | data[2]; + for (i = 0; i < LOGITECH_KEY_MAP_SIZE; i++) { + if (g710_plus_key_map[i] != 0 && (BIT_AT(keys_pressed, i) != BIT_AT(g710_data->macro_button_state, i))) { + input_report_key(g710_data->input_dev, g710_plus_key_map[i], BIT_AT(keys_pressed, i) != 0); + } + } + input_sync(g710_data->input_dev); + g710_data->macro_button_state= keys_pressed; + return 1; +} + +static int lg_g710_plus_extra_led_mr_event(struct hid_device *hdev, struct hid_report *report, u8 *data, int size) { + struct lg_g710_plus_data* g710_data = lg_g710_plus_get_data(hdev); + g710_data->led_macro= (data[1] >> 4) & 0xF; + complete_all(&g710_data->ready); + return 1; +} + +static int lg_g710_plus_extra_led_keys_event(struct hid_device *hdev, struct hid_report *report, u8 *data, int size) { + struct lg_g710_plus_data* g710_data = lg_g710_plus_get_data(hdev); + g710_data->led_keys= data[1] << 4 | data[2]; + complete_all(&g710_data->ready); + return 1; +} + +static int lg_g710_plus_raw_event(struct hid_device *hdev, struct hid_report *report, u8 *data, int size) +{ + struct lg_g710_plus_data* g710_data = lg_g710_plus_get_data(hdev); + /* Ignore the first event. It will send a key down event for certain buttons, but never the key up event*/ + if (g710_data->first_event) { + g710_data->first_event= 0; + return 1; + } + switch(report->id) { + case 3: return lg_g710_plus_extra_key_event(hdev, report, data, size); + case 6: return lg_g710_plus_extra_led_mr_event(hdev, report, data, size); + case 8: return lg_g710_plus_extra_led_keys_event(hdev, report, data, size); + default: return 0; + } +} + +static int lg_g710_plus_input_mapping(struct hid_device *hdev, struct hid_input *hi, struct hid_field *field, struct hid_usage *usage, unsigned long **bit, int *max) +{ + struct lg_g710_plus_data* data = lg_g710_plus_get_data(hdev); + if (data != NULL && data->input_dev == NULL) { + data->input_dev= hi->input; + } + return 0; +} + +static int lg_g710_plus_initialize(struct hid_device *hdev) { + int ret = 0; + struct lg_g710_plus_data *data; + struct list_head *feature_report_list = &hdev->report_enum[HID_FEATURE_REPORT].report_list; + struct hid_report *report; + + if (list_empty(feature_report_list)) { + return 0; /* Currently, the keyboard registers as two different devices */ + } + + data = lg_g710_plus_get_data(hdev); + list_for_each_entry(report, feature_report_list, list) { + switch(report->id) { + case 6: data->mr_buttons_led_report= report; break; + case 8: data->other_buttons_led_report= report; break; + case 9: + data->g_mr_buttons_support_report= report; + usbhid_submit_report(hdev, report, USB_DIR_OUT); + break; + } + } + + ret= sysfs_create_group(&hdev->dev.kobj, &data->attr_group); + return ret; +} + +static struct lg_g710_plus_data* lg_g710_plus_create(struct hid_device *hdev) +{ + struct lg_g710_plus_data* data; + data= kzalloc(sizeof(struct lg_g710_plus_data), GFP_KERNEL); + if (data == NULL) { + return NULL; + } + + data->attr_group.name= "logitech-g710"; + data->attr_group.attrs= lg_g710_plus_attrs; + data->first_event= 1; + data->hdev= hdev; + + spin_lock_init(&data->lock); + init_completion(&data->ready); + return data; +} + +static int lg_g710_plus_probe(struct hid_device *hdev, const struct hid_device_id *id) +{ + int ret; + struct lg_g710_plus_data *data; + + data = lg_g710_plus_create(hdev); + if (data == NULL) { + dev_err(&hdev->dev, "can't allocate space for Logitech G710+ device attributes\n"); + ret= -ENOMEM; + goto err_free; + } + hid_set_drvdata(hdev, data); + + ret = hid_parse(hdev); + if (ret) { + hid_err(hdev, "parse failed\n"); + goto err_free; + } + + ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT); + if (ret) { + hid_err(hdev, "hw start failed\n"); + goto err_free; + } + + ret= lg_g710_plus_initialize(hdev); + if (ret) { + ret = -ret; + hid_hw_stop(hdev); + goto err_free; + } + + return 0; + +err_free: + if (data != NULL) { + kfree(data); + } + return ret; +} + +static void lg_g710_plus_remove(struct hid_device *hdev) +{ + struct lg_g710_plus_data* data = lg_g710_plus_get_data(hdev); + hid_hw_stop(hdev); + if (data != NULL) { + kfree(data); + } +} + +static ssize_t lg_g710_plus_show_led_macro(struct device *device, struct device_attribute *attr, char *buf) +{ + struct lg_g710_plus_data* data = hid_get_drvdata(dev_get_drvdata(device->parent)); + if (data != NULL) { + spin_lock(&data->lock); + init_completion(&data->ready); + usbhid_submit_report(data->hdev, data->mr_buttons_led_report, USB_DIR_IN); + wait_for_completion_timeout(&data->ready, WAIT_TIME_OUT); + spin_unlock(&data->lock); + return sprintf(buf, "%d\n", data->led_macro); + } + return 0; +} + +static ssize_t lg_g710_plus_show_led_keys(struct device *device, struct device_attribute *attr, char *buf) +{ + struct lg_g710_plus_data* data = hid_get_drvdata(dev_get_drvdata(device->parent)); + if (data != NULL) { + spin_lock(&data->lock); + init_completion(&data->ready); + usbhid_submit_report(data->hdev, data->other_buttons_led_report, USB_DIR_IN); + wait_for_completion_timeout(&data->ready, WAIT_TIME_OUT); + spin_unlock(&data->lock); + return sprintf(buf, "%d\n", data->led_keys); + } + return 0; +} + +static ssize_t lg_g710_plus_store_led_macro(struct device *device, struct device_attribute *attr, const char *buf, size_t count) +{ + unsigned long key_mask; + int retval; + struct lg_g710_plus_data* data = hid_get_drvdata(dev_get_drvdata(device->parent)); + retval = strict_strtoul(buf, 10, &key_mask); + if (retval) + return retval; + + spin_lock(&data->lock); + data->mr_buttons_led_report->field[0]->value[0]= (key_mask & 0xF) << 4; + usbhid_submit_report(data->hdev, data->mr_buttons_led_report, USB_DIR_OUT); + spin_unlock(&data->lock); + return count; +} + +static ssize_t lg_g710_plus_store_led_keys(struct device *device, struct device_attribute *attr, const char *buf, size_t count) +{ + int retval; + unsigned long key_mask; + u8 wasd_mask, keys_mask; + struct lg_g710_plus_data* data = hid_get_drvdata(dev_get_drvdata(device->parent)); + retval = strict_strtoul(buf, 10, &key_mask); + if (retval) + return retval; + + wasd_mask= (key_mask >> 4) & 0xF; + keys_mask= (key_mask) & 0xF; + + wasd_mask= wasd_mask > 4 ? 4 : wasd_mask; + keys_mask= keys_mask > 4 ? 4 : keys_mask; + + spin_lock(&data->lock); + data->other_buttons_led_report->field[0]->value[0]= wasd_mask; + data->other_buttons_led_report->field[0]->value[1]= keys_mask; + usbhid_submit_report(data->hdev, data->other_buttons_led_report, USB_DIR_OUT); + spin_unlock(&data->lock); + return count; +} + +static const struct hid_device_id lg_g710_plus_devices[] = { + { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_KEYBOARD_G710_PLUS) }, + { } +}; + +MODULE_DEVICE_TABLE(hid, lg_g710_plus_devices); +static struct hid_driver lg_g710_plus_driver = { + .name = "hid-lg-g710-plus", + .id_table = lg_g710_plus_devices, + .raw_event = lg_g710_plus_raw_event, + .input_mapping = lg_g710_plus_input_mapping, + .probe= lg_g710_plus_probe, + .remove= lg_g710_plus_remove, +}; + +static int __init lg_g710_plus_init(void) +{ + return hid_register_driver(&lg_g710_plus_driver); +} + +static void __exit lg_g710_plus_exit(void) +{ + hid_unregister_driver(&lg_g710_plus_driver); +} + +module_init(lg_g710_plus_init); +module_exit(lg_g710_plus_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Filip Wieladek <Wattos@gmail.com>"); +MODULE_DESCRIPTION("Logitech G710+ driver");
\ No newline at end of file diff --git a/src/kernel/test.sh b/src/kernel/test.sh new file mode 100755 index 0000000..242b47c --- /dev/null +++ b/src/kernel/test.sh @@ -0,0 +1 @@ +sudo modprobe -r hid_lg_g710_plus && sudo modprobe -r hid_generic && make && sudo make install && sudo depmod -a && sudo modprobe hid-lg-g710-plus && sudo modprobe hid-generic diff --git a/src/kernel/usbhid/usbhid.h b/src/kernel/usbhid/usbhid.h new file mode 100644 index 0000000..68318b2 --- /dev/null +++ b/src/kernel/usbhid/usbhid.h @@ -0,0 +1,105 @@ +#ifndef __USBHID_H +#define __USBHID_H + +/* + * Copyright (c) 1999 Andreas Gal + * Copyright (c) 2000-2001 Vojtech Pavlik + * Copyright (c) 2006 Jiri Kosina + */ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include <linux/types.h> +#include <linux/slab.h> +#include <linux/list.h> +#include <linux/mutex.h> +#include <linux/timer.h> +#include <linux/wait.h> +#include <linux/workqueue.h> +#include <linux/input.h> + +/* API provided by hid-core.c for USB HID drivers */ +int usbhid_wait_io(struct hid_device* hid); +void usbhid_close(struct hid_device *hid); +int usbhid_open(struct hid_device *hid); +void usbhid_init_reports(struct hid_device *hid); +void usbhid_submit_report +(struct hid_device *hid, struct hid_report *report, unsigned char dir); +int usbhid_get_power(struct hid_device *hid); +void usbhid_put_power(struct hid_device *hid); +struct usb_interface *usbhid_find_interface(int minor); + +/* iofl flags */ +#define HID_CTRL_RUNNING 1 +#define HID_OUT_RUNNING 2 +#define HID_IN_RUNNING 3 +#define HID_RESET_PENDING 4 +#define HID_SUSPENDED 5 +#define HID_CLEAR_HALT 6 +#define HID_DISCONNECTED 7 +#define HID_STARTED 8 +#define HID_REPORTED_IDLE 9 +#define HID_KEYS_PRESSED 10 +#define HID_LED_ON 11 + +/* + * USB-specific HID struct, to be pointed to + * from struct hid_device->driver_data + */ + +struct usbhid_device { + struct hid_device *hid; /* pointer to corresponding HID dev */ + + struct usb_interface *intf; /* USB interface */ + int ifnum; /* USB interface number */ + + unsigned int bufsize; /* URB buffer size */ + + struct urb *urbin; /* Input URB */ + char *inbuf; /* Input buffer */ + dma_addr_t inbuf_dma; /* Input buffer dma */ + + struct urb *urbctrl; /* Control URB */ + struct usb_ctrlrequest *cr; /* Control request struct */ + struct hid_control_fifo ctrl[HID_CONTROL_FIFO_SIZE]; /* Control fifo */ + unsigned char ctrlhead, ctrltail; /* Control fifo head & tail */ + char *ctrlbuf; /* Control buffer */ + dma_addr_t ctrlbuf_dma; /* Control buffer dma */ + unsigned long last_ctrl; /* record of last output for timeouts */ + + struct urb *urbout; /* Output URB */ + struct hid_output_fifo out[HID_CONTROL_FIFO_SIZE]; /* Output pipe fifo */ + unsigned char outhead, outtail; /* Output pipe fifo head & tail */ + char *outbuf; /* Output buffer */ + dma_addr_t outbuf_dma; /* Output buffer dma */ + unsigned long last_out; /* record of last output for timeouts */ + + spinlock_t lock; /* fifo spinlock */ + unsigned long iofl; /* I/O flags (CTRL_RUNNING, OUT_RUNNING) */ + struct timer_list io_retry; /* Retry timer */ + unsigned long stop_retry; /* Time to give up, in jiffies */ + unsigned int retry_delay; /* Delay length in ms */ + struct work_struct reset_work; /* Task context for resets */ + wait_queue_head_t wait; /* For sleeping */ + int ledcount; /* counting the number of active leds */ +}; + +#define hid_to_usb_dev(hid_dev) \ + container_of(hid_dev->dev.parent->parent, struct usb_device, dev) + +#endif diff --git a/src/userspace/Makefile b/src/userspace/Makefile new file mode 100644 index 0000000..aa2b527 --- /dev/null +++ b/src/userspace/Makefile @@ -0,0 +1,7 @@ +default: build + +build: + +install: + +clean:
\ No newline at end of file |