Page 1 of 3 123 LastLast
Results 1 to 10 of 25

Thread: Dell e6400 wandering touchpad - workaround

  1. #1
    Join Date
    Dec 2008
    Location
    Brooklyn, NY
    Beans
    4
    Distro
    Ubuntu 8.10 Intrepid Ibex

    Smile Dell e6400 wandering touchpad - workaround

    Experimental: Fixing The Horrible Dell E6400 Wandering Touchpad On Ubuntu 8.10 (Intrepid Ibex)

    Tired of your pointer flying randomly across the screen and clicking random crap? Wondering about the spew of "... psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 1" in your dmesg? Tired of scrolling being broken?

    Here's how I have mine working - mostly. There still seem to be intermittent problems, but not as often as before.

    This fix should be regarded as experimental; I wrote this up with the hope that others might find it useful and improve it, but of course there is NO WARRANTY. YMMV.

    The wandering problem turns out to be poor support for this weird model of ALPS touchpad in the psmouse.c driver code. There is a patch, which probably still needs work, and it hasn't been released in any version of Linux yet as of 2008/12/30 ... not even linux 2.6.28. Below is one way to get the patch installed. There's probably a better way.

    Things I had already tried:

    * Upgrading to linux-image-2.6.27-11.22-generic kernel from intrepid-proposed, as per https://bugs.edge.launchpad.net/ubun...ux/+bug/270643

    This fixes the broken scrolling, but only until the next round of glitchy pointer freakout, which will cause the touchpad to revert to acting like a generic mouse.

    * Adding i8042.nomux=1 to kernel parameters. This didn't help me at all.
    Found in threads for other Dell laptops, eg. http://ubuntuforums.org/showthread.p...+alps+touchpad


    What worked for me

    Caveats:

    * It takes a long time to build the kernel.[1]

    * Not all problems are solved; eg. the touchpad has on a few occasions completely stopped working and I don't know a fix at this time except to reboot.

    * The kernel patch is not widely tested and probably needs more work; I've only been running it myself for less than a week so far. So there's some risk here. YMMV.

    * I'm not using the binary nvidia driver. (I had it working with kernel 2.6.27-9 but that broke when I upgraded to 2.6.27-11; I haven't bothered to investigate because I don't really need 3D.)

    * I had to disable Xen virtualization support, because the kernel build barfed on it, as noted below. Again, not a problem for me.

    Step-by-step instructions:

    * Be sure hal starts before gdm; otherwise your pointer might sometimes fail to work at all. You can do this like so:
    Code:
     $ sudo update-rc.d -f gdm remove
     $ sudo update-rc.d gdm defaults 25
    * Fetch the kernel sources, according to docs at https://help.ubuntu.com/community/Kernel/Compile

    * Patch the kernel with the patch here: http://www.gossamer-threads.com/list...187;list=linux

    (... discussion of that patch in this linux kernel mailing list thread: http://www.gossamer-threads.com/list.../kernel/991762 )

    * Copy your old kernel config - mine was at /boot/config-2.6.27-11-generic. Just copy it to .config in your source tree.

    * Modify the .config to avoid a compile error. Disable Xen virtualization by changing this line:

    Code:
        CONFIG_XEN=y
    to this:
    Code:
        CONFIG_XEN=n
    You might want to turn off kernel debugging while you're at it; it makes the built kernel and especially the modules really, really huge. I forgot to do that.

    I was tempted to also turn off some of the zillions of unnecessary drivers to speed up compilation, but when I tried that, kpkg complained loudly[2], so I gave up on that idea.


    * Build the kernel as per https://help.ubuntu.com/community/Ke...-get%20source)

    You don't need to build the linux-ubuntu-modules package for Intrepid. And do NOT run "make-kpkg clean", it removes the debian/ directory and you'll have to start over.


    * Install the kernel, as per https://help.ubuntu.com/community/Ke...20new%20kernel

    This step will fail the first time you try it, while trying to deal with the Nvidia binary drivers. Don't worry. When you see an error like this:

    "run-parts: /etc/kernel/postinst.d/nvidia-common exited with return code 20"

    ... you just force reinstallation of the nvidia-common package:

    Code:
       sudo apt-get purge nvidia-common
       # The kernel binary package will automatically restart at this point, and should succeed now.
       sudo apt-get install nvidia-common
    * Check /boot/grub/menu.lst, edit as necessary to add your new kernel.

    * Reboot and see if everything works!

    Disabling the Touchstick

    If, like me, you hate hate HATE the touchstick and only use the touchpad, once you have the above working, you can disable it. In Gnome, you can go to System -> Preferences -> Session, click the Add button, and enter this info:

    Name: Disable TouchStick
    Command: xinput set-int-prop "DualPoint Stick" "Device Enabled" 32 0
    Comment: I hate it, that's why.

    (If you're not using Gnome, put that same command wherever you normally put commands to run when X starts.)

    This unfortunately does not seem to be permanent; if I leave the laptop on for a while and come back to it later, there's a good chance the touchstick will have mysteriously re-enabled itself. On two other occasions, I have had both the touchpad and the touchstick become completely frozen - the pointer won't move at all. I've tried reloading the psmouse module, and restarting hal, but neither of those helps; right now I don't know a solution other than reboot.


    [1] The recommended kernel compilation procedure on ubuntu is really really time-consuming, and seems to be broken currently wrt. the Xen stuff as noted above. I have never had so much trouble compiling a kernel on any system since I first started using exclusively linux 10 years ago. I am a complete Ubuntu noob, so presumably I'm doing something totally wrong. Next time I'll try downloading vanilla sources and see if I have better luck with the old-school vanilla methods.)

    [2] At that point I was experimenting with "the old-fashioned debian way" as per https://help.ubuntu.com/community/Ke...ned Debian Way
    Last edited by slinkp; January 6th, 2009 at 09:27 PM. Reason: add note about occasional touchpad freeze

  2. #2
    Join Date
    Jan 2009
    Beans
    3

    Re: Dell e6400 wandering touchpad - workaround

    hi.
    i really appreciate your posting, otherwise i would not have found this patch. although the patch doesn't fix every problem with the touchpad/trackpoint, it really solves the tedious button locking after concurrently using touchpad and trackpoint (which happens a lot if you use the trackpointer and rest your hand/thumb on the touchpad). the mouse pointer still gets desynchronized, but now its only bothersome and not anymore unusable.

    please inform us, if you find any other improvements on this matter.

  3. #3
    Join Date
    Dec 2008
    Location
    Brooklyn, NY
    Beans
    4
    Distro
    Ubuntu 8.10 Intrepid Ibex

    Re: Dell e6400 wandering touchpad - workaround

    Thanks! I intend to keep updating this post as long as I have problems, until it's fixed for good. I just added an update about a problem I still have: occasionally the pointer freezes completely. It's only happened maybe 2 times since my original post a week ago. Not as maddening as the wandering pointer problem, but still annoying.

    Who'd have thought a little touchpad could cause so much anguish.

  4. #4
    Join Date
    Jan 2009
    Beans
    3

    Re: Dell e6400 wandering touchpad - workaround

    hi, i noticed that it isn't necessary to build the whole kernel. you can just compile the psmouse module with the kernel-headers installed.
    just create a makefile in the right directory (kernel/drivers/input/mouse) of the kernel sourcecode and copy the builded psmouse.ko to your /lib/modules/$(shell uname -r)/drivers/inout/mouse directory.

    Code:
    #
    # Makefile for the mouse drivers.
    #
    
    # Each configuration option enables a list of files.
    
    obj-$(CONFIG_MOUSE_AMIGA)	+= amimouse.o
    obj-$(CONFIG_MOUSE_APPLETOUCH)	+= appletouch.o
    obj-$(CONFIG_MOUSE_BCM5974)	+= bcm5974.o
    obj-$(CONFIG_MOUSE_ATARI)	+= atarimouse.o
    obj-$(CONFIG_MOUSE_RISCPC)	+= rpcmouse.o
    obj-$(CONFIG_MOUSE_INPORT)	+= inport.o
    obj-$(CONFIG_MOUSE_LOGIBM)	+= logibm.o
    obj-$(CONFIG_MOUSE_PC110PAD)	+= pc110pad.o
    obj-$(CONFIG_MOUSE_PS2)		+= psmouse.o
    obj-$(CONFIG_MOUSE_SERIAL)	+= sermouse.o
    obj-$(CONFIG_MOUSE_HIL)		+= hil_ptr.o
    obj-$(CONFIG_MOUSE_VSXXXAA)	+= vsxxxaa.o
    obj-$(CONFIG_MOUSE_GPIO)	+= gpio_mouse.o
    
    psmouse-objs := psmouse-base.o synaptics.o
    
    psmouse-$(CONFIG_MOUSE_PS2_ALPS)	+= alps.o
    psmouse-$(CONFIG_MOUSE_PS2_LOGIPS2PP)	+= logips2pp.o
    psmouse-$(CONFIG_MOUSE_PS2_LIFEBOOK)	+= lifebook.o
    psmouse-$(CONFIG_MOUSE_PS2_TRACKPOINT)	+= trackpoint.o
    psmouse-$(CONFIG_MOUSE_PS2_TOUCHKIT)	+= touchkit_ps2.o
    
    all:
    	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
    
    clean:
    	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

  5. #5
    Join Date
    Mar 2009
    Location
    Germany
    Beans
    1

    Dell e6400 wandering touchpad - another simple workaround

    I was not satisfied with any of the solutions proposed on the web, but I found another workaround:

    Edit (as root) /etc/modprobe.d/options and add:

    Code:
    options psmouse proto=bare
    After the next reboot (or after reload module psmouse), the kernel driver won't test if the hardware is some sort of touchpad, but instead treat it as a generic mouse. In this mode, both the stick and the touchpad are working without strange effects.

    Caveats: You cannot set any touchpad options. You loose the scrolling feature.

    I found this solution when a analyzed why sometimes everything suddenly started working like it should. After a number of errors, the kernel driver decided to treat the touchpad/stick as a generic mouse.

    Good luck!

  6. #6
    Join Date
    Apr 2008
    Beans
    15

    Re: Dell e6400 wandering touchpad - workaround

    Hooray, that works. This was my first patch so it took me a while to find out the right steps from the description of kadawer.

    Here is my step by step

    Install Kernel Sources.
    I used git for this:
    https://wiki.ubuntu.com/KernelGitGuide

    in short
    Code:
      sudo apt-get install git-core
      git clone --reference linux-2.6/ git://kernel.ubuntu.com/ubuntu/ubuntu-jaunty.git
    Kind of ridiculous to have 700MB just to make a mouse driver but well.

    apply patch
    copy the .diff file above in the directory of the kernel sources (ubuntu-jaunty/drivers/input/mouse) and:

    Code:
    patch < alps.diff
    Make psmouse.ko

    There is already a Makefile in the directory
    I just added the two lines at the bottom
    Code:
    all:
    	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
    
    clean:
    	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
    and run

    Code:
    make
    then as specified by kadawer copy the psmouse.ko into /lib/modules/$(shell uname -r)/drivers/inout/mouse directory and reboot.

  7. #7
    Join Date
    Jun 2008
    Beans
    15

    Re: Dell e6400 wandering touchpad - workaround

    I tried the whole night. I couldn't pass the make command. nexxus07, can you show me step by step starting from get build-essential and such. Thank you

  8. #8
    Join Date
    Jan 2009
    Beans
    3

    Re: Dell e6400 wandering touchpad - workaround

    make sure that you have installed build-essential package and that you changed into the right directory (ubuntu-jaunty/drivers/input/mouse if you followed the steps).

    it is not necessary to reboot, just unload the module and load it again
    Code:
    sudo modprobe -r psmouse
    sudo modprobe psmouse
    or modify the Makefile furthermore by adding a new make target:
    Code:
    psmouse:
    	modprobe -r psmouse
    	cp psmouse.ko /lib/modules/$(shell uname -r)/kernel/drivers/input/mouse/
    	modprobe psmouse
    now you can type make as mentioned and then sudo make psmouse to automatically copy and load the new module.
    you could merge the two commands in the Makefile, but this is not usual.

  9. #9
    Join Date
    Sep 2007
    Location
    Alnilam
    Beans
    310
    Distro
    Ubuntu 14.04 Trusty Tahr

    Re: Dell e6400 wandering touchpad - workaround

    Is there any way to reload the touchpad driver without have to restart X or reboot?

  10. #10
    Join Date
    Jul 2009
    Beans
    4

    Re: Dell e6400 wandering touchpad - workaround

    Hi.

    I have Dell E6500. I've followed suggestions of Nexuss - git clone, modify Makefile build psmouse.ko, install in into modules, rmmod/modprobe and it didn't fix touchpad/trackpoint to work correctly.
    The thing is - I have a bit different issue here. If I use trackpoint/touchpad and touchpad buttons, mouse "locks" on certain window (e.g. Firefox). When I alt-tab to konsole and click it (e.g. with USB mouse), click goes to firefox. If I switch desktops and start clicking left/right mouse buttons like mad, it some times looses lock. But then it regains it again...

    Any similiar exprience? Any ideas?

    Thx.
    Strazhce
    Last edited by Strazhce; July 28th, 2009 at 11:22 AM.

Page 1 of 3 123 LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •