You are not logged in.

#1 2015-11-01 10:19:41

stefanotis
Member
Registered: 2014-10-16
Posts: 21

[SOLVED] Elantech Touchpad not working

Hi there!

I am somewhat unsuccessfully trying to get my elantech touchpad to work under arch. I own a Fujitsu U745 and have a dualboot setup running with Windows 7 and Arch. Under Windows I have three modes for the touchpad that I can switch between using FN+F4: off, on, off when another mouse is detected. I have tried to set each option in Windows, then reboot and see if it makes a difference under arch: it doesn't. I have also tried to shutdown the laptop from Windows entirely in order to get rid of any residues from firmware loaded into the memory and then boot arch: also no difference. The touchpad simply does not react to any input.

I have installed xf86-input-synaptics and xinput.

I have copied /usr/share/X11/xorg.conf.d/50-synaptics.conf to /etc/X11/xorg.conf.d/ as described in the wiki.

I have using GNOME and have thus tried deactivating the mouse plugin in GNOME sessions-daemon via dconf-editor as indicated in the wiki.

As all of these steps showed no difference: the touchpad does still not respond to anything, I have also tried installing elantech-asustouchpad-dkms from the AUR, but again: no success.

I have then tried to unload and reload the kernel module psmouse:

# modprobe -r psmouse
# modprobe psmouse proto=imps

again: no success

I have also done the same without any specific protocol:

# modprobe -r psmouse
# modprobe psmouse

But again: no success.

Is there anything I could do to get my touchpad to work?

Here is some info from xinput and synclient:

xinput list

xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ USB Optical Mouse                       	id=11	[slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Fujitsu FUJ02E3                         	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ FJ Camera                               	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]

synclient

synclient
Parameter settings:
    LeftEdge                = 90
    RightEdge               = 2181
    TopEdge                 = 70
    BottomEdge              = 1234
    FingerLow               = 1
    FingerHigh              = 1
    MaxTapTime              = 180
    MaxTapMove              = 115
    MaxDoubleTapTime        = 100
    SingleTapTimeout        = 180
    ClickTime               = 100
    EmulateMidButtonTime    = 75
    EmulateTwoFingerMinZ    = 282
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = 52
    HorizScrollDelta        = 52
    VertEdgeScroll          = 0
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 0
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0763942
    TouchpadOff             = 0
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 0
    RBCornerButton          = 0
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 2
    TapButton3              = 3
    ClickFinger1            = 1
    ClickFinger2            = 1
    ClickFinger3            = 1
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 0
    PalmMinWidth            = 10
    PalmMinZ                = 200
    CoastingSpeed           = 20
    CoastingFriction        = 50
    PressureMotionMinZ      = 30
    PressureMotionMaxZ      = 160
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    GrabEventDevice         = 0
    TapAndDragGesture       = 1
    AreaLeftEdge            = 0
    AreaRightEdge           = 0
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
    HorizHysteresis         = 13
    VertHysteresis          = 13
    ClickPad                = 0

I'd be grateful for any hints and suggestions as to what might be the problem here or what else I could do to get that elantech touchpad working. Thanks!

Last edited by stefanotis (2016-02-23 14:10:19)

Offline

#2 2015-11-01 17:53:24

loqs
Member
Registered: 2014-03-06
Posts: 17,309

Re: [SOLVED] Elantech Touchpad not working

stefanotis wrote:

synclient

synclient
Parameter settings:
....
    FingerLow               = 1
    FingerHigh              = 1
....

With those two values the same will it ever see any press?
Also see this post to see if it is sending events https://bbs.archlinux.org/viewtopic.php … 2#p1157972

Offline

#3 2015-11-27 10:43:25

stefanotis
Member
Registered: 2014-10-16
Posts: 21

Re: [SOLVED] Elantech Touchpad not working

loqs wrote:
stefanotis wrote:

synclient

synclient
Parameter settings:
....
    FingerLow               = 1
    FingerHigh              = 1
....

With those two values the same will it ever see any press?
Also see this post to see if it is sending events https://bbs.archlinux.org/viewtopic.php … 2#p1157972

I changed those synclient settings. Unfortunately it had no effect. When reviewing your suggested post I came across the Idea to check the FN-Button functionality under fedora live. It seems some users were successful in activating their touchpads with a FN-Button combination under fedora and were then able to use the touchpad under arch, too. But again, the touchpad does not work under fedora, not even when testing the FN+F4 Button combination. I am completely lost...

Last edited by stefanotis (2015-11-27 10:44:11)

Offline

#4 2015-11-27 13:31:46

stefanotis
Member
Registered: 2014-10-16
Posts: 21

Re: [SOLVED] Elantech Touchpad not working

I found the source of the problem!

There is a kernel commit solving it (http://kernel.opensuse.org/cgit/kernel- … 0dd1806371)

Under /sys/devices/platform/i8042/serio2/ I found a file named crc_enabled. I changed its content from "0x00" to "1" which immediatily fired up the touchpad - it is working fine now!

The only questions I have left are

(1) The commit seems to have been applied on Nov 6, when will I be able to install a kernel that includes the patch?
(2) For the meantime: How can I make these changes permanent?

Last edited by stefanotis (2015-11-27 13:33:08)

Offline

#5 2015-11-27 16:22:11

loqs
Member
Registered: 2014-03-06
Posts: 17,309

Re: [SOLVED] Elantech Touchpad not working

stefanotis wrote:

I found the source of the problem!

There is a kernel commit solving it (http://kernel.opensuse.org/cgit/kernel- … 0dd1806371)

Under /sys/devices/platform/i8042/serio2/ I found a file named crc_enabled. I changed its content from "0x00" to "1" which immediatily fired up the touchpad - it is working fine now!

The only questions I have left are

(1) The commit seems to have been applied on Nov 6, when will I be able to install a kernel that includes the patch?

https://git.kernel.org/cgit/linux/kerne … 91e671db2d
Pulled during the 4.4 merge window but it was also sent to the stable series but I can not see it in https://git.kernel.org/cgit/linux/kerne … .git/tree/ currently.

stefanotis wrote:

(2) For the meantime: How can I make these changes permanent?

Via Sysctl
or rebuild the kernel with the patch applied

Offline

#6 2015-11-28 15:45:09

stefanotis
Member
Registered: 2014-10-16
Posts: 21

Re: [SOLVED] Elantech Touchpad not working

https://git.kernel.org/cgit/linux/kerne … 91e671db2d
Pulled during the 4.4 merge window but it was also sent to the stable series but I can not see it in https://git.kernel.org/cgit/linux/kerne … .git/tree/ currently.

So I might just wait for kernel 4.4. then. Thank you!

I rebooted today. As expected

cat /sys/devices/platform/i8042/serio2/crc_enabled 

returned "0x00".
I changed the value back to "1" so it returned "0x01" but nothing changed. I have no idea why the touchpad is refusing to work, now that I have set crc_enabled to 1.

Offline

#7 2015-11-28 18:53:47

loqs
Member
Registered: 2014-03-06
Posts: 17,309

Re: [SOLVED] Elantech Touchpad not working

Try rebuilding the 4.2.5 kernel with the patch applied?

Offline

#8 2016-01-10 19:22:41

stefanotis
Member
Registered: 2014-10-16
Posts: 21

Re: [SOLVED] Elantech Touchpad not working

Thank you very much for your help!

However, I couldn't really get my way around (a) rebuildung the kernel as I could not find the kernel option and (b) using sysctl, again, because I couldn't find the appropriate kernel option.

So instead, I did some research and found out I need another kernel parameter in /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet i8042.nomux=1 i8042.reset"

Additionally, I wrote a script that changes the content of the "crc_enabled" file (/etc/touchpadcrc.sh):

#!/bin/sh
echo "1" > /sys/devices/platform/i8042/serio1/crc_enabled

When run as root, it works everytime. The touchpad works just fine.

So I also wrote a systemd service file in order to have /etc/touchpadcrc.sh run on boot:

[Unit]
Description=Run /etc/touchpadcrc.sh which enables crc_enabled under /sys/devices...
#Requires=gdm.service
#After=gdm.service


[Service]
Type=idle
ExecStart=/etc/touchpadcrc.sh
RemainAfterExit=yes

Note: I fiddled aroung with "Requires" and "After" in order for the service to be run after gdm has started, but it didn't work. So I changed the "Type" to idled, as this should start the service after everything else has been completed. However, for whatever reason, the service does not get started. I have no idea why.

When I login to GNOME, I can manually start the service via

# systemctl start touchpadcrc

and voilá, the touchpad works fine.

Does anyone have an idea as to why the service does not start?

Offline

#9 2016-01-10 21:14:03

loqs
Member
Registered: 2014-03-06
Posts: 17,309

Re: [SOLVED] Elantech Touchpad not working

stefanotis wrote:

Thank you very much for your help!

However, I couldn't really get my way around (a) rebuildung the kernel as I could not find the kernel option and (b) using sysctl, again, because I couldn't find the appropriate kernel option.

About (a) I do not understand which kernel option you are referring to
About (b) that was my mistake as you noticed the option can not be set via sysctl

stefanotis wrote:

So instead, I did some research and found out I need another kernel parameter in /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet i8042.nomux=1 i8042.reset"

Additionally, I wrote a script that changes the content of the "crc_enabled" file (/etc/touchpadcrc.sh):

#!/bin/sh
echo "1" > /sys/devices/platform/i8042/serio1/crc_enabled

When run as root, it works everytime. The touchpad works just fine.

So I also wrote a systemd service file in order to have /etc/touchpadcrc.sh run on boot:

[Unit]
Description=Run /etc/touchpadcrc.sh which enables crc_enabled under /sys/devices...
#Requires=gdm.service
#After=gdm.service


[Service]
Type=idle
ExecStart=/etc/touchpadcrc.sh
RemainAfterExit=yes

Note: I fiddled aroung with "Requires" and "After" in order for the service to be run after gdm has started, but it didn't work. So I changed the "Type" to idled, as this should start the service after everything else has been completed. However, for whatever reason, the service does not get started. I have no idea why.

When I login to GNOME, I can manually start the service via

# systemctl start touchpadcrc

and voilá, the touchpad works fine.

Does anyone have an idea as to why the service does not start?

Where is that service file located?
There is no install section for that service file so how did you enable it?

Offline

#10 2016-02-23 14:09:01

stefanotis
Member
Registered: 2014-10-16
Posts: 21

Re: [SOLVED] Elantech Touchpad not working

Thanks again loqs!

I kind of solved the problem by simply running /etc/touchpadcrc.sh after each boot.

Since the Update to Kernel 4.4, the problem has been solved.

Thank you though!

Offline

Board footer

Powered by FluxBB