Ubuntu – ALPS touchpad detected as PS/2, corrected with psmouse-dkms-alpsv7 but reset after reboot

alpslenovosettingstouchpad

Hope someone can help me a little with this problem.
I have a Lenovo Ideapad Z510, with a ALPS touchpad. And OS = Kubuntu 14.04 (Windows 8.1 alongside with it)

The touchpad is detected as an PS/2 mouse. Using this guide https://askubuntu.com/a/417518/262262, and some minor edits, managed I to get it to work, and multitouch is working as it should. But after reboot, all settings went back, as it was before the psmouse-dkms-alpsv7 modification.

Is it possible to make the changes permanent?

Before changes:

The touchpad is detected as an PS/2 mouse:

    chp@chp-Lenovo-IdeaPad-Z510-kubuntu:~$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ PS/2 Generic Mouse                        id=13   [slave  pointer  (2)]
⎜   ↳ Logitech Unifying Device. Wireless PID:4027       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)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Lenovo EasyCamera                         id=10   [slave  keyboard (3)]
    ↳ Ideapad extra buttons                     id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]

dmesg writes:

chp@chp-Lenovo-IdeaPad-Z510-kubuntu:~$ dmesg | grep -i alps
[    1.457466] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 03 0a, EC=88 b6 06

The changes:

I started to follow the guide (https://askubuntu.com/a/417518/262262), but every time I restartet the PC, the GIT folder was deleted. So I moved it to /msp instead. (chmod 777)

file = install.sh

#!/bin/bash  #  changed from: #!/bin/bash

#old line: MDIR="/usr/lib/modules/$(uname -r)"
MDIR="/lib/modules/$(uname -r)"

#old line: NEWMDIR="$MDIR/${DEST_MODULE_LOCATION[0]}"
NEWMDIR="$MDIR${DEST_MODULE_LOCATION[0]}"

file = dkms.conf

#old line: DEST_MODULE_LOCATION[0]="/updates"
DEST_MODULE_LOCATION[0]="/updates/dkms"

and then installed it. The modifications in the above files, prevented errors under install.

Results:

chp@chp-Lenovo-IdeaPad-Z510-kubuntu:/psm/psmouse-dkms-alpsv7$ sudo ./install.sh
[sudo] password for chp: 
────── Building with dkms ───────

Error! DKMS tree already contains: psmouse-dkms-alpsv7-1.0
You cannot add the same module/version combo more than once.
Module psmouse-dkms-alpsv7/1.0 already built for kernel 3.13.0-32-generic/4
 ** Old module backed up as:
    '/lib/modules/3.13.0-32-generic/kernel/drivers/input/mouse/psmouse.ko.orig'


────── Installing with dkms ───────

Module psmouse-dkms-alpsv7/1.0 already installed on kernel 3.13.0-32-generic/x86_64
Install succeded:
    '/lib/modules/3.13.0-32-generic/updates/dkms/psmouse.ko' found and copied to:
    '/lib/modules/3.13.0-32-generic/kernel/drivers/input/mouse/psmouse.ko'
──→ rmmod psmouse
──→ modprobe psmouse
ok.

xinput:

chp@chp-Lenovo-IdeaPad-Z510-kubuntu:/psm/psmouse-dkms-alpsv7$ xinput --list                                     
⎡ Virtual core pointer                          id=2    [master pointer  (3)]                                   
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]                                   
⎜   ↳ Logitech Unifying Device. Wireless PID:4027       id=14   [slave  pointer  (2)]                           
⎜   ↳ ALPS PS/2 Device                          id=13   [slave  pointer  (2)]                                   
⎜   ↳ AlpsPS/2 ALPS GlidePoint                  id=15   [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)]                                   
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]                                   
    ↳ Power Button                              id=9    [slave  keyboard (3)]                                   
    ↳ Lenovo EasyCamera                         id=10   [slave  keyboard (3)]                                   
    ↳ Ideapad extra buttons                     id=11   [slave  keyboard (3)]                                   
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]                                   

dmesg:

chp@chp-Lenovo-IdeaPad-Z510-kubuntu:/psm/psmouse-dkms-alpsv7$ dmesg | grep -i alps
[    1.457466] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 03 0a, EC=88 b6 06
[ 2072.514926] input: ALPS PS/2 Device as /devices/platform/i8042/serio1/input/input18
[ 2072.536678] input: AlpsPS/2 ALPS GlidePoint as /devices/platform/i8042/serio1/input/input17

synclient:

chp@chp-Lenovo-IdeaPad-Z510-kubuntu:/psm/psmouse-dkms-alpsv7$ synclient -l                
Parameter settings:
    LeftEdge                = 614
    RightEdge               = 3481
    TopEdge                 = 307
    BottomEdge              = 1740
    FingerLow               = 12
    FingerHigh              = 15
    MaxTapTime              = 180
    MaxTapMove              = 201
    MaxDoubleTapTime        = 180
    SingleTapTimeout        = 180
    ClickTime               = 100
    EmulateMidButtonTime    = 75
    EmulateTwoFingerMinZ    = 141
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = 91
    HorizScrollDelta        = 91
    VertEdgeScroll          = 1
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 0
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0436872
    TouchpadOff             = 0
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 2
    RBCornerButton          = 3
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 3
    TapButton3              = 0
    ClickFinger1            = 1
    ClickFinger2            = 1
    ClickFinger3            = 0
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 0
    PalmMinWidth            = 10
    PalmMinZ                = 100
    CoastingSpeed           = 20
    CoastingFriction        = 50
    PressureMotionMinZ      = 15
    PressureMotionMaxZ      = 80
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    ResolutionDetect        = 1
    GrabEventDevice         = 1
    TapAndDragGesture       = 1
    AreaLeftEdge            = 0
    AreaRightEdge           = 0
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
    HorizHysteresis         = 22
    VertHysteresis          = 22
    ClickPad                = 0

Best Answer

You only need to install the DKMS package once, it will be copied to /var/lib/dkms/. So, /tmp/ was fine, and you really should not create /msp/ either as it violates the Filesystem Hierarchy guidelines.

My guess is that psmouse is considered a crucial module which should be available when Ubuntu boots, and therefore ends up in the initial ramdisk. As your new module replaced an existing module (psmouse), you can try to run the sudo update-initramfs -u to get your new module in the initrd. You only need to do this once as further kernel updates will trigger this automatically.

Related Question