touchpad doesn't work after resume from suspend to ram

on my sony vaio VPCEH2N1E, RAM=4Gb, GPU=intel, CPU=intel i5 @2.4GHz, OS=opensuse 13.2, KDE=4.14.9
after boot the touchpad works well, but, after resume from suspend to ram it stops to works and I have to use an USB mouse to work.
any suggestion to have my touchpad working also after resume??
manythanks, ciao :slight_smile: pier

Hi Pier

More information about your touchpad would be useful here as it is hardware-specific.

Anyway, have a read of this thread (post #7 onwards)

https://forums.opensuse.org/showthread.php/504589-Dell-touchpad-disabled-after-suspend

Let us know how you get on.

ok, many thanks deano, :slight_smile:
I read the thread https://forums.opensuse.org/showthread.php/504589-Dell-touchpad-disabled-after-suspend
I rebooted only with touchpad, no other mices connected, touchpad works

hwinfo gives this as superuser:

linux-eros1:/home/eros # hwinfo --mouse
33: PS/2 00.0: 10500 PS/2 Mouse                                 
  [Created at input.249]
  Unique ID: AH6Q.5+smWHVjPI3
  Hardware Class: mouse
  Model: "DualPoint Stick"
  Vendor: 0x0002 
  Device: 0x0008 "DualPoint Stick"
  Compatible to: int 0x0210 0x0003
  Device File: /dev/input/mice (/dev/input/mouse0)
  Device Files: /dev/input/mice, /dev/input/mouse0, /dev/input/event1, /dev/input/by-path/platform-i8042-serio-1-event-mouse, /dev/input/by-path/platform-i8042-serio-1-mouse
  Device Number: char 13:63 (char 13:32)
  Driver Info #0:
    Buttons: 3
    Wheels: 0
    XFree86 Protocol: explorerps/2
    GPM Protocol: exps2
  Config Status: cfg=no, avail=yes, need=no, active=unknown

34: PS/2 00.0: 10500 PS/2 Mouse
  [Created at input.249]
  Unique ID: AH6Q.5+smWHVjPI3
  Hardware Class: mouse
  Model: "AlpsPS/2 ALPS DualPoint TouchPad"
  Vendor: 0x0002 
  Device: 0x0008 "AlpsPS/2 ALPS DualPoint TouchPad"
  Compatible to: int 0x0210 0x0003
  Device File: /dev/input/mice (/dev/input/mouse1)
  Device Files: /dev/input/mice, /dev/input/mouse1, /dev/input/event2, /dev/input/by-path/platform-i8042-serio-1-event-mouse, /dev/input/by-path/platform-i8042-serio-1-mouse
  Device Number: char 13:63 (char 13:33)
  Driver Info #0:
    Buttons: 3
    Wheels: 0
    XFree86 Protocol: explorerps/2
    GPM Protocol: exps2
  Config Status: cfg=no, avail=yes, need=no, active=unknown

35: PS/2 00.0: 10500 PS/2 Mouse
  [Created at input.249]
  Unique ID: AH6Q.GK9dutOpov5
  Hardware Class: mouse
  Model: "Sony Vaio Jogdial"
  Vendor: 0x104d 
  Device: "Sony Vaio Jogdial"
  Compatible to: int 0x0210 0x0011
  Device File: /dev/input/mice (/dev/input/mouse2)
  Device Files: /dev/input/mice, /dev/input/mouse2, /dev/input/event9
  Device Number: char 13:63 (char 13:34)
  Driver Info #0:
    Buttons: 1
    Wheels: 1
    XFree86 Protocol: explorerps/2
    GPM Protocol: exps2
  Config Status: cfg=no, avail=yes, need=no, active=unknown
linux-eros1:/home/eros # 

so I supposed it was this:

 Model: "AlpsPS/2 ALPS DualPoint TouchPad"

where this:

/dev/input/by-path/platform-i8042-serio-1-mouse

was very similar to what you suggest in the thread
so I suspended to RAM and resumed (with not working touchpad) and did this as root and as user:

echo -n rescan > /sys/devices/platform/i8042/serio1/drvct

but nothing works and result was this

linux-eros1:/home/eros # echo -n rescan > /sys/devices/platform/i8042/serio1/drvct
bash: /sys/devices/platform/i8042/serio1/drvct: Permesso negato
(permesso negato means access denied)

continuing to read the thread I supposed it was the module i2c_hic
then I tried this as root before to suspend to ram

/sbin/modprobe -r i2c_hid

and then this after resumed

/sbin/modprobe i2c_hid

but nothing works.
…manythanks again, :slight_smile: other suggestion??

Based on advice in this fedoraforum thread you could try invoking the following manually (following a resume)

device=`xinput list | sed -n '/TouchPad/s/^.*id=\([0-9]\+\).*$/\1/p'`; xinput disable $device; xinput enable $device

which just disables and re-enables the touchpad device.

If that works, it could be automated via a custom systemd resume service

https://wiki.archlinux.org/index.php/Power_management#Sleep_hooks

ok, with working touchpad the command as user:

device=`xinput list | sed -n '/TouchPad/s/^.*id=\([0-9]\+\).*$/\1/p'`; xinput disable $device; xinput enable $device

works, with no errors.
after resume, with non working touchpad,

procuste@linux-eros1:~> device=`xinput list | sed -n '/TouchPad/s/^.*id=\([0-9]\+\).*$/\1/p'`; xinput disable $device; xinput enable $device
Errore di segmentazione
Errore di segmentazione
procuste@linux-eros1:~> 
(Errore di segmentazione means segmentation error)

it gives this error as user and as superuser

if it can help I noted that after resume the hwinfo --mouse change in this way:
and the touchpad disappear

linux-eros1:/home/procuste # hwinfo --mouse
28: USB 00.0: 10503 USB Mouse                                   
  [Created at usb.122]
  Unique ID: Bgjr.4lr8UC8Kol6
  Parent ID: FKGF.4Nx_qoDfSd7
  SysFS ID: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0
  SysFS BusID: 2-1.5:1.0
  Hardware Class: mouse
  Model: "MOON AND"
  Hotplug: USB
  Vendor: usb 0x13ee "MOON"
  Device: usb 0x0001 "AND"
  Revision: "0.10"
  Serial ID: "@ɌAB"
  Compatible to: int 0x0200 0x0001 "Generic USB Mouse"
  Driver: "usbhid"
  Driver Modules: "usbhid"
  Speed: 1.5 Mbps
  Module Alias: "usb:v13EEp0001d0010dc00dsc00dp00ic03isc01ip02in00"
  Driver Info #0:
    XFree86 Protocol: explorerps/2
    GPM Protocol: exps2
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #32 (Hub)

34: PS/2 00.0: 10500 PS/2 Mouse
  [Created at input.249]
  Unique ID: AH6Q.GK9dutOpov5
  Hardware Class: mouse
  Model: "Sony Vaio Jogdial"
  Vendor: 0x104d 
  Device: "Sony Vaio Jogdial"
  Compatible to: int 0x0210 0x0011
  Device File: /dev/input/mice (/dev/input/mouse3)
  Device Files: /dev/input/mice, /dev/input/mouse3, /dev/input/event10
  Device Number: char 13:63 (char 13:35)
  Driver Info #0:
    Buttons: 1
    Wheels: 1
    XFree86 Protocol: explorerps/2
    GPM Protocol: exps2
  Config Status: cfg=no, avail=yes, need=no, active=unknown
linux-eros1:/home/procuste # 


other suggestion??
manythanks again :slight_smile: ciao, :slight_smile: pier

if it can help, after resume with non working touchpad
http://paste.opensuse.org/view/download/1562579

it disappear from xinput --list
before suspend with touchpad working

procuste@linux-eros1:~> xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ MOON AND                                  id=11   [slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS DualPoint TouchPad          id=13   [slave  pointer  (2)]
⎜   ↳ DualPoint Stick                           id=14   [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)]
    ↳ Sony Vaio Keys                            id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sony Visual Communication Camer           id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
procuste@linux-eros1:~> 

after resume with non working touchpad

procuste@linux-eros1:~> xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ MOON AND                                  id=11   [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)]
    ↳ Sony Vaio Keys                            id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sony Visual Communication Camer           id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
procuste@linux-eros1:~> xinput enable "AlpsPS/2 ALPS DualPoint TouchPad"


so when I run


procuste@linux-eros1:~> xinput enable 13
or
procuste@linux-eros1:~> xinput enable "AlpsPS/2 ALPS DualPoint TouchPad"
unable to find device AlpsPS/2 ALPS DualPoint TouchPad
procuste@linux-eros1:~> 


xinput cannot find it
ciao, :slight_smile: pier

The device is not reinitialised, and this is probably due to the i8042 controller. You may need to examine kernel messages related to the i8042 controller to find out more about the (mis)behaviour. If you have a systemd journal, you can examine this via the ‘journalctl’ command, or if rsyslogd is still in use then examine /var/log/messages.

This may provide some useful output

dmesg|grep i8042

For reference, I get

# dmesg|grep i8042
    0.562595] i8042: PNP: PS/2 Controller [PNP0303:C298,PNP0f13:C299] at 0x60,0x64 irq 1,12
    0.564247] i8042: Detected active multiplexing controller, rev 1.1
    0.565072] serio: i8042 KBD port at 0x60,0x64 irq 1
    0.565102] serio: i8042 AUX0 port at 0x60,0x64 irq 12
    0.565122] serio: i8042 AUX1 port at 0x60,0x64 irq 12
    0.565141] serio: i8042 AUX2 port at 0x60,0x64 irq 12
    0.565160] serio: i8042 AUX3 port at 0x60,0x64 irq 12
    0.589956] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
    1.381092] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio4/input/input1

Some general advice here that may be worth trying
https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Touchpad_does_not_work_after_resuming_from_hibernate.2Fsuspend

It may be that a bug report is required to help resolve this.

if it can help,:
if I login with a new user (two users active) I have working touchpad only in the new user, and if logout with the non working touchpad user then login again I have a working touchpad.
manythanks, :slight_smile: ciao, pier

after resume with a non working touchpad the dmesg output:

procuste@linux-eros1:~> dmesg|grep i8042
    1.140239] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
    1.141996] serio: i8042 KBD port at 0x60,0x64 irq 1
    1.142024] serio: i8042 AUX port at 0x60,0x64 irq 12
    1.158744] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
    2.357687] input: DualPoint Stick as /devices/platform/i8042/serio1/input/input3
    2.372372] input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input2
  304.105781] i8042: Can't write CTR while closing AUX port
  304.627689] i8042: Can't reactivate AUX port
 2344.019742] i8042: Can't write CTR while closing AUX port
 2344.541804] i8042: Can't reactivate AUX port
 2345.735646] input: DualPoint Stick as /devices/platform/i8042/serio1/input/input23
 2345.748893] input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input22
 4513.696479] i8042: Can't write CTR while closing AUX port
 4514.218243] i8042: Can't reactivate AUX port
procuste@linux-eros1:~> 

also trying the https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Touchpad_does_not_work_after_resuming_from_hibernate.2Fsuspend suggestion:
Switching to a console and back again, it doesn’t works
entering sleep mode again, and resuming again, it doesn’t works, (if it can help, I was with two users active, after the second resume also the keyboard didn’t work, so I cannot unlock the session for the first user and I had to switch using usb mouse to the second user where keyboard was working.)
locating the correct kernel module, then removing it and inserting it again.
I don’t know how to get the correct module and having the Alps Dualpoint touchpad me too
I supposed that the module was the same in the example

linux-eros1:/home/procuste # modprobe -r psmouse
modprobe: FATAL: Module psmouse is builtin.
linux-eros1:/home/procuste # modprobe psmouse
linux-eros1:/home/procuste # 

but it didn’t work
manythanks, :slight_smile: ciao , pier

Your hardware and symptoms are essentially the same as reported in the Fedora thread I linked to back in post #2 of this thread. The user and your findings suggest that it somehow affects the current X-session (Xorg related?), but there is definitely an underlying issue with the i8042controller/kernel interaction. The Fedora user found restarting the X-server restored the touchpad activity too.

I think you’ll need to submit a bug report for this behaviour to get a proper resolution.

I don’t know how to get the correct module and having the Alps Dualpoint touchpad me too
I supposed that the module was the same in the example

linux-eros1:/home/procuste # modprobe -r psmouse
modprobe: FATAL: Module psmouse is builtin.
linux-eros1:/home/procuste # modprobe psmouse
linux-eros1:/home/procuste # 

but it didn’t work
manythanks, :slight_smile: ciao , pier

No, that can’t be done in with the openSUSE kernel as psmouse is not compiled as a module.

saying “The Fedora user found restarting the X-server restored the touchpad activity too”
…restarting the X-server is the same thing when I logout then login again??

ok, I will do :slight_smile:

manythanks, ciao, :slight_smile: pier

Essentially, since restarting the X-session will require the user to log back in again.

ok, I will do :slight_smile:

manythanks, ciao, :slight_smile: pier

Add a link to the bug report when you get time. :slight_smile:

so, how can I restart X-server and having a working touchpad using only keyboard???

:slight_smile: ok

CTRL + ALT + Backspace (twice)

I found an already bug like mine, so I added a comment to it, it is 2014 bug.
https://bugzilla.opensuse.org/show_bug.cgi?id=906026
or it was better to file a new bug??
…I made some try, touchpad never worked after resume, but today yes, logout and login sometimes works and sometimes not… :slight_smile:
…manythanks, :slight_smile: ciao, pier

I’m going to suggest that you submit a bug report upstream to catch the attention of the kernel developers who can help

https://bugzilla.kernel.org/

BTW, I think the dmesg output following the resume is very relevant

  304.105781] i8042: Can't write CTR while closing AUX port
  304.627689] i8042: Can't reactivate AUX port
 2344.019742] i8042: Can't write CTR while closing AUX port
 2344.541804] i8042: Can't reactivate AUX port
 2345.735646] input: DualPoint Stick as /devices/platform/i8042/serio1/input/input23
 2345.748893] input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input22
 4513.696479] i8042: Can't write CTR while closing AUX port
 4514.218243] i8042: Can't reactivate AUX port

It is the auxiliary port that the touchpad is connected to.

You can also increase the verbosity by including the following kernel boot parameter in grub

i8042.debug=1

Reference:
https://wiki.archlinux.org/index.php/Boot_debugging#Insane_Debug

BTW, can you tell me if a second suspend/resume cycle then results in a working touchpad?

…ok, I did some test… :slight_smile:

first test
one user at boot touchpad works
first cycle suspend - resume, touchpad don’t works
second cycle suspend - resume, touchpad don’t works
third cycle suspend - resume, touchpad don’t works
access with second user, touchpad don’t works

second test
booted with i8042.debug=1 parameter
one user at boot touchpad works

dmesg|grep i8042 gives this:

a lot of ... 
  222.222369] i8042: [220895] 00 <- i8042 (interrupt, 1, 12)
  222.223494] i8042: [220896] 00 <- i8042 (interrupt, 1, 12)
....
  564.336770] i8042: [562718] e0 <- i8042 (interrupt, 0, 1)
  564.340345] i8042: [562722] 9c <- i8042 (interrupt, 0, 1)

first cycle suspend - resume, touchpad don’t works
dmesg|grep i8042 gives this: SUSE Paste

the interesting point of dmesg|grep i8042 seems to be this:
  731.133950] i8042: [729372] d4 -> i8042 (command)
  733.224836] i8042: Can't write CTR while closing AUX port
  733.746353] i8042: Can't reactivate AUX port
  733.746359] i8042: [731982] fa <- i8042 (interrupt, 1, 0)

second cycle suspend - resume touchpad don’t works but only becouse it is disabled, clicking on touchpad icon on system tray it works,
in the first cycle there was a yellow triangle on the touchpad icon, and maybe that in the first test I don’t noticed this
dmesg|grep i8042 gives this: SUSE Paste

the interesting point of dmesg|grep i8042 seems to be this:
 1009.275867] i8042: [1007274] fa <- i8042 (interrupt, 1, 12)
 1009.276032] input: DualPoint Stick as /devices/platform/i8042/serio1/input/input23
 1009.276349] i8042: [1007275] d4 -> i8042 (command)
and this
 1009.289677] i8042: [1007288] fa <- i8042 (interrupt, 1, 12)
 1009.289837] input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input22
 1009.290197] i8042: [1007289] d4 -> i8042 (command)

third cycle suspend - resume, touchpad don’t works
clicking on touchpad icon on system tray don’t works,
no yellow triangle on the touchpad icon in the system tray
dmesg|grep i8042 gives this: SUSE Paste

the interesting point of dmesg|grep i8042 seems to be this:
 1807.275124] i8042: [1804591] e8 -> i8042 (parameter)
 1807.475325] i8042: [1804791] d4 -> i8042 (command)
 1809.563903] i8042: Can't write CTR while closing AUX port
 1810.085420] i8042: Can't reactivate AUX port
 1810.085426] i8042: [1807399] fa <- i8042 (interrupt, 1, 0)