ALPS Touchpad - Dell e6530 - OpenSUSE Tumbleweed - kernel-desktop 3.7.1

The touchpad on my Dell e6530 laptop is not recognized, or is recognized only as a PS/2 Generic Mouse, and so I cannot use two finger scrolling or other advanced touchpad functionality (confirmed by the out put of xinput and that synaptiks - I run kde - indicates that no trackpad is found). This seems to be a known issue with ALPS touchpads (discussion here - ubuntu-centered and a mention of the issue on openSUSE here).

There’s a patch for the psmouse kernel module available here, mentioned in the launchpad discussion and used by an arch linux installable package, that addresses the problem. The patch is designed to be installed via dkms, which I currently have installed and use with virtualbox. I’ve downloaded the files, unpacked them, installed them is /usr/src and applied the 3.7 kernel specific patches specified in the arch packagebuild file here. I have tried this both with the 1.1 and 1.2 versions of the module.

The helper script available with the modified psmouse source code files seems to do all the ‘right things’ - copies the files to /var/lib/dkms, invokes the dkms build command - and most of the source files are built, but then the build fails before the psmouse.ko file is created. Here is the output of the make.log file:

Sat Jan 5 22:04:30 CST 2013
make: Entering directory /usr/src/linux-3.7.1-17-obj/x86_64/desktop' CC /var/lib/dkms/psmouse/alps-dst-1.1/build/src/psmouse-base.o /var/lib/dkms/psmouse/alps-dst-1.1/build/src/psmouse-base.c: In function ‘__check_smartscroll’: /var/lib/dkms/psmouse/alps-dst-1.1/build/src/psmouse-base.c:64:1: warning: return from incompatible pointer type [enabled by default] CC /var/lib/dkms/psmouse/alps-dst-1.1/build/src/synaptics.o CC /var/lib/dkms/psmouse/alps-dst-1.1/build/src/alps.o CC /var/lib/dkms/psmouse/alps-dst-1.1/build/src/elantech.o CC /var/lib/dkms/psmouse/alps-dst-1.1/build/src/logips2pp.o CC /var/lib/dkms/psmouse/alps-dst-1.1/build/src/lifebook.o CC /var/lib/dkms/psmouse/alps-dst-1.1/build/src/sentelic.o CC /var/lib/dkms/psmouse/alps-dst-1.1/build/src/trackpoint.o CC /var/lib/dkms/psmouse/alps-dst-1.1/build/src/touchkit_ps2.o LD /var/lib/dkms/psmouse/alps-dst-1.1/build/src/psmouse.o MODPOST 0 modules make: Leaving directory /usr/src/linux-3.7.1-17-obj/x86_64/desktop’

Hoping that someone can point me in the right direction - from the messages, I’m not even sure why it’s failing. Is there a way to log additional information? Is there something obvious I’m getting wrong?

Thanks in advance for and advice (or answers).

Nathan

I am in the same situation. I am pretty sure this is because the psmouse kernel module is built into the openSUSE kernel, unlike in ubuntu, where it is a loadable module. I don’t want to have to recompile a kernel to take out the psmouse module, so hopefully someone can help with a better solution.

Eric

I suggest you compile your own kernel, load it and then try to apply this patch. Due to the actual source code you get from openSUSE, its not the complete remnants of a compile, but what is used for most applications. It saves space, a lot actually and if you compare the size of your kernel source file folder when the compile is done, you will see what I mean. So, download kernel 3.7.1 source, and run the following script and then try again after it gets loaded.

Kernel 3.7.1 Source code: http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.7.1.tar.bz2

SAKC Bash script to compile said kernel: https://forums.opensuse.org/blogs/jdmcdaniel3/s-k-c-suse-automated-kernel-compiler-version-2-50-34/

In my testing, some things, like VirtualBox compile OK with dkms and the default kernel source, while others, like the nVIDIA driver does not. IN any even, it is worth a try. Also, since openSUSE 12.1, I have had issues with dkms wanting to run under systemd. Have a look here:

DKMS, systemd & Virtual Box - How to get Dynamic Kernel Module Support to work in openSUSE 12.1/12.2: https://forums.opensuse.org/blogs/jdmcdaniel3/dkms-systemd-how-get-dynamic-kernel-module-support-work-opensuse-12-1-100/

Thank You,

James,

Thanks for pointing me to SAKC - it’s been awhile since I compiled my own kernel and this makes the configuration and installation pretty simple. I’ll give it a try this weekend.

Am I correct in understanding that the default selection is a “fresh” / default configuration file? That if what I wanted to do as a first step was to compile the input/mouse module as loadable that I could start with the current configuration file (“active config”) which is a choice under the advanced configuration options?

Nathan

Actually, the default kernel configuration is based on your present setup. You can go back to the beginning of what your configuration was or you can modify the default or one of the previous kernel configurations. The kernel configuration is one of those things best left at default to start and apply your tweaks to that. There are too many details that if improperly set will derail your entire system. Of course, very active kernel developers may be able to handle it, but for a starting point, I suggest you use your present default kernel configuration. By the way it is easy to look for specifics if you know its name by using this terminal command:

zcat /proc/config.gz | grep "CONFIG_NAME"

Thank You,

I also found this problem on my Dell E6430u.
Will it be fixed up in openSUSE 12.3?

Thankyou!

Hi Nathan,I am us

Did you succeed in fixing the problem? I have a Dell N5110 which has the touchpad problem also, I am running OpenSUSE 12.3, and have already attempted to compile the ALPS driver using the same procedure you discuss above - alps.sh, etc, against the kernel shipped with 12.3, which appears to be 3.7.10. I got exactly the same error that you report above.

Based on the information here I have now recompiled the 3.7.1 kernel - a downgrade - using SAKC. After the compile and instaIl successfully completed, I tried again to compile the ALPS driver version 1.3 (the one you mention above), against the newly compiled and installed kernel. However I still got the very same error that you describe above. Compiling the kernel made it appear in my boot menu, but it still didn’t let me compile the driver. Was I supposed to change the kernel configuration before compiling it? I left it alone because I assumed that SAKC, by default, would compile it such that all modules could be loaded dynamically. Perhaps this was an incorrect assumption? Did you get it to work and if so how?

If I can’t fix this soon, I’m going to have to switch to Ubuntu. I have spent at least 8 hours on this problem so far and I am disappointed in how difficult it is to do something as simple and common as updating a driver.:frowning:

Thanks,

yours
Simon

Thank goodness, I finally got this working. Here are the steps:

  1. Compile the 3.7.1 kernel using SAKC’s Standard Kernel Compile. In the Configuration section, type “y” to choose to configure with a GUI. A GUI will appear.

  2. In the GUI, choose Device Drivers -> Input Device Support -> Mice -> PS/2 Mouse.

  3. Hit the M key to make the PS/2 Mouse a module (instead of having it built in). An M should appear where a * was before.

  4. Choose <Exit> 4 times at the bottom of the screen (Exit, Exit, Exit, Exit) to get out of the GUI.

  5. Wait for the compile and install to complete - on my Dell N5110, the compile took 24 minutes, the install was done shortly thereafter.

  6. Restart the machine. Choose the new kernel that you just created - it will appear at the top of the boot menu.

  7. Su to root, and copy the psmouse-alps-1.3 directory and all of its contents to /usr/src.

  8. cd to /usr/src/psmouse-alps-1.3

  9. Change line 87 of /usr/src/psmouse-alps-1.3/alps.sh from:

    sudo dkms install psmouse/$DLKM

    to

    sudo dkms --force install psmouse/$DLKM

    We must use the --force option to get DKMS to actually install the newly compiled module, otherwise it thinks it is unchanged and refuses to install it.

  10. Type:

    ./alps.sh dkms_build_alps

  11. Watch the build complete successfully.

  12. Try two-finger scrolling. It should magically work!

  13. In the Application Launcher, type Touchpad. You can now configure your touchpad!!! :slight_smile:

Just before step 10, you will have to type:

./alps.sh dkms_install_symlink

At step 10, the script will direct you to do this anyway, so you would have figured it out, but why not tell you, so you don’t have to do step 10 twice?

Good luck,

Simon