#1 Le 18/07/2016, à 16:23
- wawaaaaan
Uinput ne fonctionne pas sous ubuntu 16.04
Bonjour,
J'ai écris un programme avec uinput qui intercepte les données d'un écran multitouch (désactivé via xinput), qui fait des traitements sur ces données et qui les envois au système via uinput.
Pour une raison qui m'est inconnue, ca ne fonctionne pas sous ubuntu. Je tiens à préciser que le programme en question fonctionne parfaitement sous fedora 23/24.
Une fois le programme éxécuté la souris doit se déplacer normalement sous mon doigt. Hors sur ubuntu rien ne se passe.
xinput, le périphérique en question est le 3M :
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ HP HP USB Laser Mouse id=13 [slave pointer (2)]
⎜ ↳ 3M 3M MicroTouch USB controller id=14 [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)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Eee PC WMI hotkeys id=10 [slave keyboard (3)]
↳ Dell Dell USB Keyboard Hub id=11 [slave keyboard (3)]
↳ Dell Dell USB Keyboard Hub id=12 [slave keyboard (3)]
xinput list-props 14
Device '3M 3M MicroTouch USB controller':
Device Enabled (130): 0
Coordinate Transformation Matrix (132): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (449): 0
Device Accel Constant Deceleration (450): 1.000000
Device Accel Adaptive Deceleration (451): 1.000000
Device Accel Velocity Scaling (452): 10.000000
Device Product ID (251): 1430, 1286
Device Node (252): "/dev/input/event14"
Evdev Axis Inversion (453): 0, 0
Evdev Axis Calibration (454): <no items>
Evdev Axes Swap (455): 0
Axis Labels (456): "Abs MT Position X" (458), "Abs MT Position Y" (459), "Abs MT Touch Major" (493), "Abs MT Touch Minor" (494), "Abs MT Orientation" (495), "None" (0), "None" (0)
Button Labels (468): "Button Unknown" (465), "Button Unknown" (465), "Button Unknown" (465), "Button Wheel Up" (136), "Button Wheel Down" (137)
Evdev Scrolling Distance (457): 0, 0, 0
Evdev Middle Button Emulation (469): 0
Evdev Middle Button Timeout (470): 50
Evdev Third Button Emulation (471): 0
Evdev Third Button Emulation Timeout (472): 1000
Evdev Third Button Emulation Button (473): 3
Evdev Third Button Emulation Threshold (474): 20
Evdev Wheel Emulation (475): 0
Evdev Wheel Emulation Axes (476): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (477): 10
Evdev Wheel Emulation Timeout (478): 200
Evdev Wheel Emulation Button (479): 4
Evdev Drag Lock Buttons (480): 0
Pour intercepter les données je lis sur /dev/input/event14, comme visible ci-dessus.
Je démarre mon binaire en sudo, donc à priori le problème ne vient pas d'un manque de droits.
sudo ./MegaTouchExed
[sudo] password for toto:
config.txt opened!
Reading from:
device file = /dev/input/event14
device name = 3M 3M MicroTouch USB controller
Start OK.
Le périphérique virtuel est bien créé et listé sur xinput :
xinput list-props 15
Device 'MouseControllerObserver':
Device Enabled (130): 1
Coordinate Transformation Matrix (132): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (449): 0
Device Accel Constant Deceleration (450): 1.000000
Device Accel Adaptive Deceleration (451): 1.000000
Device Accel Velocity Scaling (452): 10.000000
Device Product ID (251): 1, 1
Device Node (252): "/dev/input/event15"
Evdev Axis Inversion (453): 0, 0
Evdev Axis Calibration (454): <no items>
Evdev Axes Swap (455): 0
Axis Labels (456): "Abs MT Position X" (458), "Abs MT Position Y" (459), "None" (0), "None" (0)
Button Labels (468): "Button Left" (133), "Button Unknown" (465), "Button Right" (135), "Button Wheel Up" (136), "Button Wheel Down" (137)
Evdev Scrolling Distance (457): 0, 0, 0
Evdev Middle Button Emulation (469): 0
Evdev Middle Button Timeout (470): 50
Evdev Third Button Emulation (471): 0
Evdev Third Button Emulation Timeout (472): 1000
Evdev Third Button Emulation Button (473): 3
Evdev Third Button Emulation Threshold (474): 20
Evdev Wheel Emulation (475): 0
Evdev Wheel Emulation Axes (476): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (477): 10
Evdev Wheel Emulation Timeout (478): 200
Evdev Wheel Emulation Button (479): 4
Evdev Drag Lock Buttons (480): 0
J'ai fais un test avec evtest et les données créées via mon périphérique virtuel sont bien envoyés et semble correspondre a ce qu'envoit l'écran :
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x1 product 0x1 version 0x1
Input device name: "MouseControllerObserver"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 272 (BTN_LEFT)
Event code 273 (BTN_RIGHT)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min 0
Max 1920
Event code 1 (ABS_Y)
Value 0
Min 0
Max 1080
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 9
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 32768
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 32768
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Properties:
Testing ... (interrupt to exit)
Event: time 1468854873.609444, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1468854873.609444, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 898
Event: time 1468854873.609444, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 9070
Event: time 1468854873.609444, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 20495
Event: time 1468854873.609444, -------------- SYN_REPORT ------------
Event: time 1468854873.633553, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 20497
Event: time 1468854873.633553, -------------- SYN_REPORT ------------
Event: time 1468854873.656775, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 20492
Event: time 1468854873.656775, -------------- SYN_REPORT ------------
Event: time 1468854873.680173, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 20489
Event: time 1468854873.680173, -------------- SYN_REPORT ------------
Event: time 1468854873.703797, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 9073
Event: time 1468854873.703797, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 20491
Event: time 1468854873.703797, -------------- SYN_REPORT ------------
Event: time 1468854873.728093, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1468854873.728093, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1468854873.728093, -------------- SYN_REPORT ------------
Voila un équivalent (je n'ai pas cliqué au même endroit et je ne l'ai pas lancé en parallèle de la commande sur le périphérique virtuel) à ce que j'ai fais ci-dessus mais sur le evtest de l'écran :
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x596 product 0x506 version 0x110
Input device name: "3M 3M MicroTouch USB controller"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 9073
Min 0
Max 32767
Event code 1 (ABS_Y)
Value 20491
Min 0
Max 32767
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 59
Event code 48 (ABS_MT_TOUCH_MAJOR)
Value 0
Min 0
Max 32767
Fuzz 255
Event code 49 (ABS_MT_TOUCH_MINOR)
Value 0
Min 0
Max 32767
Fuzz 255
Event code 52 (ABS_MT_ORIENTATION)
Value 0
Min 0
Max 1
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 32767
Fuzz 15
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 32767
Fuzz 15
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Properties:
Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1468854901.442530, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 207
Event: time 1468854901.442530, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 8000
Event: time 1468854901.442530, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 23215
Event: time 1468854901.442530, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1468854901.442530, type 3 (EV_ABS), code 0 (ABS_X), value 8000
Event: time 1468854901.442530, type 3 (EV_ABS), code 1 (ABS_Y), value 23215
Event: time 1468854901.442530, -------------- SYN_REPORT ------------
Event: time 1468854901.476523, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 7997
Event: time 1468854901.476523, type 3 (EV_ABS), code 0 (ABS_X), value 7997
Event: time 1468854901.476523, -------------- SYN_REPORT ------------
Event: time 1468854901.482522, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1468854901.482522, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1468854901.482522, -------------- SYN_REPORT ------------
Un lsmod :
8250_fintek 16384 0
ablk_helper 16384 1 aesni_intel
acpi_als 16384 0
acpi_pad 20480 0
aesni_intel 167936 0
aes_x86_64 20480 1 aesni_intel
ahci 36864 2
asus_wmi 28672 1 eeepc_wmi
autofs4 40960 2
bluetooth 520192 9 bnep,btbcm,btqca,hci_uart,btintel
bnep 20480 2
btbcm 16384 1 hci_uart
btintel 16384 1 hci_uart
btqca 16384 1 hci_uart
coretemp 16384 0
crc32_pclmul 16384 0
crct10dif_pclmul 16384 0
cryptd 20480 2 aesni_intel,ablk_helper
drm 360448 7 i915_bpo,drm_kms_helper
drm_kms_helper 139264 1 i915_bpo
eeepc_wmi 16384 0
fb_sys_fops 16384 1 drm_kms_helper
fjes 28672 0
gf128mul 16384 1 lrw
glue_helper 16384 1 aesni_intel
hci_uart 77824 0
hid 118784 3 hid_multitouch,hid_generic,usbhid
hid_generic 16384 0
hid_multitouch 20480 0
i2c_algo_bit 16384 1 i915_bpo
i915_bpo 1261568 6
industrialio 57344 2 acpi_als,kfifo_buf
input_leds 16384 0
intel_ips 20480 1 i915_bpo
intel_lpss 16384 1 intel_lpss_acpi
intel_lpss_acpi 16384 0
intel_powerclamp 16384 0
intel_rapl 20480 0
irqbypass 16384 1 kvm
joydev 20480 0
kfifo_buf 16384 1 acpi_als
kvm 536576 0
libahci 32768 1 ahci
lp 20480 0
lrw 16384 1 aesni_intel
mac_hid 16384 0
mei 98304 1 mei_me
mei_me 36864 0
mii 16384 1 r8169
Module Size Used by
mxm_wmi 16384 0
parport 49152 3 lp,ppdev,parport_pc
parport_pc 32768 0
pinctrl_intel 20480 1 pinctrl_sunrisepoint
pinctrl_sunrisepoint 28672 0
ppdev 20480 0
psmouse 126976 0
r8169 81920 0
serio_raw 16384 0
shpchp 36864 0
snd 81920 17 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device
snd_hda_codec 135168 4 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel
snd_hda_codec_generic 77824 1 snd_hda_codec_realtek
snd_hda_codec_hdmi 53248 1
snd_hda_codec_realtek 81920 1
snd_hda_core 73728 5 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_hda_intel 36864 3
snd_hwdep 16384 1 snd_hda_codec
snd_pcm 106496 4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core
snd_rawmidi 32768 1 snd_seq_midi
snd_seq 69632 2 snd_seq_midi_event,snd_seq_midi
snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi
snd_seq_midi 16384 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_timer 32768 2 snd_pcm,snd_seq
soundcore 16384 1 snd
sparse_keymap 16384 1 asus_wmi
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
usbhid 49152 0
video 40960 2 i915_bpo,asus_wmi
wmi 20480 2 mxm_wmi,asus_wmi
x86_pkg_temp_thermal 16384 0
Comme ca fonctionne parfaitement sous fedora et que à priori la version de X et autres packages sont équivalentes, je me demande si ubuntu n'a pas quelque chose de spécifique.
Voilà la raison pour laquelle je viens poster sur le forum ubuntu, car en dehors de l'OS je ne vois pas ce qui peut différer.
Si vous avez besoin de plus d'informations demandez
Merci
Dernière modification par wawaaaaan (Le 18/07/2016, à 16:27)
Hors ligne
#2 Le 18/08/2016, à 13:14
- wawaaaaan
Re : Uinput ne fonctionne pas sous ubuntu 16.04
up
Hors ligne