Serial Wacom Tablet touch not in absolute mode when logged in

Bug #949097 reported by mstfa cmly on 2012-03-07
66
This bug affects 15 people
Affects Status Importance Assigned to Milestone
Xf86 Input Wacom
Fix Released
Medium
libwacom (Ubuntu)
High
Timo Aaltonen
Precise
High
Unassigned

Bug Description

lsb_release -d:
Description: Ubuntu precise (development branch)

Output of : xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=11 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
⎜ ↳ Serial Wacom Tablet stylus id=13 [slave pointer (2)]
⎜ ↳ Serial Wacom Tablet eraser id=15 [slave pointer (2)]
⎜ ↳ Serial Wacom Tablet touch id=16 [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)]
    ↳ Sleep Button id=8 [slave keyboard (3)]
    ↳ HP HD Webcam [Fixed] id=9 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
    ↳ HP WMI hotkeys id=14 [slave keyboard (3)]

Output of: xinput_calibrator --list
Device "Serial Wacom Tablet stylus" id=13
Device "Serial Wacom Tablet eraser" id=15

The touchscreen works properly when I'm at the LightDM screen, but fails once I log into a session. I have tried this with my standard account as well as a test account.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: xinput 1.5.99.1-0ubuntu2
ProcVersionSignature: Ubuntu 3.2.0-18.28-generic 3.2.9
Uname: Linux 3.2.0-18-generic x86_64
.tmp.unity.scope.cities: Error: [Errno 21] Is a directory: '/tmp/unity-scope-cities'
.tmp.unity.support.test.0:

ApportVersion: 1.94-0ubuntu1
Architecture: amd64
CompizPlugins: [core,composite,opengl,decor,mousepoll,gnomecompat,place,session,move,regex,grid,imgpng,wall,resize,vpswitch,compiztoolbox,animation,wobbly,workarounds,expo,fade,ezoom,scale,unityshell,scaleaddon]
CompositorRunning: compiz
Date: Wed Mar 7 10:50:46 2012
DistUpgraded: Fresh install
DistroCodename: precise
DistroVariant: ubuntu
GraphicsCard:
 Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0126] (rev 09) (prog-if 00 [VGA controller])
   Subsystem: Hewlett-Packard Company Device [103c:162a]
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 (20120201.1)
MachineType: Hewlett-Packard HP EliteBook 2760p
ProcEnviron:
 LANGUAGE=en_CA:en
 TERM=xterm
 PATH=(custom, no user)
 LANG=en_CA.UTF-8
 SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-18-generic root=UUID=1d6860bd-ea9d-44a0-b7fb-1109c677a98a ro quiet splash vt.handoff=7
SourcePackage: xinput
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 07/26/2011
dmi.bios.vendor: Hewlett-Packard
dmi.bios.version: 68SOU Ver. F.02
dmi.board.name: 162A
dmi.board.vendor: Hewlett-Packard
dmi.board.version: KBC Version 05.33
dmi.chassis.type: 10
dmi.chassis.vendor: Hewlett-Packard
dmi.modalias: dmi:bvnHewlett-Packard:bvr68SOUVer.F.02:bd07/26/2011:svnHewlett-Packard:pnHPEliteBook2760p:pvrA0005F02:rvnHewlett-Packard:rn162A:rvrKBCVersion05.33:cvnHewlett-Packard:ct10:cvr:
dmi.product.name: HP EliteBook 2760p
dmi.product.version: A0005F02
dmi.sys.vendor: Hewlett-Packard
version.compiz: compiz 1:0.9.7.0~bzr2995-0ubuntu5
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.30-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 8.0.1-0ubuntu2
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 8.0.1-0ubuntu2
version.xserver-xorg-core: xserver-xorg-core 2:1.11.4-0ubuntu4
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.6.99.901+git20120126-0ubuntu2
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.99~git20111219.aacbd629-0ubuntu2
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.17.0-1ubuntu4
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20111201+b5534a1-1build2

mstfa cmly (mstfacmly) wrote :
Changed in xinput (Ubuntu):
assignee: nobody → Canonical Desktop Team (canonical-desktop-team)
Martin Pitt (pitti) on 2012-03-13
Changed in xinput (Ubuntu):
assignee: Canonical Desktop Team (canonical-desktop-team) → Canonical X.org (canonical-x)
Bryce Harrington (bryce) on 2012-03-17
affects: xinput (Ubuntu) → xf86-input-wacom (Ubuntu)
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in xf86-input-wacom (Ubuntu):
status: New → Confirmed
Jason (ubuntu-jlowenz) wrote :

After a recent update, I have observed possibly similar behavior (but I'm not sure what "fails" means from the bug description). On a ThinkPad x200t, the pen works fine after login, but touch is in relative mode, no matter what the setting in the Wacom configuration. Even after setting absolute mode using xsetwacom, a sleep or logout/login will reset the touch device to relative.

Timo Aaltonen (tjaalton) wrote :

Jason: settings done via xsetwacom don't persist, that's not a bug per se, just that the gui configurator needs to support the touch functionality.

Moustafa: please run 'xsetwacom --list devices' then 'xsetwacom --get NN all' where NN is the id of the touch device. Sounds like it's getting disabled by the running session, so might want to check with a test user as well.

Changed in xf86-input-wacom (Ubuntu):
assignee: Canonical X.org (canonical-x) → Timo Aaltonen (tjaalton)
status: Confirmed → Incomplete
mstfa cmly (mstfacmly) wrote :

Timo: I already tried this with the guest account. My wording in the original bug is unclear, and Jason did provide with a more accurate description: The Touch device is set to 'relative' mode on login rather than 'absolute'.

I can set it to absolute manually using xsetwacom, however, this would be lost on suspend/resume or a logout.

xsetwacom --list devices
Serial Wacom Tablet stylus id: 13 type: STYLUS
Serial Wacom Tablet eraser id: 15 type: ERASER
Serial Wacom Tablet touch id: 16 type: TOUCH

$ xsetwacom --get 16 all
Option "Area" "0 0 2640 1630"
'Button' requires exactly 1 value(s).
Option "ToolDebugLevel" "0"
Option "TabletDebugLevel" "0"
Option "Suppress" "2"
Option "RawSample" "4"
Option "PressureCurve" "0 0 100 100"
Option "Mode" "Relative"
Property 'Wacom Hover Click' does not exist on device.
Option "Touch" "on"
Option "Gesture" "on"
Option "ZoomDistance" "116"
Option "ScrollDistance" "51"
Option "TapTime" "250"
Property 'Wacom Proximity Threshold' does not exist on device.
Option "Rotate" "none"
Property 'Wacom Wheel Buttons' does not exist on device.
Property 'Wacom Wheel Buttons' does not exist on device.
Property 'Wacom Wheel Buttons' does not exist on device.
Property 'Wacom Wheel Buttons' does not exist on device.
Property 'Wacom Wheel Buttons' does not exist on device.
Property 'Wacom Wheel Buttons' does not exist on device.
Property 'Wacom Strip Buttons' does not exist on device.
Property 'Wacom Strip Buttons' does not exist on device.
Property 'Wacom Strip Buttons' does not exist on device.
Property 'Wacom Strip Buttons' does not exist on device.
Option "Threshold" "27"
Option "ToolType" "337"
Option "ToolSerial" "0"
Option "ToolID" "0"
Option "ToolSerialPrevious" "0"
Option "BindToSerial" "0"
Option "TabletID" "227"

Timo Aaltonen (tjaalton) wrote :

Ok, so the tablet is using absolute mode on the login screen, but after login it changes to relative mode? Sounds like a bug in gnome-settings-daemon if that's the case..

Timo Aaltonen (tjaalton) on 2012-04-04
summary: - Serial Wacom Tablet touch not initalized when logged in
+ Serial Wacom Tablet touch not in absolute mode when logged in
mstfa cmly (mstfacmly) wrote :

It most likely is the case. I was looking for any default config file which may be defining the touch preference to 'relative' instead of 'absolute.

Any ideas?

Bryce Harrington (bryce) wrote :

This made it work properly for me on a fujitsu T4410 with wacom serial touch screen:

gsettings set org.gnome.settings-daemon.plugins.gsdwacom active false

Without that, I get relative tracking behavior as described in bug 973133.

Jason S. Wagner (jasonswagner) wrote :

Just did today's updates and this appears to be resolved. Can someone else confirm?

Pawel Jonik (paweljonik) wrote :

I just did update and problem still occurs :/ (lenovo x200t hardware)

Timo Aaltonen (tjaalton) wrote :

I've spotted the code that sets the touch device in relative mode, but need to figure out how to not break tablets with touch support (which need to use relative mode).

Changed in gnome-settings-daemon (Ubuntu):
assignee: nobody → Timo Aaltonen (tjaalton)
importance: Undecided → High
status: New → In Progress
Changed in xf86-input-wacom (Ubuntu):
status: Incomplete → Invalid
assignee: Timo Aaltonen (tjaalton) → nobody
Timo Aaltonen (tjaalton) wrote :

a proposed fix in ppa:tjaalton/ppa once it's built

added this patch:

--- a/plugins/wacom/gsd-wacom-manager.c
+++ b/plugins/wacom/gsd-wacom-manager.c
@@ -543,7 +543,7 @@

         type = gsd_wacom_device_get_device_type (device);

- if (type == WACOM_TYPE_TOUCH) {
+ if ((type == WACOM_TYPE_TOUCH) && (!gsd_wacom_device_is_screen_tablet(device))) {
                set_absolute (device, FALSE);
                return;
        }

Timo Aaltonen (tjaalton) wrote :

Bryce debugged it further, and noticed that another function had to be used for the condition checking.. uploaded a new version to the ppa that should fix this bug.

Martin Pitt (pitti) wrote :

Thanks Timo! Can you please forward this upstream as well?

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gnome-settings-daemon - 3.4.0-0ubuntu6

---------------
gnome-settings-daemon (3.4.0-0ubuntu6) precise; urgency=low

  * debian/patches/wacom-keep-touchscreen-absolute.patch:
    - Don't set touchscreens to relative mode (LP: #949097)
 -- Timo Aaltonen <email address hidden> Wed, 11 Apr 2012 17:05:04 +0300

Changed in gnome-settings-daemon (Ubuntu):
status: In Progress → Fix Released
Timo Aaltonen (tjaalton) wrote :

Martin: yes that was the plan, and I just did.

Changed in xf86-input-wacom:
importance: Unknown → Medium
status: Unknown → New
Changed in xf86-input-wacom:
status: New → Fix Released
Pawel Jonik (paweljonik) wrote :

It seems like it's fixed for after login, but I have noticed that touchscreen backs to relative on every switch from console to X server (CTL+ALT+F1 > CTL+ALT+F7). Don't know if it's related to the same thing.

Ubu 12.04b2 up to date
gnome-settings-daemon3.4.0-0ubuntu7

Timo Aaltonen (tjaalton) wrote :

Reopening, since the current patch isn't correct.

Changed in gnome-settings-daemon (Ubuntu):
status: Fix Released → In Progress
Timo Aaltonen (tjaalton) wrote :

could someone with this bug upgrade to current precise, then

- install openbox (or some other non-gnome desktop)
- log in to openbox
- fire up a terminal (right-click menu on openbox)
- run 'G_DEBUG_MESSAGES=all gnome-settings-daemon --debug 2>&1 | grep wacom'
- add the output here

Changed in gnome-settings-daemon (Ubuntu):
status: In Progress → Incomplete
Evan Tatarka (evantatarka) wrote :

This is what I got:

** (gnome-settings-daemon:9972): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-3.0/wacom.gnome-settings-plugin
** (gnome-settings-daemon:9972): DEBUG: GnomeSettingsPluginInfo: name='Wacom' file='/usr/lib/gnome-settings-daemon-3.0/wacom.gnome-settings-plugin' location='gsdwacom'
** (gnome-settings-daemon:9972): DEBUG: Loading /usr/lib/gnome-settings-daemon-3.0/libgsdwacom.so
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: GsdWacomPlugin initializing
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Activating wacom plugin
** (gnome-settings-daemon:9972): DEBUG: GnomeSettingsManager: emitting plugin-activated gsdwacom
** (gnome-settings-daemon:9972): DEBUG: Plugin gsdwacom: active
(gnome-settings-daemon:9972): libwacom-WARNING **: Tablet 'usb:056a:0015' has no buttons defined, do something!
(gnome-settings-daemon:9972): libwacom-WARNING **: Tablet 'usb:056a:0014' has no buttons defined, do something!
(gnome-settings-daemon:9972): libwacom-WARNING **: Tablet 'usb:056a:0013' has no buttons defined, do something!
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Creating fallback driver for wacom tablet 'Serial Wacom Tablet touch' ('/dev/ttyS4')
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Adding device 'Serial Wacom Tablet touch' (type: 'Touch') to known devices list
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Applying settings for device 'Serial Wacom Tablet touch' (type: Touch)
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Creating fallback driver for wacom tablet 'Serial Wacom Tablet eraser' ('/dev/ttyS4')
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Adding device 'Serial Wacom Tablet eraser' (type: 'Eraser') to known devices list
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Applying settings for device 'Serial Wacom Tablet eraser' (type: Eraser)
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Applying matrix to device...
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Applying setting for stylus 'General Pen Eraser' on device 'Generic'
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Creating fallback driver for wacom tablet 'Serial Wacom Tablet stylus' ('/dev/ttyS4')
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Adding device 'Serial Wacom Tablet stylus' (type: 'Stylus') to known devices list
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Applying settings for device 'Serial Wacom Tablet stylus' (type: Stylus)
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Applying matrix to device...
(gnome-settings-daemon:9972): wacom-plugin-DEBUG: Applying setting for stylus 'General Pen' on device 'Generic'

Timo Aaltonen (tjaalton) wrote :

Evan, thanks for testing. Looks like the output isn't as verbose as I thought it would be, so maybe the package needs to be modified a bit to get the debug info I was looking after..

mstfa cmly (mstfacmly) wrote :

I must mention the touch issue still persists on my laptop, even with a new/guest account.

Is there any additional info I can add to this?

I second this - Levono X200 Tablet - finger touch is absolute on login screen but after login the stylus operates in absolute mode but finger touch is relative...

I can confirm the exact same problem on my Fujitsu T730.
Found the workaround here: https://bugs.launchpad.net/ubuntu/+source/xf86-input-wacom/+bug/976948
in the terminal, enter

xsetwacom --set "Serial Wacom Tablet touch" mode Absolute

Then also touch works as before with 11.10. Any way to make this solution permanent?

Tomas (tomasvandenooijevaer) wrote :

About the workaround: I'm running a little bash script when my computer starts that does just what you cited there (through startup applications). However, that won't fix the issue when the computer resumes from suspend: the pointer is still relative.

If you want to fix this on your computer, you might want to look at this post:
http://ubuntuforums.org/showthread.php?t=1484156
Though the post is a bit old, it should still work (tell me if I'm wrong). In that post the author explains how to run a script automatically when your computer resumes from suspend. Combining this with the startup applications should fix the problem.

You are right, I also have a script in my home folder and it does only work after start up, not after resuming (although you can always start it manually by clicking it).
The strange thing is that in 11.04 I had a similar workaround to switch on touch gestures but those worked also after resuming.

So I followed your link and tried to figure out what to do. I created an executable additional script named '99_xsetwacom.sh' in /etc/pm/sleep.d/ and put in the code below - but it just does not work, any ideas if something is wrong with this script?

#!/bin/bash99_xsetwacom.sh
case "$1" in
    thaw|resume)
        xsetwacom set "Serial Wacom Tablet touch" Mode "Absolute"
        ;;
    *)
        ;;
esac
exit $?

Tomas (tomasvandenooijevaer) wrote :

Hmm, that's odd. The scripts is being executed (after I removed the stuff you accidentally placed after #!/bin/bash). I tested it by replacing the xsetwacom part with mkdir /home/tomas/itsworking.
I know little about Linux, but I guess it could be that, for example, (i) the problem is somewhere in the code that is being executed after your scripts or (ii) the script is being executed before the Wacom stuff is initialised, i.e. xsetwacom is not properly recognised.
I'll see if I can come up with a working workaround. Will let you know if I find something.

Timo Aaltonen (tjaalton) wrote :

ahah, the key is the 'fallback' bits in the debug output.. that would suggest that libwacom doesn't know about the device, therefore g-s-d doesn't know it's supposed to be a builtin device (info which should come from the libwacom data). I've got a Fujitsu tablet now where I can test this stuff, hope to get it working by tomorrow at the latest.. before UDS is over and I need to give the tablet back :)

Timo Aaltonen (tjaalton) wrote :

I've uploaded a fixed libwacom for quantal, but backporting the fixes to precise will be difficult.. I'll check the options next week after UDS.

affects: gnome-settings-daemon (Ubuntu) → libwacom (Ubuntu)
Timo Aaltonen (tjaalton) on 2012-05-11
Changed in libwacom (Ubuntu Precise):
importance: Undecided → High
status: New → Triaged
no longer affects: xf86-input-wacom (Ubuntu)
no longer affects: xf86-input-wacom (Ubuntu Precise)
Changed in libwacom (Ubuntu):
status: Incomplete → Fix Released
mstfa cmly (mstfacmly) wrote :

Has there been any update about backporting the package to Precise? apt-cache madison doesn't seem to show any other versions in the repos.

Timo Aaltonen (tjaalton) wrote :

Not yet. I'll try to push 0.5 as SRU..

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.