2 touchscreens 2 pointers 2nd pointer wrong positioning
Victor Seryodkin
vvscore at gmail.com
Wed Feb 23 03:26:02 PST 2011
I'm using XOrg built from the scratch using the latest sources
from the ftp://ftp.x.org/pub/individual
xserver version 1.9.4
evdev version 2.6.0
xinput version: 1.5.3
Linux kernel is 2.6.35.7 (tryied 2.6.38-rc3 - has the same behaviour)
The PC has 2 touchscreen displays connected:
1) 15" display
video - VGA connection to Trident Cyperblade videocard (xorg
driver trident)
touchscreen - USB connection (xorg driver evdev)
2) Display Link displays - USB connected (xorg driver evdev)
video - USB connection (xorg driver: displaylink + kernel driver udlfb)
touchscreen - USB connection (xorg driver evdev)
Both displays has identical touch controllers.
The task is to create 2 display configuration with
2 cursor pointers each handling its own touchscreen.
The idea is to make it possible to enter data to x window application
by two man each operating 1 display.
Every display and it's touch panel works fine in 1 display configuration.
But in dual screen configuration (with and without xinerama enabled)
there is the problem.
XOrg dual screen configuration is the following:
------------------------------------------------------------------
Section "ServerLayout"
Identifier "DualScreenLayout"
Screen 0 "DisplayLinkScreen" 0 0
Screen 1 "VGAScreen" RightOf "DisplayLinkScreen"
InputDevice "Mouse0" "CorePointer"
InputDevice "DisplayLinkTouch" "SendCoreEvents"
InputDevice "VGATouch" "SendCoreEvents"
InputDevice "Keyboard0" "CoreKeyboard"
# Option "Xinerama" "Off"
EndSection
Section "Files"
ModulePath "/usr/local/xorg/xorg-main/lib/xorg/modules"
FontPath "/usr/local/xorg/xorg-main/share/fonts/X11/misc/"
FontPath "/usr/local/xorg/xorg-main/share/fonts/X11/TTF/"
FontPath "/usr/local/xorg/xorg-main/share/fonts/X11/OTF/"
FontPath "/usr/local/xorg/xorg-main/share/fonts/X11/Type1/"
FontPath "/usr/local/xorg/xorg-main/share/fonts/X11/100dpi/"
FontPath "/usr/local/xorg/xorg-main/share/fonts/X11/75dpi/"
EndSection
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection
Section "Module"
Load "dbe"
Load "extmod"
Load "record"
Disable "dri"
Disable "glx"
EndSection
Section "InputDevice"
Identifier "DisplayLinkTouch"
Driver "evdev"
Option "Device" "/dev/input/event2"
EndSection
Section "InputDevice"
Identifier "VGATouch"
Driver "evdev"
Option "Device" "/dev/input/event6"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
EndSection
Section "Device"
Identifier "VGACard"
Driver "trident"
BusID "PCI:1:0:0"
EndSection
Section "Monitor"
Identifier "VGAMonitor"
VendorName "VGAMonitor Monitor Vendor"
ModelName "VGAMonitor Monitor Model"
EndSection
Section "Screen"
Identifier "VGAScreen"
Device "VGACard"
Monitor "VGAMonitor"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1024x768"
EndSubSection
EndSection
Section "Device"
Identifier "DisplayLinkDevice"
driver "displaylink"
Option "fbdev" "/dev/fb0"
EndSection
Section "Monitor"
Identifier "DisplayLinkMonitor"
VendorName "DisplayLinkMonitor Monitor Vendor"
ModelName "DisplayLinkMonitor Monitor Model"
EndSection
Section "Screen"
Identifier "DisplayLinkScreen"
Device "DisplayLinkDevice"
Monitor "DisplayLinkMonitor"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "800x600"
EndSubSection
EndSection
------------------------------------------------------------------
I've managed to create 2 cursors by means of xinput:
xinput list
xinput create-master ...
xinput reattach ...
But ... both pointers are working only within the primary
(DisplayLinkScreen) display.
If I'm trying to move secondary touchscreen pointer (VGATouch) using
the secondary display(VGAScreen) touchscreen
the pointer is moving only inside the primary screen (DisplayLinkScreen).
I've tried to setup 2nd touchscreen pointer: tried to make it's
working area to be inside the secondary display
Nether
xinput set-prop "DisplayLinkTouch" --type=float "Coordinate
Transformation Matrix" 0.5 0 0 0 1 0 0 0 1
xinput set-prop "VGATouch" --type=float "Coordinate
Transformation Matrix" 0.5 0 0.5 0 1 0 0 0 1
nor
xinput set-prop "VGATouch" --type=int "Evdev Axis Calibration" 4096
8191 0 4095
helped
Secondary touchscreen pointer always moves inside the primary display.
The interesting thing though is that mouse pointer moves correct and
works on both displays.
Please advise how to setup 2nd touch screen pointer
More information about the xorg
mailing list