Fix for suspend problems on T410s with touchscreen

From ThinkWiki
Revision as of 18:59, 26 May 2011 by Kristine (Talk | contribs) (←Created page with 'In {{Ubuntu}} (and a lot of other Linux distrubutions) the Lenovo {{T410s}} with a touchscreen has the issue that it cannot go into suspend. It is the kern...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

In Ubuntu (and a lot of other Linux distrubutions) the Lenovo T410s with a touchscreen has the issue that it cannot go into suspend.

It is the kernel module hid_ntrig that seems to be causing the problem. Thus a work around this is to turn off the kernel module hid_ntrig by running the following command:

modprobe -r hid_ntrig

This will disable the touch screen, but now suspend works.

If you want to have both your touch screen and suspend, go to the folder: /etc/pm/sleep.d/. You should create a script file in this folder which will then be called when your laptops goes into and awakens from suspend. The script should contain the following code and remember to make the file executable:

#!/bin/sh

# Disable ntrig on suspend and enable it when awakening from suspend.
# Goal: Turn off touch screen which makes suspend not work on Lenovo ThinkPad T410

# pm-action(8) - <action> <suspend method>

case "${1}" in
        suspend|hibernate)
                modprobe -r hid_ntrig       
                ;;
        resume|thaw)
                modprobe hid_ntrig &
                ;;
esac

When your laptop goes into suspend, the touch screen module will be disabled

modprobe -r hid_ntrig       

and on awakening the module is enabled.

modprobe hid_ntrig &

I add the ampersand (&) at the end when enabling hid_ntrig, because this command is rather slow. By doing so the command in run in the background, and thus it will not make your computer stall on awakening, but it might take 10 seconds before you can use your touch screen.

This has been implemented in Linux Mint 10 but I guess it should also work in a normal Ubuntu installation.