Thread: [DIGImend-devel] Analysis of Gimp Issues and Proposed Solution
Brought to you by:
spb_nick
|
From: Dan R. <ade...@gm...> - 2015-02-22 03:17:57
Attachments:
editedlog.txt
rawlog-uclogic-only.txt
|
dan@REDACTEDHOSTNAME:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech G700 Laser Mouse id=11 [slave pointer (2)]
⎜ ↳ Logitech G700 Laser Mouse id=10 [slave pointer (2)]
⎜ ↳ HV 10594 id=13 [slave pointer (2)]
⎜ ↳ HV 10594 id=14 [slave pointer (2)]
⎜ ↳ HV 10594 id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ CM Storm Quick Fire PRO Keyboard id=9 [slave keyboard (3)]
↳ CM Storm Quick Fire PRO Keyboard id=8 [slave keyboard (3)]
↳ Eee PC WMI hotkeys id=12 [slave keyboard (3)]
dan@REDACTEDHOSTNAME:~$ xinput list-props 13
Device 'HV 10594':
Device Enabled (135): 1
Coordinate Transformation Matrix (137): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (263): 0
Device Accel Constant Deceleration (264): 1.000000
Device Accel Adaptive Deceleration (265): 1.000000
Device Accel Velocity Scaling (266): 10.000000
Device Product ID (252): 9580, 110
Device Node (253): "/dev/input/event17"
Evdev Axis Inversion (267): 0, 0
Evdev Axis Calibration (268): <no items>
Evdev Axes Swap (269): 0
Axis Labels (270): "Abs X" (338), "Abs Y" (339), "Abs Pressure" (340), "Rel Horiz Wheel" (261), "Rel Vert Wheel" (262)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Evdev Scrolling Distance (272): 1, 1, 1
Evdev Middle Button Emulation (273): 0
Evdev Middle Button Timeout (274): 50
Evdev Third Button Emulation (275): 0
Evdev Third Button Emulation Timeout (276): 1000
Evdev Third Button Emulation Button (277): 3
Evdev Third Button Emulation Threshold (278): 20
Evdev Wheel Emulation (279): 0
Evdev Wheel Emulation Axes (280): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (281): 10
Evdev Wheel Emulation Timeout (282): 200
Evdev Wheel Emulation Button (283): 4
Evdev Drag Lock Buttons (284): 0
dan@REDACTEDHOSTNAME:~$ xinput list-props 14
Device 'HV 10594':
Device Enabled (135): 1
Coordinate Transformation Matrix (137): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (263): 0
Device Accel Constant Deceleration (264): 1.000000
Device Accel Adaptive Deceleration (265): 1.000000
Device Accel Velocity Scaling (266): 10.000000
Device Product ID (252): 9580, 110
Device Node (253): "/dev/input/event16"
Evdev Axis Inversion (267): 0, 0
Evdev Axis Calibration (268): <no items>
Evdev Axes Swap (269): 0
Axis Labels (270): "Abs X" (338), "Abs Y" (339), "Abs Z" (566), "Abs Rotary X" (567), "Abs Pressure" (340)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Evdev Scrolling Distance (272): 0, 0, 0
Evdev Middle Button Emulation (273): 0
Evdev Middle Button Timeout (274): 50
Evdev Third Button Emulation (275): 0
Evdev Third Button Emulation Timeout (276): 1000
Evdev Third Button Emulation Button (277): 3
Evdev Third Button Emulation Threshold (278): 20
Evdev Wheel Emulation (279): 0
Evdev Wheel Emulation Axes (280): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (281): 10
Evdev Wheel Emulation Timeout (282): 200
Evdev Wheel Emulation Button (283): 4
Evdev Drag Lock Buttons (284): 0
dan@REDACTEDHOSTNAME:~$ xinput list-props 15
Device 'HV 10594':
Device Enabled (135): 1
Coordinate Transformation Matrix (137): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (263): 0
Device Accel Constant Deceleration (264): 1.000000
Device Accel Adaptive Deceleration (265): 1.000000
Device Accel Velocity Scaling (266): 10.000000
Device Product ID (252): 9580, 110
Device Node (253): "/dev/input/event18"
Evdev Axis Inversion (267): 0, 0
Evdev Axes Swap (269): 0
Axis Labels (270): "Rel X" (145), "Rel Y" (146), "Rel Horiz Wheel" (261)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
Evdev Scrolling Distance (272): 1, 1, 1
Evdev Middle Button Emulation (273): 0
Evdev Middle Button Timeout (274): 50
Evdev Third Button Emulation (275): 0
Evdev Third Button Emulation Timeout (276): 1000
Evdev Third Button Emulation Button (277): 3
Evdev Third Button Emulation Threshold (278): 20
Evdev Wheel Emulation (279): 0
Evdev Wheel Emulation Axes (280): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (281): 10
Evdev Wheel Emulation Timeout (282): 200
Evdev Wheel Emulation Button (283): 4
Evdev Drag Lock Buttons (284): 0
dan@REDACTEDHOSTNAME:~$ xinput list-props 15 | grep "Button Labels"
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ xinput list-props 13 | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
dan@REDACTEDHOSTNAME:~$ xinput list-props 14 | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
dan@REDACTEDHOSTNAME:~$ xinput list-props 15 | grep "Button Labels"
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
unable to find device 13
unable to find device 14
unable to find device 15
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
dan@REDACTEDHOSTNAME:~$ dmesg -T | tail
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004B: Ignoring interface 1
[Sat Feb 21 17:46:35 2015] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.1/input/input74
[Sat Feb 21 17:46:35 2015] uclogic 0003:256C:006E.004B: input,hiddev0,hidraw5: USB HID v1.11 Mouse [HV 10594] on usb-0000:00:16.0-1/input1
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: Interface: 2 Product: 110
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: Interface Number: 2
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: got 14 byte string descriptor
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: Resolution: 40000x25000 Pressure: 2047
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: tablet enable succeeded.
[Sat Feb 21 17:46:35 2015] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.2/input/input75
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: input,hidraw6: USB HID v1.11 Keyboard [HV 10594] on usb-0000:00:16.0-1/input2
dan@REDACTEDHOSTNAME:~$ dmesg -T | tail
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004B: Ignoring interface 1
[Sat Feb 21 17:46:35 2015] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.1/input/input74
[Sat Feb 21 17:46:35 2015] uclogic 0003:256C:006E.004B: input,hiddev0,hidraw5: USB HID v1.11 Mouse [HV 10594] on usb-0000:00:16.0-1/input1
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: Interface: 2 Product: 110
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: Interface Number: 2
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: got 14 byte string descriptor
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: Resolution: 40000x25000 Pressure: 2047
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: tablet enable succeeded.
[Sat Feb 21 17:46:35 2015] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.2/input/input75
[Sat Feb 21 17:46:35 2015] huion 0003:256C:006E.004C: input,hidraw6: USB HID v1.11 Keyboard [HV 10594] on usb-0000:00:16.0-1/input2
dan@REDACTEDHOSTNAME:~$ dmesg -T | tail
[Sat Feb 21 17:46:34 2015] huion 0003:256C:006E.004B: Ignoring interface 1
[Sat Feb 21 17:46:34 2015] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.1/input/input74
[Sat Feb 21 17:46:34 2015] uclogic 0003:256C:006E.004B: input,hiddev0,hidraw5: USB HID v1.11 Mouse [HV 10594] on usb-0000:00:16.0-1/input1
[Sat Feb 21 17:46:34 2015] huion 0003:256C:006E.004C: Interface: 2 Product: 110
[Sat Feb 21 17:46:34 2015] huion 0003:256C:006E.004C: Interface Number: 2
[Sat Feb 21 17:46:34 2015] huion 0003:256C:006E.004C: got 14 byte string descriptor
[Sat Feb 21 17:46:34 2015] huion 0003:256C:006E.004C: Resolution: 40000x25000 Pressure: 2047
[Sat Feb 21 17:46:34 2015] huion 0003:256C:006E.004C: tablet enable succeeded.
[Sat Feb 21 17:46:34 2015] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.2/input/input75
[Sat Feb 21 17:46:34 2015] huion 0003:256C:006E.004C: input,hidraw6: USB HID v1.11 Keyboard [HV 10594] on usb-0000:00:16.0-1/input2
dan@REDACTEDHOSTNAME:~$ echo "didn't work, replugging"
didn't work, replugging
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ echo "Worked. replugging"
Worked. replugging
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
dan@REDACTEDHOSTNAME:~$ echo "Didn't work, replugging."
Didn't work, replugging.
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
dan@REDACTEDHOSTNAME:~$ echo "Worked."
Worked.
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ dmesg | tail
[333956.485089] huion 0003:256C:006E.0057: Ignoring interface 1
[333956.485450] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.1/input/input86
[333956.485680] uclogic 0003:256C:006E.0057: input,hiddev0,hidraw5: USB HID v1.11 Mouse [HV 10594] on usb-0000:00:16.0-1/input1
[333956.489079] huion 0003:256C:006E.0058: Interface: 2 Product: 110
[333956.489087] huion 0003:256C:006E.0058: Interface Number: 2
[333956.490981] huion 0003:256C:006E.0058: got 14 byte string descriptor
[333956.490989] huion 0003:256C:006E.0058: Resolution: 40000x25000 Pressure: 2047
[333956.490994] huion 0003:256C:006E.0058: tablet enable succeeded.
[333956.495209] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.2/input/input87
[333956.495388] huion 0003:256C:006E.0058: input,hidraw6: USB HID v1.11 Keyboard [HV 10594] on usb-0000:00:16.0-1/input2
dan@REDACTEDHOSTNAME:~$ echo "Worked"
Worked
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
dan@REDACTEDHOSTNAME:~$ dmesg | tail
[334053.536553] huion 0003:256C:006E.005A: Ignoring interface 1
[334053.536912] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.1/input/input89
[334053.537149] uclogic 0003:256C:006E.005A: input,hiddev0,hidraw5: USB HID v1.11 Mouse [HV 10594] on usb-0000:00:16.0-1/input1
[334053.540537] huion 0003:256C:006E.005B: Interface: 2 Product: 110
[334053.540544] huion 0003:256C:006E.005B: Interface Number: 2
[334053.542445] huion 0003:256C:006E.005B: got 14 byte string descriptor
[334053.542454] huion 0003:256C:006E.005B: Resolution: 40000x25000 Pressure: 2047
[334053.542458] huion 0003:256C:006E.005B: tablet enable succeeded.
[334053.546660] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.2/input/input90
[334053.546848] huion 0003:256C:006E.005B: input,hidraw6: USB HID v1.11 Keyboard [HV 10594] on usb-0000:00:16.0-1/input2
dan@REDACTEDHOSTNAME:~$ echo "Worked"
Worked
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
dan@REDACTEDHOSTNAME:~$ xinput list-props {13..15} | grep "Button Labels"
Button Labels (271): "Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
Button Labels (271): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255)
dan@REDACTEDHOSTNAME:~$ dmesg | tail
[334115.142885] huion 0003:256C:006E.0060: Ignoring interface 1
[334115.143261] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.1/input/input95
[334115.143403] uclogic 0003:256C:006E.0060: input,hiddev0,hidraw5: USB HID v1.11 Mouse [HV 10594] on usb-0000:00:16.0-1/input1
[334115.146874] huion 0003:256C:006E.0061: Interface: 2 Product: 110
[334115.146882] huion 0003:256C:006E.0061: Interface Number: 2
[334115.148774] huion 0003:256C:006E.0061: got 14 byte string descriptor
[334115.148782] huion 0003:256C:006E.0061: Resolution: 40000x25000 Pressure: 2047
[334115.148787] huion 0003:256C:006E.0061: tablet enable succeeded.
[334115.153008] input: HV 10594 as /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.2/input/input96
[334115.153139] huion 0003:256C:006E.0061: input,hidraw6: USB HID v1.11 Keyboard [HV 10594] on usb-0000:00:16.0-1/input2
dan@REDACTEDHOSTNAME:~$ echo "Didn't work."
Didn't work. |
|
From: Nikolai K. <sp...@gm...> - 2015-02-22 12:46:47
|
Hi Dan, On 02/22/2015 05:17 AM, Dan Roberts wrote: > Hi Everyone, > I believe I've identified the condition under which Gimp does or does not work with my Huion H610, in line with earlier speculation. It seems that X.org is inconsistent when assigning XIDs to devices. I'm not certain why this is (could be in X.org, udev, or xf86-input-evdev, I believe it's not in the kernel), but I can show that this is the case. Attached is a log of my bash session during these tests. I will also copy the most relevant portions here. > > *The summary is that if the pen interface receives the lowest XID from X.org, Gimp works properly, otherwise it does not work properly. I propose a mitigation strategy below.* > * > * > To test this I compared the output from xinput list-props {13..15} | grep "Button Labels" to whether Gimp functioned properly or not. I identified 13..15 as the correct XIDs using xinput prior to conducting this experiment. > > The following are the output for when Gimp functioned (confirmed multiple times, see logs): > > $ xinput list-props {13..15} | grep "Button Labels" > *Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)* > Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255) > Button Labels (271):"Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144) > > The following are the output for when Gimp did not function: > > $ xinput list-props {13..15} | grep "Button Labels" > Button Labels (271):"Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144) > *Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)* > Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255) > > $ xinput list-props {13..15} | grep "Button Labels" > Button Labels (271):"Button 0" (285), "Button Unknown" (255), "Button Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144) > Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side" (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255), "Button Unknown" (255) > *Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)* > > As you can see the pen interface (with labels Button Left, Middle, Right, Wheel Up, Wheel Down only) having id 13 correlates with correct functioning of Gimp. I believe this is because Gimp (and Gtk+?) do not identify devices by anything more than their string name. You can open ~/.gimp-2.8/devicerc (or 2.6, I believe newer versions use ~/.config/gimp or similar) and observe that no identifying information other than the device name is stored. > > *Mitigation Strategy* > > To mitigate this problem, I propose renaming the pen interface in the kernel module, like in this simple patch: > > diff --git a/hid-uclogic.c b/hid-uclogic.c > index 23fa0fb..697dca6 100644 > --- a/hid-uclogic.c > +++ b/hid-uclogic.c > @@ -838,6 +838,7 @@ static int uclogic_probe(struct hid_device *hdev, const struct hid_device_id *id > hid_err(hdev, "tablet enabling failed\n"); > return rc; > } > + strlcat(hdev->name, " Pen", sizeof(hdev->name)); > } > break; > case USB_DEVICE_ID_UCLOGIC_TABLET_TWHA60: > > This simply appends Pen to the device name, disambiguating the device in Gimp's view. I have not been able to reproduce the Gimp issues when using this patched version of the module (and it doesn't require disabling the other interfaces). I have confirmed that Gimp functions properly even in cases where the Pen interface has a higher XID than the other interfaces. If my understanding of the issue is correct, then this does resolve the Gimp issues. I don't, however, know whether this breaks any kernel style rules, at the very least it's a handy hack I think is useful, and perhaps people who have had trouble with Gimp would be willing to try it. Any brave souls who wish to try it out can find the source here https://github.com/Ademan/digimend-kernel-drivers/archive/rename_pen.zip note it only works for devices with the same VID:PID as the H610 for the moment. I did not feel comfortable extending support to tablets I can't test. > > Attached are the raw logs of my bash session testing, with the exception of removing my hostname, and a slightly friendlier version where I removed redundant information. You can note from the dmesg output that the XIDs assigned don't appear to be dependent on dmesg's log order. Astute readers will notice messages from both the huion and uclogic modules. I re-conducted this test with the huion module removed, the results were identical. Raw logs may be found in the attached file rawlog-uclogic-only.txt > > Nick, > In particular I'd like your input on whether this is a viable mitigation > strategy. If I'm not mistaken, the abstract keyboard branch disables the > tablet buttons, whereas this allows users to have Gimp work correctly > *and* potentially have working tablet buttons. Thanks for a thorough investigation, Dan! I believe you're correct. This was a problem for a long while and there were some patches to add clarifications to event device names in the past. I wanted to implement something generic myself to avoid catering to each tablet, but never got around to it. Your approach is fine. However, I think we can go with patches Benjamin Tissoires posted recently [1]. Those prepare the Huion driver for the current libinput development and also add clarifications to event device names. The effect will be the same, but the implementation will also include future-proofing. I'm awaiting a pull request from him with those changes. Nick [1] http://www.spinics.net/lists/linux-input/msg36675.html |
|
From: Dan R. <ade...@gm...> - 2015-02-22 20:03:19
|
Hi Nick,
I noticed you CCed the list with some of that discussion, I apologize I
had only skimmed it and assumed the entire patch set was about the button
functionality. I'm happy to test (Huion H610, not sure if it's different
from the Pro Benjamin has) when Benjamin has rebased his patches against
the out-of-tree drivers.
Thanks,
Dan
On Sun, Feb 22, 2015 at 4:46 AM, Nikolai Kondrashov <sp...@gm...>
wrote:
> Hi Dan,
>
> On 02/22/2015 05:17 AM, Dan Roberts wrote:
>
>> Hi Everyone,
>> I believe I've identified the condition under which Gimp does or
>> does not work with my Huion H610, in line with earlier speculation. It
>> seems that X.org is inconsistent when assigning XIDs to devices. I'm not
>> certain why this is (could be in X.org, udev, or xf86-input-evdev, I
>> believe it's not in the kernel), but I can show that this is the case.
>> Attached is a log of my bash session during these tests. I will also copy
>> the most relevant portions here.
>>
>> *The summary is that if the pen interface receives the lowest XID from
>> X.org, Gimp works properly, otherwise it does not work properly. I propose
>> a mitigation strategy below.*
>> *
>> *
>> To test this I compared the output from xinput list-props {13..15} | grep
>> "Button Labels" to whether Gimp functioned properly or not. I identified
>> 13..15 as the correct XIDs using xinput prior to conducting this experiment.
>>
>> The following are the output for when Gimp functioned (confirmed multiple
>> times, see logs):
>>
>> $ xinput list-props {13..15} | grep "Button Labels"
>> *Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button
>> Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)*
>> Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button
>> Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button
>> Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side"
>> (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown"
>> (255), "Button Unknown" (255), "Button Unknown" (255)
>> Button Labels (271):"Button 0" (285), "Button Unknown" (255), "Button
>> Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button
>> Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
>>
>> The following are the output for when Gimp did not function:
>>
>> $ xinput list-props {13..15} | grep "Button Labels"
>> Button Labels (271):"Button 0" (285), "Button Unknown" (255), "Button
>> Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button
>> Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
>> *Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button
>> Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)*
>> Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button
>> Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button
>> Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side"
>> (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown"
>> (255), "Button Unknown" (255), "Button Unknown" (255)
>>
>> $ xinput list-props {13..15} | grep "Button Labels"
>> Button Labels (271):"Button 0" (285), "Button Unknown" (255), "Button
>> Unknown" (255), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button
>> Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144)
>> Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button
>> Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button
>> Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144), "Button Side"
>> (256), "Button Extra" (257), "Button Unknown" (255), "Button Unknown"
>> (255), "Button Unknown" (255), "Button Unknown" (255)
>> *Button Labels (271):"Button Left" (138), "Button Middle" (139), "Button
>> Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)*
>>
>> As you can see the pen interface (with labels Button Left, Middle, Right,
>> Wheel Up, Wheel Down only) having id 13 correlates with correct functioning
>> of Gimp. I believe this is because Gimp (and Gtk+?) do not identify devices
>> by anything more than their string name. You can open ~/.gimp-2.8/devicerc
>> (or 2.6, I believe newer versions use ~/.config/gimp or similar) and
>> observe that no identifying information other than the device name is
>> stored.
>>
>> *Mitigation Strategy*
>>
>> To mitigate this problem, I propose renaming the pen interface in the
>> kernel module, like in this simple patch:
>>
>> diff --git a/hid-uclogic.c b/hid-uclogic.c
>> index 23fa0fb..697dca6 100644
>> --- a/hid-uclogic.c
>> +++ b/hid-uclogic.c
>> @@ -838,6 +838,7 @@ static int uclogic_probe(struct hid_device *hdev,
>> const struct hid_device_id *id
>> hid_err(hdev, "tablet enabling
>> failed\n");
>> return rc;
>> }
>> + strlcat(hdev->name, " Pen", sizeof(hdev->name));
>> }
>> break;
>> case USB_DEVICE_ID_UCLOGIC_TABLET_TWHA60:
>>
>> This simply appends Pen to the device name, disambiguating the device in
>> Gimp's view. I have not been able to reproduce the Gimp issues when using
>> this patched version of the module (and it doesn't require disabling the
>> other interfaces). I have confirmed that Gimp functions properly even in
>> cases where the Pen interface has a higher XID than the other interfaces.
>> If my understanding of the issue is correct, then this does resolve the
>> Gimp issues. I don't, however, know whether this breaks any kernel style
>> rules, at the very least it's a handy hack I think is useful, and perhaps
>> people who have had trouble with Gimp would be willing to try it. Any brave
>> souls who wish to try it out can find the source here
>> https://github.com/Ademan/digimend-kernel-drivers/archive/rename_pen.zip
>> note it only works for devices with the same VID:PID as the H610 for the
>> moment. I did not feel comfortable extending support to tablets I can't
>> test.
>>
>> Attached are the raw logs of my bash session testing, with the exception
>> of removing my hostname, and a slightly friendlier version where I removed
>> redundant information. You can note from the dmesg output that the XIDs
>> assigned don't appear to be dependent on dmesg's log order. Astute readers
>> will notice messages from both the huion and uclogic modules. I
>> re-conducted this test with the huion module removed, the results were
>> identical. Raw logs may be found in the attached file
>> rawlog-uclogic-only.txt
>>
>> Nick,
>> In particular I'd like your input on whether this is a viable
>> mitigation
>> strategy. If I'm not mistaken, the abstract keyboard branch disables
>> the
>> tablet buttons, whereas this allows users to have Gimp work correctly
>> *and* potentially have working tablet buttons.
>>
>
> Thanks for a thorough investigation, Dan!
>
> I believe you're correct. This was a problem for a long while and there
> were
> some patches to add clarifications to event device names in the past. I
> wanted
> to implement something generic myself to avoid catering to each tablet, but
> never got around to it.
>
> Your approach is fine. However, I think we can go with patches Benjamin
> Tissoires posted recently [1]. Those prepare the Huion driver for the
> current
> libinput development and also add clarifications to event device names.
>
> The effect will be the same, but the implementation will also include
> future-proofing. I'm awaiting a pull request from him with those changes.
>
> Nick
>
> [1] http://www.spinics.net/lists/linux-input/msg36675.html
>
|