touchscreen do not work after suspend/resume

Bug #1275416 reported by knyterant
120
This bug affects 27 people
Affects Status Importance Assigned to Milestone
xinput (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

My laptop (Thinkpad X200T with multi-touch screen) installed the 'Trusty' ubuntu 14.04 (64bits), touchscreen works well after cold boot! But after suspend/resume, touchsreen do not response. Execute 'xsetwacom --list' in terminal, there is nothing, both 'wacom touch' and 'wacom stylus' are gone. I must logout and relogin or reboot, the touchscreen can be normal again.

By the way, the same problem happens in the 'Saucy' ubuntu 13.10 (64bits). But in 'Raring' ubuntu 13.04 (64bits), this problem does no exist, touchscreen WORKS WELL after suspend/resume.

This Thinkpad X200T updated the newest BIOS, and keep ubuntu OS up to date.

Please fix this bug, because 14.04 is a very important version for touchscreen devices, and i think 'suspend/resume' function is important too. Thanks!

---------------------------------------
Feb 4, 2014 update

Oh I'm sorry, I find a new change for this bug that I never noticed before.

I keep Trusty ubuntu up to date(Feb 4, 2014). When the OS's first boot from cold boot, touchscreen works well. Then if suspend/resume for the first time, touchscreen will not response. At this moment, logout and relogin, touchscreen works well again even after suspend/resume.

Simply put, touchscreen do not response only after the first suspend/resume since a cold boot. Once the OS logout and relogin, touchscreen will work well after any suspend/resume. The key point is that the OS must logout and relogin for at least one time.

Always keep 'Trusty' ubuntu OS updated.

that's a strange bug

Revision history for this message
knyterant (feidegg) wrote :
Revision history for this message
knyterant (feidegg) wrote :
Revision history for this message
knyterant (feidegg) wrote :
description: updated
knyterant (feidegg)
description: updated
description: updated
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. It seems that your bug report is not filed about a specific source package though, rather it is just filed against Ubuntu in general. It is important that bug reports be filed about source packages so that people interested in the package can find the bugs about it. You can find some hints about determining what package your bug might be about at https://wiki.ubuntu.com/Bugs/FindRightPackage. You might also ask for help in the #ubuntu-bugs irc channel on Freenode.

To change the source package that this bug is filed about visit https://bugs.launchpad.net/ubuntu/+bug/1275416/+editstatus and add the package name in the text box next to the word Package.

[This is an automated message. I apologize if it reached you inappropriately; please just reply to this message indicating so.]

tags: added: bot-comment
Revision history for this message
knyterant (feidegg) wrote :

i am not sure what package is causing the problem. Ubuntu wiki tells me that choosing the 'kernel' is a safely bet. But i still don't know which kernel package it is. The editing web-page told me there's too much packages about kernel. So I fill the name 'input-wacom'. If some triagers or developers see this bug-report, please check it and choose a right package for me. Thanks!

affects: ubuntu → xinput (Ubuntu)
knyterant (feidegg)
tags: added: suspend touchscreen wacom
removed: bot-comment
knyterant (feidegg)
description: updated
description: updated
knyterant (feidegg)
description: updated
description: updated
Revision history for this message
jony_kalavera (mr-jony) wrote :

I just got an Acer Aspire V5-572p-9422 Touch Screen Laptop an i see this behaviour too running 13.10. As a workaround you can switch to text mode using CTRL+ALT+F[1-6] and then switch back to Graphical Desktop using CTRL+ALT+F7 and this will reset the screen without having to log-out. hope this helps.
cheers.

Revision history for this message
knyterant (feidegg) wrote :

jony_kalavera (mr-jony) , thank you! but your advice does not work for my thinkpad x200 tablet. what a pity for this old laptop x200 tablet

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

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

Changed in xinput (Ubuntu):
status: New → Confirmed
Revision history for this message
Federico Cupellini (fedecupe) wrote :

Same on my VaioFlip 14A

Revision history for this message
indy (davide-ricci82) wrote :

Same on Thinkpad X220 Tablet

Revision history for this message
ADRIANO MARCELINO SALGADO (adrianomsalgado) wrote :

Same with ACER aspire M5. Touchscreen stops after first suspend/resume and Ctrl+Alt+F6 / Ctrl+Alt+F7 solves the issue.

Quite odd!!

Revision history for this message
ADRIANO MARCELINO SALGADO (adrianomsalgado) wrote :

An addition,

Just the one-finger/two-finger touch are unresponsive. Three-finger/four-finger touches keep working fine!

I've tried to put a script with the Ctrl+Alt+F6 / Ctrl+Alt+F7 commands in /etc/pm/sleep.d/, but it won't run after lockscreen unlock. After pm-suspend command in terminal the script works just fine!

Any ideas?

Revision history for this message
James Hudson (mrthehud) wrote :

For the record, I've also noticed this (running Trusty), and the workaround mentioned by jony_kalavera (mr-jony) re-enables the touchscreen for me. I can't say right now whether or not it fixes subsequent resumes.

Also - I've noticed that it only seems to affect the panel(s) and desktop (I'm using Gnome Flashback) - chrome seems to respond as normal to touch events.

Revision history for this message
ADRIANO MARCELINO SALGADO (adrianomsalgado) wrote :

Cheers mates!

I've found a workaround for this REALLY odd ubuntu issue.

Assuming you all have ELAN touchscreen devices, like mine, it represents an usb device.

It seems that the ubuntu driver that controls the touchscreen has a bug, altough it could work natively as another xinput device.

So, I blacklisted the "usbtouchscreen" on modprobe, using the command:
"echo "blacklist usbtouchscreen" | sudo tee -a /etc/modprobe.d/blacklist.conf" (without quotes, of course)

or just blacklist it using nano, as you prefer... :-)

Reboot the thing and... voilà!

Touchscreen works every time, no matter how many resume/suspend events you inflict to the beast.

It's working just fine for me. So, guys, tell if it solves for you too!

Have fun!

Revision history for this message
copper.hat (higgins-t) wrote :

I have a Lenovo x201 tablet running 14.04.1 LTS. Neither of the workarounds in #7, #15 restore the stylus.

Revision history for this message
copper.hat (higgins-t) wrote :

Sorry for noise. Following Comment #2 in Bug 807620 seems to have fixed the problem for me.

Specifically, in /usr/lib/pm-utils/defaults I uncommented the # SUSPEND_MODULES="" line
and replaced it by SUSPEND_MODULES="wacom wacom_w8001".

When I resume my stylus & touch screen work.

Revision history for this message
knyterant (feidegg) wrote :

@#15,@#16/#17,thanks,but,no effect for my x200t with 14.04。 :(

Revision history for this message
Ronald J. Wright (logiconcepts819) wrote :

I found a workaround from https://answers.launchpad.net/ubuntu/+question/243145 that works with the X201 tablet, and it does not require rebooting, logging off and on again, or switching between virtual consoles. Try entering

sudo inputattach --daemon -w8001 /dev/ttyS4

If that does not work for you, then it is likely that the Wacom device is represented by a different device path (i.e. not /dev/ttyS4). Try executing

sudo cat /proc/tty/driver/serial | grep 16550A

which should output lines that look like the following:

4: uart:NS16550A port:00000200 irq:5 tx:19 rx:411732 RTS|DTR

The grep command filters out the /proc/tty/driver/serial output so that only 16550A entries are shown (since the Wacom device is a 16550A serial device). The number 4 at the beginning of the line before the colon indicates that this line corresponds to TTY device #4, which is represented by /dev/ttyS4. So, for example, if the number was 1 instead of 4, you would enter /dev/ttyS1 in the inputattach command instead of /dev/ttyS4. If you see multiple lines in the filtered /proc/tty/driver/serial output, I would suggest going down the list until you find the correct device that reactivates the touchscreen.

Revision history for this message
knyterant (feidegg) wrote :

@#19,finally, your advice is effected for my question. My touchscreen return to work after I used your command. But a little problem is, every time when it suspend/resume, it should be used this command, or the touchscreen can't work. Maybe we can write a script to make this automatically

Revision history for this message
Ronald J. Wright (logiconcepts819) wrote :

The attached script with the workaround mentioned in comment #19 ought to do the trick. Simply copy it to the /etc/pm/sleep.d directory. I tested it on my X201 Tablet, and I was able to get the touchscreen to work on every resume.

Revision history for this message
Ronald J. Wright (logiconcepts819) wrote :

And one more thing: make sure that file permissions for the script are correctly set; otherwise, the script may not run when the system resumes. I would suggest running the following command after copying it to /etc/pm/sleep.d to make sure it will run when the system resumes:

sudo chmod +x /etc/pm/sleep.d/20_x200-wacom-workaround

Revision history for this message
knyterant (feidegg) wrote :

deeply thanks! @Ronald J. Wright and other guys who helped me

Revision history for this message
Guy-cohen (guy-cohen) wrote :

Also affects me with 14.04 and Lenovo X201. Workaround from #21 worked, thanks! However, this caused the touchscreen to change to relative mode and the screen to lose calibration. Fixed manually by adding the following lines to the script:

xsetwacom --set "Wacom Serial Penabled 2FG Touchscreen touch" mode Absolute
xsetwacom --set "Wacom Serial Penabled 2FG Touchscreen stylus" Area -3 151 26088 16368
xsetwacom --set "Wacom Serial Penabled 2FG Touchscreen eraser" Area -3 151 26088 16368

Revision history for this message
Shane Sanders (shane442) wrote :

The fix may be a little more complicated.
I had to add an 'apmd' script.
(1.) Blacklist usbtouchscreen in the file: "/etc/modprobe.d/blacklist.conf"
       ie. add an entry to the end of the file "blacklist usbtouchscreen"
       ie. "sudo gedit /etc/modprobe.d/blacklist.conf"

(2.) Create a file in /etc/apm/scripts.d called "touchscreen" and put the following contents in it.

#!/bin/sh
#
# apmd proxy script for ALSA

[ -x /usr/sbin/alsactl ] || exit 0

case "$1,$2" in
 suspend,*) /usr/sbin/alsactl store && /sbin/alsa suspend ;;
 resume,suspend) /sbin/alsa resume && /usr/sbin/alsactl restore ;;
esac

########

(3.) Then save it and type "sudo chmod 755 /etc/apm/scripts.d/touchscreen"

(4.) Then type "cd /etc/apm/resume.d"

(5.) Then from that path type, "sudo ln -s ../scripts.d/touchscreen ./20touchscreen"

(6.) Shut your lid and re-open it and see if the touchscreen starts working...

ASUS Vivobook here

Revision history for this message
Shane Sanders (shane442) wrote :

*** UPDATED// SLEEPY *****

The fix may be a little more complicated.
I had to add an 'apmd' script.
(1.) Blacklist usbtouchscreen in the file: "/etc/modprobe.d/blacklist.conf"
       ie. add an entry to the end of the file "blacklist usbtouchscreen"
       ie. "sudo gedit /etc/modprobe.d/blacklist.conf"

(2.) Create a file in /etc/apm/scripts.d called "touchscreen" and put the following contents in it.

#!/bin/sh
#
# apmd proxy script for touch screen

[ -x /usr/sbin/alsactl ] || exit 0

case "$1,$2" in
 suspend,*) rmmod hid_multitouch && modprobe hid_multitouch
esac

########

(3.) Then save it and type "sudo chmod 755 /etc/apm/scripts.d/touchscreen"

(4.) Then type "cd /etc/apm/resume.d"

(5.) Then from that path type, "sudo ln -s ../scripts.d/touchscreen ./20touchscreen"

(6.) Shut your lid and re-open it and see if the touchscreen starts working...

ASUS Vivobook here

Revision history for this message
Shane Sanders (shane442) wrote :

UPDDATE #2

for the apm script just use

#!/bin/sh
rmmod hid_multitouch && modprobe hid_multitouch

The conditional isn't necessary!

Appologies for the confusion

Revision history for this message
Shane Sanders (shane442) wrote :

Finally fixed this!!

Blacklist usbtouchscreen as above but put the following in /etc/pm/sleep.d/20touchscreen

#!/bin/sh
#
# apmd proxy script for touch screen

case "${1}" in
        resume|thaw)
/sbin/rmmod hid_multitouch && /sbin/modprobe hid_multitouch
;;
esac

Revision history for this message
Onno (schiller-babsi) wrote :

#21 and #22 works for me thanks a lot

Revision history for this message
plopp (jirihusak) wrote :

#3 from https://bbs.archlinux.org/viewtopic.php?id=190751 works as workaround for dell xps13 9333 with ubuntu gnome 15.04

Revision history for this message
Brian Avery (briansvgs) wrote :

#3 from https://bbs.archlinux.org/viewtopic.php?id=190751 also works as workaround for my Thinkpad Yoga S1 with Ubuntu Gnome 15.04

Revision history for this message
Peter A (rocketeer-n) wrote :

This bug also affects me (15.04, Thinkpad Yoga 13), and It is usually resolved with three or four finger touch. In other words, suspend makes one finger touch broken, and a single multi-touch input resolves the issue.

Revision history for this message
Daniel Tripp (daniel-m-tripp) wrote :

elementary Freya 0.3.2, x64, Thinkpad X201
#19 and #24 worked a charm for me!

Thanks for the solution!

Revision history for this message
Edmund Dao (edmund0dao) wrote :

If manually restarting hid_multitouch works (ex: su -c "rmmod hid_multitouch; modprobe hid_multitouch;")
try this:
    su -c "echo "SUSPEND_MODULES="hid_multitouch"" >> /etc/pm/config.d/modules "

This fixed it for me on elementary OS
Release: 0.3.2
kernel: 4.5.0

Revision history for this message
pebiq (pebi68) wrote :

Hello community,

I have the same problem with a TrekStore SurfTab Duo W2 MultiTouch Tablet/Notebook, which is similar to a Cube i7 from China.

But somehow no solution works to make the touchscreen work after a weak up from sleep.

Already tried much. Creating this skript doesn't work either:

https://bbs.archlinux.org/viewtopic.php?id=190751

Has anyone an idea what to do?

Thanks in advance.
PeBiq

Revision history for this message
John Franklin (ubuntu-sentaidigital) wrote :

In Ubuntu 16.04, I found I can restart it with "xinput enable 12". On my machine, 12 is the ID for the touchscreen. I found the id from "xinput list".

Revision history for this message
akashasia (akashasia) wrote :

On a Dell XPS 13 and none of the proposed fixes seem to work. The touchscreen basically dies after resume from suspend and only a restart seems to fix it

Revision history for this message
AceLan Kao (acelankao) wrote :

For Dell XPS, try remove pinctrl_sunrisepoint driver, it should work.
   sudo rmmod pinctrl_sunrisepoint

There is a discussion and a patch for this issue here
https://bugzilla.kernel.org/show_bug.cgi?id=176361

Revision history for this message
Alexander Hall (compuguy1088) wrote :

According to the most recent comment on #38's link, the fix for xps 13 is in the mainline kernel now: https://bugzilla.kernel.org/show_bug.cgi?id=176361#c24

Revision history for this message
Michael Kogan (michael-kogan) wrote :

I'm using a Thinkpad X200T with Manjaro and observe the problem described here. It doesn't necessarily happen after the first suspend/resume cycle but after some of them. The solution proposed in #19 didn't work for me though. I got two devices displayed corresponding to ttyS0 and ttyS1. Running inputattach for ttyS0 didn't have any effect, running it for ttyS1 lead to a system freeze such that I had to hard reset the machine. I will try again when the problem reappears and report back.

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.