Wacom serial: Screen rotation triggers pen/eraser rotation but not for finger touch

Bug #1645341 reported by littlelion
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
xf86-input-wacom (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

After updating to xenial the finger touch was broken. With an update to yakkety the finger touch device came back, but it doesn't rotate with the screen, how it used to in former releases. Pen and eraser are rotated as expected.

I discovered, that the bug occurs only with linux kernels after 4.4, so it depends on recent changes in the kernel.

The 'xsetwacom list devices' command generates the output:
Wacom Serial Penabled 2FG Touchscreen Pen stylus id: 15 type: STYLUS
Wacom Serial Penabled 2FG Touchscreen Finger touch id: 16 type: TOUCH
Wacom Serial Penabled 2FG Touchscreen Pen eraser id: 18 type: ERASER

... but with the old linux kernel from utopic (4.2.0) the ids are different:
15 for the stylus (unchanged), 17 for the eraser, 18 for finger touch

This bug affects:
* an updated system how described above
* a fresh installation of yakkety (used to file this bug)
* the zesty daily build

ProblemType: Bug
DistroRelease: Ubuntu 16.10
Package: xserver-xorg-input-wacom 1:0.33.0-0ubuntu1
ProcVersionSignature: Ubuntu 4.8.0-22.24-generic 4.8.0
Uname: Linux 4.8.0-22-generic x86_64
ApportVersion: 2.20.3-0ubuntu8
Architecture: amd64
CurrentDesktop: Unity
Date: Mon Nov 28 15:10:21 2016
DistUpgraded: Fresh install
DistroCodename: yakkety
DistroVariant: ubuntu
InstallationDate: Installed on 2016-11-28 (0 days ago)
InstallationMedia: Ubuntu 16.10 "Yakkety Yak" - Release amd64 (20161012.2)
MachineType: Hewlett-Packard HP EliteBook 2760p
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.8.0-22-generic root=UUID=71701156-1f2c-4138-a7eb-0c16ea6b53d3 ro quiet splash
SourcePackage: xf86-input-wacom
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 05/27/2016
dmi.bios.vendor: Hewlett-Packard
dmi.bios.version: 68SOU Ver. F.62
dmi.board.name: 162A
dmi.board.vendor: Hewlett-Packard
dmi.board.version: KBC Version 05.41
dmi.chassis.type: 10
dmi.chassis.vendor: Hewlett-Packard
dmi.modalias: dmi:bvnHewlett-Packard:bvr68SOUVer.F.62:bd05/27/2016:svnHewlett-Packard:pnHPEliteBook2760p:pvrA0005F02:rvnHewlett-Packard:rn162A:rvrKBCVersion05.41: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.13.0+16.10.20160818.2-0ubuntu2
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.70-1
version.libgl1-mesa-dri: libgl1-mesa-dri 12.0.3-1ubuntu2
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 12.0.3-1ubuntu2
version.xserver-xorg-core: xserver-xorg-core 2:1.18.4-1ubuntu6
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.10.2-1ubuntu1
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:7.7.1-1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.99.917+git20160706-1ubuntu1
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:1.0.12-2
xserver.bootTime: Mon Nov 28 14:32:58 2016
xserver.configfile: default
xserver.logfile: /var/log/Xorg.0.log
xserver.version: 2:1.18.4-1ubuntu6
xserver.video_driver: modeset

Revision history for this message
littlelion (the-littlelion) wrote :
summary: Wacom serial: Screen rotation triggers pen/eraser rotation but not for
- finger tocuh
+ finger touch
Revision history for this message
Onno (schiller-babsi) wrote :

Probably I have the same problem. I have wacom_w8001 in X201 Tablet. In trusty both worked fine with a rotate script:

# Find the line in "xrandr -q --verbose" output that contains current screen orientation and "strip" out current orientation.

rotation="$(xrandr -q --verbose | grep 'connected' | egrep -o '\) (normal|left|inverted|right) \(' | egrep -o '(normal|left|inverted|right)')"

# Using current screen orientation proceed to rotate screen and input tools.
echo "$rotation";

case "$rotation" in
    normal)
# -rotate to the inverted
    xrandr -o inverted
    xsetwacom set "Serial Wacom Tablet WACf00c stylus" Rotate half # HALF
    xsetwacom set "Serial Wacom Tablet WACf00c touch" Rotate half # HALF
    xsetwacom set "Serial Wacom Tablet WACf00c eraser" Rotate half # HALF
    xsetwacom set "Serial Wacom Tablet WACf00c touch" mode absolute

    ;;
    inverted)
# -rotate to right
    xrandr -o right
    xsetwacom set "Serial Wacom Tablet WACf00c stylus" Rotate cw
    xsetwacom set "Serial Wacom Tablet WACf00c touch" Rotate cw
    xsetwacom set "Serial Wacom Tablet WACf00c eraser" Rotate cw
    xsetwacom set "Serial Wacom Tablet WACf00c touch" mode absolute
    xsetwacom set "Serial Wacom Tablet WACf00c touch" Rotate none # HALF

    ;;
    right)
# -rotate to left
    xrandr -o left
    xsetwacom set "Serial Wacom Tablet WACf00c stylus" Rotate ccw
    xsetwacom set "Serial Wacom Tablet WACf00c touch" Rotate ccw
    xsetwacom set "Serial Wacom Tablet WACf00c eraser" Rotate ccw
    xsetwacom set "Serial Wacom Tablet WACf00c touch" mode absolute
    xsetwacom set "Serial Wacom Tablet WACf00c touch" Rotate none # HALF

    ;;
    left)
# -rotate to normal
    xrandr -o normal
    xsetwacom set "Serial Wacom Tablet WACf00c stylus" Rotate NONE
    xsetwacom set "Serial Wacom Tablet WACf00c touch" Rotate NONE
    xsetwacom set "Serial Wacom Tablet WACf00c eraser" Rotate NONE
    xsetwacom set "Serial Wacom Tablet WACf00c touch" mode absolute

esac

After the upgrade touch is out of sync, stylus and eraser works fine, with the script.

For example if the rotation is inverted, then touch is in normal mode. This is not the behavior, what I expect. If 'xsetwacom set "Serial Wacom Tablet WACf00c touch" Rotate NONE' is executed, stylus and eraser are then also None and touch works in inverted mode, but stylus and eraser not.

Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in xf86-input-wacom (Ubuntu):
status: New → Confirmed
Revision history for this message
Onno (schiller-babsi) wrote :

There is a Ticket in https://bugzilla.kernel.org/show_bug.cgi?id=120011 which sounds similar.

Revision history for this message
littlelion (the-littlelion) wrote :

@Onno: no, #4 is a different bug, it's already fixed in kernel 4.7 - see here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1613134
but it may be related somehow, because it depends on the kernel version if it works or not.

To remember:
Kernel < 4.4 = OK
Kernel 4.4 .. 4.6 - touch gone
Kernel 4.7 and later - touch resumed, but finger touch not rotated with screen

Revision history for this message
littlelion (the-littlelion) wrote :

After some digging in the upstream kernel, I found this commit:
-----------------------------------------------------------------------------
e0361b70175f0cd6199dd9ed6679632de73973d4

    Input: wacom_w8001 - split the touch and pen devices into two devices

    These devices have a pen device and a touch device through the same serial
    protocol, split it up into two separate devices like we do for USB Wacom
    tablets too.

    Userspace already matches on the device name so we can't drop it
    completely. Compose the same basename based on capabilities and append the
    tool type, leading to a name like "Wacom Serial Penabled 2FG Touchscreen
    Pen".

    Note that this drops BTN_TOOL_FINGER, it is not needed once the tools
    are split out (and a touch device with BTN_TOOL_FINGER is interpreted
    as touchpad by most of userspace).
-----------------------------------------------------------------------------

It is the last recent of 5 commits which introduce changes to the W8001 serial driver.

It's just a guess - may be, the new device isn't considered for screen rotation?

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

Other bug subscribers

Remote bug watches

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