Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I am using the following 2 touchscreens: DELL ST2220T, Samsung LTI220MT02. I have just installed Ubuntu 12.10 because I have read that 12.10 has better touchscreen support than 12.04.

Both touchsreens work, but for both touchscreens the touch inputs are interpreted for both axes in the contrary direction: When I move right with the finger, the mouse pointer moves left and the other way round. When I move up with the finger, the mouse pointer moves down and the other way round.

So I have tried the following (example with DELL monitor):

root@wasumobile2:/home/walter# xinput --list
⎡Virtual core pointer                id=2   [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer     id=4   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad     id=11  [slave  pointer  (2)]
⎜   ↳ LG Display LGD-MultiTouch      id=16  [slave  pointer  (2)]
⎣Virtual core keyboard               id=3   [master keyboard (2)]
    ↳ Virtual core XTEST keyboard    id=5   [slave  keyboard (3)]
...

The DELL touchsreen is displayed as "LG Display LGD-MultiTouch". I get details of the configuration with:

root@wasumobile2:/home/walter# xinput --list-props 16
Device 'LG Display LGD-MultiTouch':
        Device Enabled (132):   1
        Coordinate Transformation Matrix (134): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (256):     0
        Device Accel Constant Deceleration (257):       1.000000
        Device Accel Adaptive Deceleration (258):       1.000000
        Device Accel Velocity Scaling (259):    10.000000
        Device Product ID (251):        8146, 100
        Device Node (252):      "/dev/input/event15"
        Evdev Axis Inversion (574):     0, 0
        Evdev Axis Calibration (575):   <no items>
        Evdev Axes Swap (576):  0
        Axis Labels (577):      "Abs MT Position X" (558), "Abs MT Position Y" (559), "None" (0), "None" (0)
        Button Labels (578):    "Button Unknown" (566), "Button Unknown" (566),     "Button Unknown" (566), "Button Wheel Up" (138), "Button Wheel Down" (139)
        Evdev Middle Button Emulation (579):    0
        Evdev Middle Button Timeout (580):      50
        Evdev Third Button Emulation (581):     0
        Evdev Third Button Emulation Timeout (582):     1000
        Evdev Third Button Emulation Button (583):      3
        Evdev Third Button Emulation Threshold (584):   20
        Evdev Wheel Emulation (585):    0
        Evdev Wheel Emulation Axes (586):       0, 0, 4, 5
        Evdev Wheel Emulation Inertia (587):    10
        Evdev Wheel Emulation Timeout (588):    200
        Evdev Wheel Emulation Button (589):     4
        Evdev Drag Lock Buttons (590):  0

Now I try to invert the axes:

root@wasumobile2:/home/walter# xinput --set-prop 16 574 1 1

I know check if the values have been saved.

root@wasumobile2:/home/walter# xinput --list-props 16
Device 'LG Display LGD-MultiTouch':
        Device Enabled (132):   1
        Coordinate Transformation Matrix (134): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (256):     0
        Device Accel Constant Deceleration (257):       1.000000
        Device Accel Adaptive Deceleration (258):       1.000000
        Device Accel Velocity Scaling (259):    10.000000
        Device Product ID (251):        8146, 100
        Device Node (252):      "/dev/input/event15"
        Evdev Axis Inversion (574):     1, 1
        Evdev Axis Calibration (575):   <no items>
        Evdev Axes Swap (576):  0
        Axis Labels (577):      "Abs MT Position X" (558), "Abs MT Position Y" (559), "None" (0), "None" (0)
        Button Labels (578):    "Button Unknown" (566), "Button Unknown" (566), "Button Unknown" (566), "Button Wheel Up" (138), "Button Wheel Down" (139)
        Evdev Middle Button Emulation (579):    0
        Evdev Middle Button Timeout (580):      50
        Evdev Third Button Emulation (581):     0
        Evdev Third Button Emulation Timeout (582):     1000
        Evdev Third Button Emulation Button (583):      3
        Evdev Third Button Emulation Threshold (584):   20
        Evdev Wheel Emulation (585):    0
        Evdev Wheel Emulation Axes (586):       0, 0, 4, 5
        Evdev Wheel Emulation Inertia (587):    10
        Evdev Wheel Emulation Timeout (588):    200
        Evdev Wheel Emulation Button (589):     4

They were saved, I can see this in the following line:

Evdev Axis Inversion (574):    1, 1

However this has no effect on the touch-inputs, no change, same as described at the beginning.

I have tried to invert the axis with input --set-prop on a Logitech Mouse, it worked after executing the command. So I do not understand, why the axis are not inverted by the xinput --set-prop command for the touchscreen.

--------------------------------------------------------------------------

Answer to 1st reply:

Thank you for reply Tomas. xsetwacom --list has no output. In my case the evdev driver is used. Here is the output of the /var/log/Xorg.0.log, for me looks normal.

[  1748.700] (II) config/udev: Adding input device LG Display LGD-MultiTouch (/dev/input/mouse1)
[  1748.701] (II) No input driver specified, ignoring this device.
[  1748.701] (II) This device may have been added with another device file.
[  1748.701] (II) config/udev: Adding input device LG Display LGD-MultiTouch (/dev/input/event8)
[  1748.701] (**) LG Display LGD-MultiTouch: Applying InputClass "evdev touchscreen catchall"
[  1748.701] (II) Using input driver 'evdev' for 'LG Display LGD-MultiTouch'
[  1748.701] (**) LG Display LGD-MultiTouch: always reports core events
[  1748.702] (**) evdev: LG Display LGD-MultiTouch: Device: "/dev/input/event8"
[  1748.702] (--) evdev: LG Display LGD-MultiTouch: Vendor 0x1fd2 Product 0x64
[  1748.702] (--) evdev: LG Display LGD-MultiTouch: Found absolute axes
[  1748.702] (--) evdev: LG Display LGD-MultiTouch: Found absolute multitouch axes
[  1748.702] (--) evdev: LG Display LGD-MultiTouch: Found x and y absolute axes
[  1748.702] (--) evdev: LG Display LGD-MultiTouch: Found absolute touchscreen
[  1748.702] (**) Option "InvertX" "yes"
[  1748.702] (**) Option "InvertY" "yes"
[  1748.702] (II) evdev: LG Display LGD-MultiTouch: Configuring as touchscreen
[  1748.702] (**) evdev: LG Display LGD-MultiTouch: YAxisMapping: buttons 4 and 5
[  1748.702] (**) evdev: LG Display LGD-MultiTouch: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[  1748.702] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1.1/2-1.1.1:1.0/input/input19/event8"
[  1748.702] (II) XINPUT: Adding extended input device "LG Display LGD-MultiTouch" (type: TOUCHSCREEN, id 10)
[  1748.702] (II) evdev: LG Display LGD-MultiTouch: initialized for absolute axes.
[  1748.703] (**) LG Display LGD-MultiTouch: (accel) keeping acceleration scheme 1
[  1748.703] (**) LG Display LGD-MultiTouch: (accel) acceleration profile 0
[  1748.703] (**) LG Display LGD-MultiTouch: (accel) acceleration factor: 2.000
[  1748.703] (**) LG Display LGD-MultiTouch: (accel) acceleration threshold: 4

Meanwhile I have added the Options "InvertX" "yes" and "InvertY" "yes" into

/usr/share/X11/xorg.conf.d/10-evdev.conf

so the corresponding section in 10-evdev.conf is as follows:

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "InvertX" "yes"
        Option "InvertY" "yes"
EndSection

However, again, the axes are not inverted (I did also some reboots). After reboot Options

Option "InvertX" "yes"
Option "InvertX" "yes"

result in output of xinput --list-props 16

Evdev Axis Inversion (574):     1, 1

but the axes are still not inverted. All these Options have no effect. It seams as the evdev driver ignores all Options settings and all settings done by xinput. I have also tried:

Option "Calibration"   "300 1920 400 1080"

on the 1920x1080 touchscreen to see if this has an effect. But again, no effect. All Option lines are ignored.

Please help.

share|improve this question
1  
I think that this question is related to one I mad on launchpad, please if you get the answer let me know I will do the same answers.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/… and I also opened a bug bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/… –  user125590 Jan 23 '13 at 22:34
add comment

closed as off topic by Eric Carvalho, Uri Herrera, Basharat Sial, Jorge Castro, Kevin Bowen May 27 '13 at 3:27

Questions on Ask Ubuntu are expected to relate to Ubuntu within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

2 Answers

@Tomas - The Event Driver (evdev) that ships with 12.1, version 2.7, has a bug (Bug #1103723, in fact), and changes via xinput do not work for some touchscreen drivers.

I was able to download the latest EvDev driver, which is version 2.8, and it does work. Unfortunately, you have to be able to compile the source code yourself, which wasn't a challenge for me, but I can understand it being tricky for most people.

It even compiled fine the first time, but didn't work. You must have the "mtdev-dev" (multi-touch driver development) package, or it'll compile and install without multitouch enabled, and it won't tell you. Nuisance.

If you follow the link to the bug, you may find pre-compiled versions. The file you need is evdev_drv.so, and it needs to replace /usr/lib/xorg/modules/input/evdev_drv.so. If you're doing the update by hand, make sure you save the original file (I usually just rename it to something like evdev_drv.original) in case the replacement doesn't work. Then log out and log back in.

share|improve this answer
add comment

A quick guess: Have you tried xsetwacom? It has a rotate argument that allows you to invert the touch screen. It sounds like you'd want to set something along the lines of:

xsetwacom --set "Serial Wacom Tablet stylus" Rotate half

where you'd replace Serial Wacom Tablet stylus with whatever your device is called (see xsetwacom --list)

Hope I understood your problem well and that this solves your problem.

share|improve this answer
    
Thanks for reply, I edited the original post as reply. –  wasu Jan 23 '13 at 15:37
    
Okay, you're going way over my head. Sorry I can't be of more use, hope someone more experienced has a good idea –  Tomas Jan 23 '13 at 15:44
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.