synaptic touchpad not recognized on dell latitude e6510

Bug #606238 reported by Karol Szkudlarek on 2010-07-16
846
This bug affects 156 people
Affects Status Importance Assigned to Milestone
Linux
Fix Released
Medium
openSUSE
New
Undecided
Dave Turvene
linux (Arch Linux)
Fix Released
Medium
linux (Ubuntu)
Low
Dave Turvene
Precise
Undecided
Dave Turvene
Quantal
Low
Dave Turvene

Bug Description

It wrongly recognized as PS/2 Generic Mouse. And then scrolling does not work, but tapping does.

ProblemType: Bug
AplayDevices:
 **** List of PLAYBACK Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
Architecture: i386
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
   Subdevices: 2/2
   Subdevice #0: subdevice #0
   Subdevice #1: subdevice #1
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: karol 2618 F.... pulseaudio
CRDA: Error: [Errno 2] No such file or directory
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xe9660000 irq 22'
   Mixer name : 'IDT 92HD81B1C5'
   Components : 'HDA:111d76d5,1028040b,00100104'
   Controls : 26
   Simple ctrls : 16
Date: Fri Jul 16 13:36:04 2010
DistroRelease: Ubuntu 9.10
HibernationDevice: RESUME=UUID=cdf10c13-029f-401b-afed-f651ca0e2cbe
InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release i386 (20091028.2)
MachineType: Dell Inc. Latitude E6510
NonfreeKernelModules: nvidia
Package: linux-image-2.6.31-22-generic-pae 2.6.31-22.60
PccardctlIdent:
 Socket 0:
   no product info available
PccardctlStatus:
 Socket 0:
   no card
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.31-22-generic-pae root=UUID=2f511d08-c4e9-44e6-a1d2-5be6172b18c6 ro quiet splash
ProcEnviron:
 PATH=(custom, user)
 LANG=pl_PL.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-22.60-generic-pae
RelatedPackageVersions:
 linux-backports-modules-2.6.31-22-generic-pae 2.6.31-22.24
 linux-firmware 1.26
SourcePackage: linux
Uname: Linux 2.6.31-22-generic-pae i686
dmi.bios.date: 05/28/2010
dmi.bios.vendor: Dell Inc.
dmi.bios.version: A03
dmi.board.name: 0N5KHN
dmi.board.vendor: Dell Inc.
dmi.board.version: A00
dmi.chassis.type: 9
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvrA03:bd05/28/2010:svnDellInc.:pnLatitudeE6510:pvr0001:rvnDellInc.:rn0N5KHN:rvrA00:cvnDellInc.:ct9:cvr:
dmi.product.name: Latitude E6510
dmi.product.version: 0001
dmi.sys.vendor: Dell Inc.

chazn85 (chaz-n) on 2010-07-17
tags: added: kernel-input
Jeremy Foshee (jeremyfoshee) wrote :

Hi Karol,

If you could also please test the latest upstream kernel available that would be great. It will allow additional upstream developers to examine the issue. Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Once you've tested the upstream kernel, please remove the 'needs-upstream-testing' tag. This can be done by clicking on the yellow pencil icon next to the tag located at the bottom of the bug description and deleting the 'needs-upstream-testing' text. Please let us know your results.

Thanks in advance.

    [This is an automated message. Apologies if it has reached you inappropriately; please just reply to this message indicating so.]

tags: added: needs-upstream-testing
tags: added: kj-triage
Changed in linux (Ubuntu):
status: New → Incomplete

Hi Jeremy!

I've tried those packages:

http://kernel.ubuntu.com/~kernel-ppa/mainline/daily/current/linux-image-2.6.35-999-generic_2.6.35-999.201007211008_i386.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/daily/current/linux-headers-2.6.35-999_2.6.35-999.201007211008_all.deb
http://kernel.ubuntu.com/~kernel-ppa/mainline/daily/current/linux-headers-2.6.35-999-generic_2.6.35-999.201007211008_i386.deb

and I've installed them succesfully through dpkg -i *.deb. Afrer installing nvidia drivers recompiled succesfully.

But after reboot kernel during booting in text mode several time screen blinks and after switching to graphics mode its probably set wrong graphics mode because all screen messed up and X session not apperared properly... :-( It's doesn't hang, I could switch to text mode and back (via Ctrl-Alt-F1 Ctrl-Alt-F7), but I can't login to the system.

So I couldn't check touchpad without X.

tags: removed: needs-upstream-testing
Øyvind Stegard (oyvinst) wrote :

This is probably dupe of bug #550625

The problem is still not fixed in latest 2.6.35-rc6 kernel.

Steven (svanpoeck) wrote :

Hi Øyvind,

Actually I don't think it is. The touchpad on the Dell Latitude 6510 is not recognized as such but as a PS/2 Generic Mouse and I do not have a TouchPad section at all (see screenshot attached)

BR,
Steven

Steven (svanpoeck) wrote :

I've attached as much information as I could think of. please tell me if you need more/other information and how to retrieve it.

Thanks,
Steven

Steven (svanpoeck) wrote :
Steven (svanpoeck) wrote :
Steven (svanpoeck) wrote :
Steven (svanpoeck) wrote :
Steven (svanpoeck) wrote :
Steven (svanpoeck) wrote :
Steven (svanpoeck) wrote :
dbuell (dbuell-poundsquared) wrote :

is i386 a relevant tag? I'm having the same issue on a 64-bit Ubuntu install.

Steven (svanpoeck) wrote :

Mine is 64bit too

I have the same problem on a Hercules EC-800 (very cheap 8" notebook). Kernel 2.6.32-24-generic #39-Ubuntu (installed from xubuntu "lucid" 10.04). Ressources on this "machine" are low (20 GB hard drive, etc.), so testing is hard.

Changed in linux (Ubuntu):
status: Incomplete → New
Doug (doug-m) wrote :

Same problem here, touchpad is detected as PS/2 Generic Mouse. Biggest symptom is that it moves the cursor all the time when typing, makes it almost unusable to type on. 10.04 64bit

uname -s -r -v -i -o
Linux 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 05:14:15 UTC 2010 unknown GNU/Linux

cat /proc/bus/input/devices
[...]
I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input15
U: Uniq=
H: Handlers=mouse2 event15
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

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)]
⎜ ↳ Macintosh mouse button emulation 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)]
    ↳ Power Button id=8 [slave keyboard (3)]
    ↳ Sleep Button id=9 [slave keyboard (3)]
    ↳ Laptop_Integrated_Webcam_3M id=10 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
    ↳ Dell WMI hotkeys id=15 [slave keyboard (3)]

Doug, I noticed similar problems on my Latitude e6510 with irritated cursor moves during pressing keyboard..., ubuntu 9.10 32bit

Remco vd Zon (theunknowncylon) wrote :

For a fix one may be interested in:
https://confluence.nau.edu/display/~<email address hidden>/Recognize+ALPS+Touchpad+on+Dell+E6510+in+Ubuntu

Steven (svanpoeck) wrote :

Hi Remco,

The suggested fix did have the touchpad recognized as such in "System>Preferences>Pointing devices" but when I select "Touchpad Off" from the select list it is not deactivated and it still interferes with typing text...

~$ uname -s -r -v -i -o -m
Linux 2.6.32-24-generic #41-Ubuntu SMP Thu Aug 19 01:38:40 UTC 2010 x86_64 unknown GNU/Linux

~$ cat /proc/bus/input/devices
[...]
I: Bus=0011 Vendor=0002 Product=0008 Version=0000
N: Name="DualPoint Stick"
P: Phys=isa0060/serio1/input1
S: Sysfs=/devices/platform/i8042/serio1/input/input14
U: Uniq=
H: Handlers=mouse2 event14
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0002 Product=0008 Version=7326
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input15
U: Uniq=
H: Handlers=mouse3 event15
B: EV=f
B: KEY=420 70000 0 0 0 0
B: REL=3
B: ABS=1000003

~$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ MLK Trust Mouse 16536 id=10 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=12 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=14 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=13 [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)]
    ↳ Power Button id=8 [slave keyboard (3)]
    ↳ Sleep Button id=9 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
    ↳ Dell WMI hotkeys id=15 [slave keyboard (3)]

The same like Steven said... after the applied Remco psmouse patch touchpad is recognized:

cat /proc/bus/input/devices

I: Bus=0011 Vendor=0002 Product=0008 Version=0000
N: Name="DualPoint Stick"
P: Phys=isa0060/serio1/input1
S: Sysfs=/devices/platform/i8042/serio1/input/input14
U: Uniq=
H: Handlers=mouse1 event14
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0002 Product=0008 Version=7326
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input15
U: Uniq=
H: Handlers=mouse2 event15
B: EV=f
B: KEY=420 0 70000 0 0 0 0 0 0 0 0
B: REL=3
B: ABS=1000003

and

$ uname -a
Linux karolszk-lap 2.6.31-22-generic-pae #63-Ubuntu SMP Wed Aug 18 23:57:18 UTC 2010 i686 GNU/Linux

Julien Cornuwel (cornuwel) wrote :

I've got the same problem with lucid amd64, on a Latitude E6510.
Both default kernel (2.6.32-24.41) and 2.6.36-999.201008301119 have the problem.

The link to the fix is currently down, I'll try again later.

Guru R (rguru76) wrote :

Same problem with me too.

I have Latitude E6510 & E6500 both have identical issues,

uname -a
Linux rgururaj 2.6.32-24-generic #42-Ubuntu SMP Fri Aug 20 14:24:04 UTC 2010 i686 GNU/Linux

cat /proc/bus/input/devices
I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input13
U: Uniq=
H: Handlers=mouse1 event13
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

crazydave (crazy-dave) wrote :

Touchpad is working on my e6510 except for the scrolling fields.
The message "name of the touchpad device not..." shows up in the KDE System Settings.
Kubuntu 10.4.

2.6.32-24-generic #39-Ubuntu

hickwillie (hickwillie) wrote :

Same problem for me (E6510):

uname -a
Linux chrisj-laptop-linny 2.6.32-24-generic #42-Ubuntu SMP Fri Aug 20 14:21:58 UTC 2010 x86_64 GNU/Linux

cat /proc/bus/input/devices
I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input14
U: Uniq=
H: Handlers=mouse1 event14
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

Steven (svanpoeck) wrote :

Hi,

I actually want to *deactivate* the touchpad. I prefer working with the pointer in the middle of the keyboard. But even though Remco's workaround gets the touchpad recognized I cannot deactivate it and it still interferes with typing.

Steven

uname -s -r -v -i -o -m
Linux 2.6.32-24-generic #42-Ubuntu SMP Fri Aug 20 14:21:58 UTC 2010 x86_64 unknown GNU/Linux

Jordi Adame (jordi-adame) wrote :

if you want to enable/disable the touchpad

Steven (svanpoeck) wrote :

Thanks Jordi.

But that also disables the pointer in the middle of the keyboard... Is there a way to identify the touchpad and the keyboard pointer as 2 different devices and then only disable the touchpad ?

Steven

uname -s -r -v -i -o -m
Linux 2.6.32-24-generic #43-Ubuntu SMP Thu Sep 16 14:58:24 UTC 2010 x86_64 unknown GNU/Linux

Jordi Adame (jordi-adame) wrote :

Steven, no, both are physically in the same cable

Steven (svanpoeck) wrote :

Well Jordi it actually helps me a lot already: when I have an external mouse plugged in, I simply run your script (using bash though ;) ) and voilà! no more typing freakness :D

It remains of course when I don't have an external mouse.

So: thanks :)
Steven

Jordi Adame (jordi-adame) wrote :

Steven, I have Win+F7 binded to that script, that way i can easily enable/disable the touchpad

Simon Dierl (simon.dierl) wrote :

#550625 addresses a slightly different type of hardware; the touchpad in question is identified as Product=0005 at /proc/bus/input/devices (ImPS/2 Generic Wheel Mouse). The touchpad in an E6510 reports Product=0001 (PS/2 Generic Mouse).
However, the root cause appears to be described at https://bugzilla.kernel.org/show_bug.cgi?id=14660 - apparently, newer ALPS touchpads use a new, undocumented and unsupported protocol. The touchpad falls back to a legacy emulation mode, resulting in faulty detections.
The kernel.org bug lists some efforts to reverse-engineer the protocol and has some patches based on DELL contributions that enable ImPS/2 emulation (scrolling works). This, however, still does not allow for synaptics support (turn off when typing, horizontal scroll, etc.). Additionally, some people report problems on suspend/resume.
The hardware detection used by the DELL patch in alps.c is:
{ { 0x73, 0x02, 0x64 }, 0x00, 0x00, ALPS_EC_PROTO }, /* Dell E2 series multitouch */
ALPS_EC_PROTO denotes a device memory access protocol used by the pads for initialization. It seems that this issue might affect all DELL E2 notebooks.

Guru R (rguru76) wrote :

Thanks Simon! at least we know someone's working on this bug. My primary issue is that the touchpad does not turn off during typing. Hope to see a solution/workaround soon.

Guru R (rguru76) wrote :

Thanks Jordi for the script. I will use your script as a workaround till a fix is found. Just tested it works great.

tags: removed: i386

Jordi, thanks for the script! After little modifications to xinput for 9.10 ubuntu the script works well. I don't know why xinput have such different syntax beetwen 9.10 and 10.04... I attached script for enable/disable touchpad for 9.10.

I can confirm that this problem also appear for the Dell E5510 laptops.

I agree with Simon Dierl that this is not the same issue as #550625 (I also get Product 0x1) even though some persons with this problem has posted at that thread.

aa-hcl (aa-hcl) wrote :

Many thanks for the sh script!!! It is really useful!!!

I have Dell E5510 with ubuntu 10.04 and I can confirm that I have exactly the same issues with my touchpad.

Regarding the bug: It is interesting that touchpad is actually recognised by old kernel versions, see
http://ubuntuforums.org/showthread.php?p=9871231

It would be really lovely is this touchpad problem is solved in new kernel versions. Meanwhile, I am using external mouse and the toggleps2.sh with the shortcut (I also changed zsh to bash int eh script).

Another question - do you know actually how to make the SD card reader working on E5510?

Many thanks!

Brad Figg (brad-figg) on 2010-12-03
tags: added: acpi-bad-address
GrzesiekC (grzesiekc) wrote :

Hi,

I have E6410 and Ubuntu 10.10 kernel 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 02:41:37 UTC 2010 x86_64 GNU/Linux

So far I have found this:
https://patchwork.kernel.org/patch/350841/
I assume it is the best option so far. I am totally new with patching. Could anyone tell me if this patch will work in Ubuntu ?
If yes, how to apply this patch (step by step guide is preferred ;-) ?

Cheers
Grzesiek

gcla (grclark) wrote :

I've attached a sloppy python program inspired by Jordi's handy script. It disables the touchpad as soon as it detects keyboard activity, then a fraction of a second after the end of the keyboard activity, it re-enables the touchpad. I have an E6510 running Ubuntu 10.10 on x64, and I run the script like this:

$ sudo ./keyboarddetector.py /dev/input/event4

If you're running on x86, you might need to tweak the line containing "calcsize". It could be cleaned up to figure out automatically which of the event* entries to use.

Graham

Philip Aston (philipa) wrote :

Here's a refined version of the script.

    - Auto detect keyboard and trackpoint devices.
    - Auto detect 32-bit/64-bit processors.
    - Don't disable trackpoint for modifier keys.

The last one is important to allow modifier keys to be used in conjunction with the mouse, e.g. "control select".

Philip Aston (philipa) wrote :

Further refinement:

  - Handle errors reading the input stream rather than spinning. This allows the script to survive suspend/resume.

Francisco Cribari (cribari) wrote :

I am also afected by this bug. Hardware is DELL Latitude E6510, Intel GPU, full HD panel. I am using the python script in #41. So far, so good.

aa-hcl (aa-hcl) wrote :

Hi,

I have Dell E6520 and this bug affects my system.

Would really like to have touchpad recognised properly, in particular I would like to disable touchpad and keep the stick!

Falcon1 (mike-valk) wrote :

Duplicate Bug 760142?

Changed in linux (Ubuntu):
status: New → Confirmed
Ian Ozsvald (ian-x88) wrote :

In reply to Philip Aston's comment #41 I have a slightly tweaked KeyboardDetector.py script which catches two OSError exceptions (numbers 4 and 24) which cause the script to die quickly on my E6420. The fixes are linked here:
https://github.com/ianozsvald/Dell_E6420_Touchpad_AutoDisabler
and related E6420 notes are here:
http://ianozsvald.com/2011/08/02/dell-e6420-with-ubuntu-10-10-maverick-meerkat-32-bit/

I have an E6420, Ubuntu 10.10, with NVIDIA NVS 4200M, SSD, 8GB RAM, built in camera, Broadcom 5800 based wifi.

Philip Aston (philipa) wrote :

Thanks Ian,

I'd also fixed the exception handling in my local copy, and in particualr the need to close FD's, but hadn't posted an updated version. Additionally, I added a hacky check so it doesn't get confused when I have my external logitech mouse plugged in.

Attached, FWIW.

Clark C. Evans (clarkevans) wrote :

This is a duplicate of #760142 but *not* a duplicate of #550625 -- the latter is a scrolling problem where the tracpad is recognized, this ticket seems to be a non-recognition of the trackpad.

Ed S (ed-spittles) wrote :

I agree, this is different from Bug 550625 - I've unmarked it as duplicate. I'm not certain about all the other bugs listed in comment 523 over there.

It might be useful if anyone with this bug (or any of those possible duplicates) could load the DKMS package by Seth Forshee as attached to comment 492 on Bug 550625 and report the E6 and E7 IDs and the results they get.

Koen (koen-hendrickx) wrote :

I have the same problem on my Dell 15R (N5110) running Kubuntu 11.10

Ed S (ed-spittles) on 2011-10-22
summary: - synaptic touchpad not recognized on dell latitude e6510
+ synaptic touchpad not recognized on dell latitude e6510 and others
Koen (koen-hendrickx) wrote :

I use the script of comment 46, but have to run it everytime i startup my computer as sudo.
Is there a way to run it automatically?

Malte Finsterwalder (finjunk) wrote :

Problem also applies to my DELL Latitude E5410

uname -s -r -v -i -o -m
Linux 2.6.32-35-generic #78-Ubuntu SMP Tue Oct 11 16:11:24 UTC 2011 x86_64 unknown GNU/Linux

/proc/bus/input/devices
I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input15
U: Uniq=
H: Handlers=mouse2 event15
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

Sukhikh Nick (mk-) wrote :

This bug affects me on Dell E6410. I saw only the PS/2 mouse instead of ALPS touchpad in Xorg.log. But Seth's patches from <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/550625">Bug 550625</a> helps, and now my touchpad is fully working (except strange cursor jitter). So these bugs at least related to each other.

Malte Finsterwalder (finjunk) wrote :

just tried the latest keyboarddetector.py
I had to tweak the _parseDevices function a little for my DELL Latitude E5410.
Now I get an error output for every key I type:
"[Errno 4] Interrupted system call"
It works fine, though.
Any Explanations or infos how to fix this?
I don't know my way around in Python or Linux really.

Thanks!

Sukhikh Nick (mk-) wrote :

And some technical info about Dell E6410.

Without Seth's patches:
/proc/bus/input/devices
I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

With patches:
I: Bus=0011 Vendor=0002 Product=0008 Version=0000
N: Name="DualPoint Stick"
P: Phys=isa0060/serio1/input1
S: Sysfs=/devices/platform/i8042/serio1/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0002 Product=0008 Version=7326
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input2
U: Uniq=
H: Handlers=mouse1 event2
B: PROP=8
B: EV=b
B: KEY=e420 70000 0 0 0 0
B: ABS=260800001000003

uname -s -r
Linux 2.6.37.6-0.12-desktop

Also from psmouse debug output:
[ 2384.992928] alps.c: E6 report: 00 00 64
[ 2385.011591] alps.c: E7 report: 73 02 64
[ 2385.123986] alps.c: trackstick E7 report: 42 02 14

Ed S (ed-spittles) wrote :

Great information from Sukhikh Nick - can anyone provide the same information who
   - has the same problem
   - tried the fix in bug 550625
   - did not get any recognition of their device with the new module

Koen (koen-hendrickx) wrote :

Hello,

On my Dell 15R (N5110) running Kubuntu 11.10
Hope this helps...

Without patch (although I did it earlier - I don't know how to remove completely...)
I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input8
U: Uniq=
H: Handlers=mouse1 event8
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

After reinstalling the patch:
I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input8
U: Uniq=
H: Handlers=mouse1 event8
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

uname -s -r
Linux 3.0.0-12-generic

quarara (classic-art-showcase) wrote :

I get the same outcome as Koen's.

On Dell 15R (N5110) the debug output for psmouse is:

E6 report: 00 00 64
E7 report: 73 03 50

same output as quadara & Koen:

I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input8
U: Uniq=
H: Handlers=mouse1 event8
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

Linux 3.0.0-12-generic patched with #492

@Remco vd Zon (or anyone who knows)
You have indicated that this affected openSUSE. Has a bug been filed for this on openSUSE's bug tracking system? Also, why is this indicated to affect openSUSE in general rather than some specific package in openSUSE?

nebula (i-nebula) wrote :

same problem on dell latitude 5420 and ubuntu 11.10
the touchpad indicator i installed works, but i can't disable the touchpad only while typing, like i would with the touchpad tab..

I have a Dell Inspiron 15r n5110 as well. I have modified the patch I found here

http://people.canonical.com/~sforshee/alps-touchpad/psmouse-alps-0.10

and now it recognizes my mouse as a touchpad.

When loading the original patched psmouse.ko, it reports for my trackpad:

alps.c: E6 report: 00 00 64
alps.c: E7 report: 73 03 50

After adding an entry in alps.c for 0x73, 0x03 , 0x50 and recompiling the module it works.

I have copied the entry for the dell vostro 1400, and changed the 0x02 to 0x03. I don't know yet if the other settings are OK for my touchpad, but at least it is detected as such...

I followed the instruction of Rik Theys and can confirm, that the Touchpad is now detected as

input: AlpsPS/2 ALPS GlidePoint

with

alps.c: Status: 10 00 0a

which I don't understand.

But there is no scrolling (neither two-fingers nor on the right of the pad). Probably the other parameters must be wrong. I will do some test.

quarara (classic-art-showcase) wrote :

That's great news.
Would you suggest me to try this? I have to admit I'm able to do only really easy operations.

Koen (koen-hendrickx) wrote :

Indeed great news!
Does anyone has a detailed step-by-step instruction list so i (and other not so technical people) can test it?

Seth Forshee (sforshee) wrote :

Can someone try the following when using Rik's modificatoins? Switch to a virtual terminal, run 'sudo lsinput' and identify the touchpad device, then run 'sudo input-events device_number' and swipe across the touchpad. You should see a bunch of data spill out on the screen, which will either include ABS_X and ABS_Y events or REL_X and REL_Y events. If you see the ABS events, the driver really is working (to some degree at least) with your touchpad. If you see the REL events you've only made it so that the driver recognizes your touchpad but doesn't really support it as a touchpad -- the touchpad is still behaving as a PS/2 mouse.

The relevant output of lsinput:

/dev/input/event8
   bustype : BUS_I8042
   vendor : 0x2
   product : 0x8
   version : 0
   name : "PS/2 Mouse"
   phys : "isa0060/serio1/input1"
   bits ev : EV_SYN EV_KEY EV_REL

/dev/input/event9
   bustype : BUS_I8042
   vendor : 0x2
   product : 0x8
   version : 29493
   name : "AlpsPS/2 ALPS GlidePoint"
   phys : "isa0060/serio1/input0"
   bits ev : EV_SYN EV_KEY EV_ABS

input-events 9 returns nothing!
input-events 8 returns, as seen in bits ev, only REL_X and REL_Y!

As far as I see, the touchpad is recognised twice. But only the PS/2 Mouse is workling.

Bad news! :-(

Nick Nguyen (ngbnguyen) wrote :

I can indeed confirm that, after quite a bit of tweaking and following Rik Theys' solution, I have been able to get the touchpad on my Dell Inspiron 15R N5110 to be recognized as a touchpad:

I: Bus=0011 Vendor=0002 Product=0008 Version=7326
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input16
U: Uniq=
H: Handlers=mouse2 event16
B: PROP=8
B: EV=b
B: KEY=e420 0 70000 0 0 0 0 0 0 0 0
B: ABS=2608000 1000003

I can now set the sensitivity of the touchpad as well as enable two-finger scrolling.

nebula (i-nebula) wrote :

ok, can you now tell us what you did step by step? we don't all have so many technical knowledge..
pleaaasE? :-)

I am on a Dell XT
After using Rik's method with dmesg, I added the following line to alps.c:

{ { 0x73, 0x00, 0x14 }, 0xcf, 0xcf, ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Dell Latitude XT */

as result:
- lsinput recognizes the alps touchpad and the dualpoint stick:

/dev/input/event10
   bustype : BUS_I8042
   vendor : 0x2
   product : 0x8
   version : 0
   name : "DualPoint Stick"
   phys : "isa0060/serio1/input1"
   bits ev : EV_SYN EV_KEY EV_REL

/dev/input/event11
   bustype : BUS_I8042
   vendor : 0x2
   product : 0x8
   version : 29442
   name : "AlpsPS/2 ALPS DualPoint TouchPad"
   phys : "isa0060/serio1/input0"
   bits ev : EV_SYN EV_KEY EV_ABS

- scrolling does not work on the touchpad
- pointing stick and related buttons do not work
- "sudo input-events 10" shows data only when using the touchpad (not the pointing stick):

01:42:48.036377: EV_REL REL_X 1
01:42:48.036384: EV_SYN code=0 value=0

- input-events 11 does not show any data

If I change the line and eliminate ALPS_PASS as in:

{ { 0x73, 0x00, 0x14 }, 0xcf, 0xcf, ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Dell Latitude XT */

- the devices are still recognized as before
- scrolling works on the touchpad
- the pointing stick behavez strange, with the cursor jumping and clicking randomly
- pointing stick buttons do not works
- "sudo input-events 10" shows data only when using the pointing stick (not the touchpad, although the touchpad works very well):

01:46:11.234481: EV_REL REL_X -380
01:46:11.234488: EV_REL REL_Y -255
01:46:11.234490: EV_KEY BTN_LEFT (0x110) pressed
01:46:11.234492: EV_KEY BTN_RIGHT (0x111) pressed
01:46:11.234497: EV_KEY BTN_MIDDLE (0x112) pressed
01:46:11.234501: EV_SYN code=0 value=0

- "sudo input-events 11" does not show any data

Koen (koen-hendrickx) wrote :

I found this topic. Can it be usefull?
https://confluence.nau.edu/display/~<email address hidden>/Recognize+ALPS+Touchpad+on+Dell+E6510+in+Ubuntu
I'm stuck at the patch... (new file. Is this normal?)

Can anyone please provide a step-by-step explanation so less-technical guys can try it also?
thanks!

Seth Forshee (sforshee) wrote :

Nick Nguyen: It would be helpful if you could post what you did to get your touchpad working so it could be evaluated to see whether or not it's suitable to integrate into Ubuntu. Could you attach a patch?

Seth Forshee (sforshee) wrote :

drem: Did you re-run lsinput after you made the changes that got the touchpad working well? The events have to be coming out of one of the input devices. The device numbers can change when you reload a driver, so you need to check the device numbers in lsinput again.

It sounds like the trackstick data isn't being processed correctly. If you can capture some of the raw packet data from the trackstick (e.g. add a printk of psmouse->packet[psmouse->pktcnt - 1] at the top of alps_process_byte) then I can look at the data and see if I can make any sense of it.

The input devices are as they should in my previous post (re-checked).
My programming skills in general (and kernel in particular) are VERY basic. I added this line:
 printk("\nalps.c: raw data: %x", psmouse->packet[psmouse->pktcnt - 1]);
where you told me; recompiled and looked at dmesg. I noticed "ff" starts a group of 6 so I separated them.
Results are in raw_alps_xt

On Thu, Nov 17, 2011 at 04:12:38PM -0000, drem wrote:
> The input devices are as they should in my previous post (re-checked).
> My programming skills in general (and kernel in particular) are VERY basic. I added this line:
> printk("\nalps.c: raw data: %x", psmouse->packet[psmouse->pktcnt - 1]);
> where you told me; recompiled and looked at dmesg. I noticed "ff" starts a group of 6 so I separated them.
> Results are in raw_alps_xt

That's perfect, thanks.

I think the trackstick data starts two packets after what you
identified, i.e. the packets ending with 0x7f. The touchpad data looks
vary much like what I called a version 2 device in my recent updates to
the ALPS driver, and since you say it works fine I think it's safe to
assume that it's the same format. The trackstick data doesn't seem to
match the expected format for these devices though, and I can see why
the stray clicks are being generated. The question is whether there's
some missing initialization to get it into the expected format or if the
trackstick format will have to be reverse engineered. Either one is a
bit of a trial-and-error process, and it will be difficult for me to
help you much without having hardware to work with myself. I think
reverse-engineering the packet format is probably easier (watch how the
raw data changes as you move the trackstick in different directions and
try to determine which parts of the data correspond to which pieces of
information).

There is one technique you might be able to try to see if some kind of
different initialization is needed. If you have a copy of windows you
can install it in a virtual machine using a modified version of qemu or
virtualbox, install the Dell driver for your hardware, and sniff the
PS/2 protocol data being passed between the touchpad and the Windows
driver. I'll work on getting some instructions for doing this written up
and post a link to it when I'm finished in case you're interested in
trying it.

I do think you should leave out the ALPS_PS2_INTEREAVED. I don't think
it's needed, and there's a slight chance it could cause errors in some
cases.

Download full text (5.7 KiB)

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  <email address hidden>
    retry timeout exceeded

------ This is a copy of the message, including all the headers. ------

Return-path: <email address hidden>
Received: from spamgourmet by gourmet7.spamgourmet.com with local (Exim 4.69)
 (envelope-from <>)
 id 1RPdzt-0005uf-QY
 for <email address hidden>; Sun, 13 Nov 2011 17:37:37 +0000
Received: from indium.canonical.com ([91.189.90.7])
 by gourmet7.spamgourmet.com with esmtp (Exim 4.69)
 (envelope-from <email address hidden>)
 id 1RPdzt-0005tl-3B
 for <email address hidden>; Sun, 13 Nov 2011 17:37:37 +0000
Received: from loganberry.canonical.com ([91.189.90.37])
 by indium.canonical.com with esmtp (Exim 4.71 #1 (Debian))
 id 1RPdzr-0006Is-ST
 for <email address hidden>; Sun, 13 Nov 2011 17:37:35 +0000
Received: from loganberry.canonical.com (localhost [127.0.0.1])
 by loganberry.canonical.com (Postfix) with ESMTP id F156F2E81A8
 for <email address hidden>; Sun, 13 Nov 2011 17:20:38 +0000 (UTC)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Date: Sun, 13 Nov 2011 17:12:58 -0000
From: "Koen - <email address hidden>" <>
To: <email address hidden>
Reply-To: <email address hidden>
Sender: <email address hidden>
X-Launchpad-Bug: distribution=ubuntu; sourcepackage=linux; component=main;
 status=Confirmed; importance=Undecided; assignee=None;
X-Launchpad-Bug: distribution=opensuse; sourcepackage=None; component=None;
 status=New; importance=Undecided; assignee=None;
X-Launchpad-Bug-Tags: acpi-bad-address apport-bug kernel-input kj-triage
X-Launchpad-Bug-Private: no
X-Launchpad-Bug-Security-Vulnerability: no
X-Launchpad-Bug-Commenters: aa476 cce-clarkevans christian-prim ciolekg
 classic-art-showcase cornuwel crazy-dave cribari
 dbuell-poundsquared degeneracypressure doug-m ed-spittles
 finjunk grclark hickwillie i-nebula ian-x88 jeremyfoshee
 jordi-adame karol-mikronika koen-hendrickx michael-staats
 mike-valk mk- oyvinst philipa rguru76 rik-theys+launchpad
 simon.dierl svanpoeck thethundercloud theunknowncylon
X-Launchpad-Bug-Reporter: Karol Szkudlarek (karol-mikronika)
X-Launchpad-Bug-Modifier: Koen (koen-hendrickx)
References: <email address hidden>
Message-Id: <email address hidden>
Subject: [Bug 606238] Re: synaptic touchpad not recognized on dell latitude
 e6510 and others
X-Launchpad-Message-Rationale: Subscriber of Duplicate
Errors-To: <email address hidden>
Precedence: bulk
X-Generated-By: Launchpad (canonical.com); Revision="14277";
 Instance="launchpad-lazr.conf"
X-Launchpad-Hash: 4a61ba8ad1a4b3d414f7f76a9f639a6b34c4c566

Indeed great news!
Does anyone has a detailed step-by-step instruction list so i (and other no=
t so technical people) can test it?

-- =

You received this bug notification because you are subscribed to a
duplicate bug report (760142).
...

Read more...

drem: I posted my instructions on how to sniff the touchpad protocol data at the link below. If you decide to try it and need some help, feel free to email me.

  http://swapspace.forshee.me/2011/11/touchpad-protocol-reverse-engineering.html

quarara (classic-art-showcase) wrote :

to Rik Theys and Nick Nguyen:

I have an Inspiron N5110 too but I don't have enough knowledge to understand how to make your solution work for me. Would you mind help us, not so tech users? :)

Thanks in advance,
Luigi

Farid Joubbi (farid) wrote :

How is it going with this?
I have the same issues with my new DELL E6320.
I am able to test easier things if I get detailed instructions.

Farid Joubbi (farid) wrote :

Disregard my last comment. I just found out that the problems are gone in Linux Mint 12.
In Linux Mint 12 the touchpad works as designed, and I am able to change the speed and other settings of the cursor.

quarara (classic-art-showcase) wrote :

I have tried Linux Mint 12 today, but the touchpad is still not recognized as such with my Dell.

Once again, I just hope that the people that worked out recognize their touchpad will chime in again in this page :)

Koen (koen-hendrickx) wrote :

same problem here: tried Linux Mint [from dvd without installing], but in the settings is only the mouse visible. No touchpad...

Im sharing the hope of quarara...

I've followed the procedure described on http://swapspace.forshee.me/2011/11/touchpad-protocol-reverse-engineering.html

My touchpad is on a Dell Inspiron 15R.

I'll attach a log without the driver installed and a log with the driver installed.
I can enable two-finger scrolling in a config window for the touchpad, but this was disabled in the with-driver log. At some point I did scroll using the right side of the touchpad.

I hope this helps in determining the correct sequence to enable touchpad detection.

Regards,

Rik

quarara (classic-art-showcase) wrote :

Thank you, Rick! I hope your effort will be useful to make this kind of touchpad work.

EdgarPE (edgarpe) wrote :

FYI I cross comment here, that this solved the problem completely on my Dell E6420 + Ubuntu 11.04:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/760142/comments/78

Ian Ozsvald (ian-x88) wrote :

Echoing #88 - on that thread comment #81
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/760142/comments/81
links back to #78, I downloaded and installed the .deb via #81, rebooted and now I have the Touchpad settings in Ubuntu 11.10 (Linux Mint 12) on my Dell E6420.

eXP-user (madek) wrote :

Doesn't work on Dell E6420 - Ubuntu 32bit:
https://bugs.launchpad.net/linux/+bug/760142/comments/85

I have a Dell Inspiron N5110 (aka Q15R) running stock Oneiric.

I too have good results from installing the .deb file at http://people.canonical.com/~sforshee/alps-touchpad/psmouse-alps-0.10/psmouse-alps-dkms_0.10_all.deb originally linked from https://bugs.launchpad.net/ubuntu/+source/linux/+bug/760142/comments/78

After installing the .deb I now have Touchpad controls and they are being taken account of (I enabled two-finger scrolling through 'Mouse and Trackpad' and all is well). I don't know of an app or behaviour to verify full multitouch, but this will do for me.

sam (samer-mirror) wrote :

I have a brand new Dell Inspiron N5110 (5110-0604), Ubuntu 11.10 64bits, and suffer the same problem.
- To use http://people.canonical.com/~sforshee/alps-touchpad/psmouse-alps-0.10/psmouse-alps-dkms_0.10_all.deb directly doesn't work for me (linked in #62).
- I don't have the knowledge to do the modifications instructed in #62 so I didn't try it.
- I can disable/enable my touchpad using the mouse-to-serio.sh of http://swapspace.forshee.me/2011/11/touchpad-protocol-reverse-engineering.html given in #77

@sam I'm running the same setup except for 32bits instead of 64bits and the package worked for me. Wouldn't surprise me if that package was built for 32bits but not sure.

You might therefore get better results if you're able to build from source, where your 64bit environment can be taken into account when creating the .deb. I'm not sure where you'd get all the correct information how to do it, though.

Koen (koen-hendrickx) wrote :

I have also a N5110.

I tried the 64bit and 32bit, but none of them are able to use the patch. (I'm now on 32-bit)
I also don't have the knowledge to use the instructions of #62

The disable/enable mouse-to-serio.sh works fine.

sam (samer-mirror) wrote :

- @Cefn The package is valid for all architectures, so it should work with 64bits also...
- A more appropriate way of disabling/enabling the touchpad instead of the mouse-to-serio.sh can be found in #27 of http://ubuntuforums.org/showthread.php?p=11240769#post11240769 That is: use "xinput list" to identify which device is your trackpad (identified as a PS/2 Generic Mouse), (16 in my case) and use the command shown to disable/enable it: xinput --set-prop 14 'Device Enabled' 0 (or 1 to enable). To link it to a key, follow #20 in the same thread.

sam (samer-mirror) wrote :

It seems in Arch Linux they had the same issue and they have a patch that solves it for the Dell N5110:
https://bbs.archlinux.org/viewtopic.php?id=117109
I don't have enough knowledge to experiment with it... is anyone willing to try it out?

@sam @koen that's so weird, unless Dell's shipping some very different hardware under the same model number. I can only report (as a lame user) what things look like from my side on what I thought was identical hardware.

Here's an extract describing my N5110's touchpad before and after the installation of psmouse-alps-dkms from running...

cat /proc/bus/input/devices

...in the terminal, BEFORE ...

I: Bus=0011 Vendor=0002 Product=0005 Version=7326
N: Name="ImPS/2 ALPS GlidePoint"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input11
U: Uniq=
H: Handlers=mouse1 event11
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103

...and AFTER installation of psmouse-alps-dkms ...

I: Bus=0011 Vendor=0002 Product=0008 Version=7326
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input16
U: Uniq=
H: Handlers=mouse1 event16
B: PROP=8
B: EV=b
B: KEY=e420 0 70000 0 0 0 0 0 0 0 0
B: ABS=2608000 1000003

@sam What does your cat /proc/bus/input/devices show?

I find that after installing the psmouse-alps-dkms_0.10_all.deb package, (because it's automagically configured differently), the 'Touchpad' tab appears in the system utility 'Mouse and Touchpad', (which was previously missing), and allows me to activate, for example, two-finger scrolling.

@sam when you say 'doesn't work for me' are you looking for the Touchpad tab to appear in 'Mouse and Touchpad' and be able to activate various touchpad behaviours, or something else? Hope you won't feel patronised by this as it sounds like you are fairly technical but I found this article http://www.chiark.greenend.org.uk/~sgtatham/bugs.html very useful to get away from reporting bugs as 'doesn't work'.

sam (samer-mirror) wrote :

@Cefn As several users before, my trackpad is recognized as "Generic Mouse" instead of "ImPS/2 Alps Glidepoint"... Specifically:

I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input12
U: Uniq=
H: Handlers=mouse1 event12
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

After installing the psmouse-alps-dkms_0.10_all.deb package, the Touchpad tab of "Mouse and Touchpad" still doesn't appear, and I see no changes in /proc/bus/input/devices. By "doesn't work" I meant just that: it shows no changes of behaviour and no error messages.

PS: I knew the "Howto report bugs effectively", although it's true I might not apply it as good as I should ;) Thanks anyway.

sam (samer-mirror) wrote :

Following up my #95, I did a simple script that turns on-off the touchpad in Dell N5110:
http://ubuntuforums.org/showpost.php?p=11593780&postcount=33

I linked the execution of the script to the key in my keyboard that should enable/disable the touchpad. As a workaround, at least I can type properly when using an external mouse... (my main issue was not to be able to disable it while typing)

Koen (koen-hendrickx) wrote :

I tried the patch from archlinux (see comment #96)
* downloaded the tar.bz2 file.
* Extracted the file
* Moved to "/usr/src/psmouse-elantech-v6"
* executed: sudo dkms add -m psmouse-elantech -v v6

-> No touchpad available in settings.

When i try to execute a second time, it says that is it already in the dkms tree...

Mihai Stancu (mihai.stancu) wrote :

Hey,

I had the same problem on a "Dell Inspiron 17R N7110".

My touchpad was identified as a mouse "ImPS/2 ALPS GlidePoint" and tap-to-click was driving me nuts I didn't realize that it was treating my touchpad as a mouse until today (i've had the laptop for about a year) i just thought the driver "wasn't perfect".

I was looking for a better driver to be able to use advanced touchpad features like two-finger scrolling, pinch zooming and twist rotate.

The solution i'm attaching is the driver i found here: http://ubuntuforums.org/showthread.php?t=1887683 .

After installing this i got a "touchpad" tab in the "Mouse and Touchpad" settings panel and i could enable "two-finger scrolling".

Unfortunatly there was no pinch zooming option or twist rotate option but at least it fixed the annoying accidental tap-to-clicks and i've got two-finger scrolling enabled!

After uninstalling and reinstalling the psmouse-dkms-alps .deb package (via double-click) to share the info above, I noticed it hadn't actually reinstalled. It had 'silently' failed in the stupid Ubuntu Software management tool. The error which was being hidden was...

"Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed."

AFAIK you can only tell it's failed by the fact the GUI button says 'install' rather than 'reinstall' which I figured out after a couple of reboots.

Fortunately I have the fallback of the terminal, and I figured out that while I had upgraded to use the linux-generic-pae kernel to read the extra 4gig of memory I'd just added hadn't installed the linux-headers-generic-pae package. This means that no kernel modules can be built from source (as this package requires, since it builds a kernel module through DKMS).

After installing the linux-headers-generic-pae package for my linux-generic-pae kernel, (you should have the headers package which corresponds to the kernel you have installed), all was well and the proper kernel module was rebuilt and activated.

Hopefully anyone who's suffering with the same PEBKAC error will read this post.

Originally I saw the following failed build sequence for reference...

cefn@cefn-oneiric-dell:~/Downloads$ dpkg --install psmouse-alps-dkms_0.10_all.deb
dpkg: error: requested operation requires superuser privilege
cefn@cefn-oneiric-dell:~/Downloads$ sudo dpkg --install psmouse-alps-dkms_0.10_all.deb
[sudo] password for cefn:
(Reading database ... 157150 files and directories currently installed.)
Preparing to replace psmouse-alps-dkms 0.10 (using psmouse-alps-dkms_0.10_all.deb) ...

-------- Uninstall Beginning --------
Module: psmouse-alps
Version: 0.10
Kernel: 2.6.38-11-generic (x86_64)
-------------------------------------

Status: This module version was INACTIVE for this kernel.
depmod....(bad exit status: 1)

DKMS: uninstall Completed.

------------------------------
Deleting module version: 0.10
completely from the DKMS tree.
------------------------------
Done.
Unpacking replacement psmouse-alps-dkms ...
Setting up psmouse-alps-dkms (0.10) ...

Loading tarball for psmouse-alps-0.10
Loading /var/lib/dkms/psmouse-alps/0.10/2.6.38-11-generic/x86_64...

DKMS: ldtarball Completed.

Creating symlink /var/lib/dkms/psmouse-alps/0.10/source ->
                 /usr/src/psmouse-alps-0.10

DKMS: add Completed.
First Installation: checking all kernels...
Building only for 3.0.0-14-generic-pae
Building for architecture i686
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.

Ian (ifreecarve) wrote :

I think the fix for this may have arrived upstream https://bugzilla.kernel.org/show_bug.cgi?id=14660#c136

James M. Leddy (jm-leddy) wrote :

In reply to comment #103:

This is good news. Hopefully we can backport this for the next release.

James M. Leddy (jm-leddy) wrote :

This is already in the 3.2 and the precise kernels.

Changed in linux (Ubuntu):
milestone: none → ubuntu-12.04
status: Confirmed → Triaged
status: Triaged → In Progress
importance: Undecided → Low
tags: added: blocks-hwcert-enablement

Good to know its in 3.2, but pendig 12.04 being released, this worked for me on Dell E6520 and 11.10
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/760142/comments/78

This bug is also reported in OpenSUSE, they already have the fix.

https://bugzilla.novell.com/show_bug.cgi?id=716852

Changed in linux:
importance: Unknown → Medium
status: Unknown → Confirmed
Changed in linux (Arch Linux):
importance: Unknown → Medium
status: Unknown → Confirmed
Changed in linux:
status: Confirmed → Fix Released
Changed in linux (Arch Linux):
status: Confirmed → Fix Released

The fix doesn't work on Dell Inspiron N5110 15R.

I jealous looking to the people for whom the patch from https://bugs.launchpad.net/ubuntu/+source/linux/+bug/760142/comments/78 works.

For my laptop model Latitude E5420 touchpad support experimentally exists. But because tap click could not be disabled its a crap to work with the keyboard because the cursor moves on the slightest touch, really frustrating :(

Koen (koen-hendrickx) wrote :

I moved from Kubuntu 11.10 to 12.04, but no luck on my N5110...

Stefan Baramov (s-baramov) wrote :

I also have Dell Inspiron N5110 15R. I have tried the 3.3.7 kernel from the mainline builds ppa and it did not work either.

No love with 3.4.0 kernel either (on 64 bit Ubuntu 12.04).

Dave Turvene (dturvene) wrote :

Dell I15R N5100 running Ubuntu 12.04 LTS.

I've just marked 678103, 737051, 903236 as dups to this bug. Each has similar symptoms at root and seems to deal with the ALPS touchpad through the synaptics interface. Some solutions seem to revolve around the X setup but I couldn't make any work reliably.

I put a fairly lengthy comment of my research at

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/737051

I used the DKM driver at http://people.canonical.com/~sforshee/alps-touchpad/psmouse-alps-0.10/psmouse-alps-dkms_0.10_all.deb and added an E7 include of 0x73, 0x03, 0x50 to recognize my touchpad. Better but still getting spurious cursor movement and mouse refocus. I'm going to look at forshee touchpad reverse engineering doc for some clues.

I tried to install the DKM driver from http://people.canonical.com/~sforshee/alps-touchpad/psmouse-alps-0.10/psmouse-alps-dkms_0.10_all.deb on my Dell Inspiron 15R running Ubuntu 12.04. The installation fails due to an apparent compilation problem:

/var/lib/dkms/psmouse-alps/0.10/build/src/alps.c:135:33: error: expected ‘)’ before ‘int’

I've attached the output of the console. The make.log contents are listed below:
DKMS make.log for psmouse-alps-0.10 for kernel 3.2.0-25-generic (x86_64)
Sat Jun 23 17:20:07 CDT 2012
make: Entering directory `/usr/src/linux-headers-3.2.0-25-generic'
  LD /var/lib/dkms/psmouse-alps/0.10/build/src/built-in.o
  CC [M] /var/lib/dkms/psmouse-alps/0.10/build/src/psmouse-base.o
  CC [M] /var/lib/dkms/psmouse-alps/0.10/build/src/synaptics.o
  CC [M] /var/lib/dkms/psmouse-alps/0.10/build/src/alps.o
/var/lib/dkms/psmouse-alps/0.10/build/src/alps.c:135:33: error: expected ‘)’ before ‘int’
make[2]: *** [/var/lib/dkms/psmouse-alps/0.10/build/src/alps.o] Error 1
make[1]: *** [/var/lib/dkms/psmouse-alps/0.10/build/src] Error 2
make: *** [_module_/var/lib/dkms/psmouse-alps/0.10/build] Error 2
make: Leaving directory `/usr/src/linux-headers-3.2.0-25-generic'

Any guidance is greatly appreciated!

cement_head (andorjkiss) wrote :

Same issue on a Dell e6420:

Selecting previously unselected package psmouse-alps-dkms.
(Reading database ... 263709 files and directories currently installed.)
Unpacking psmouse-alps-dkms (from .../psmouse-alps-dkms_0.10_all.deb) ...
Setting up psmouse-alps-dkms (0.10) ...

Loading tarball for psmouse-alps-0.10
Loading /var/lib/dkms/psmouse-alps/0.10/2.6.38-11-generic/x86_64...

DKMS: ldtarball completed.

Creating symlink /var/lib/dkms/psmouse-alps/0.10/source ->
                 /usr/src/psmouse-alps-0.10

DKMS: add completed.
First Installation: checking all kernels...
Building only for 3.2.0-26-generic-pae
Building for architecture i686
Building initial module for 3.2.0-26-generic-pae
ERROR (dkms apport): unable to determine source package for psmouse-alps-dkms
Error! Bad return status for module build on kernel: 3.2.0-26-generic-pae (i686)
Consult /var/lib/dkms/psmouse-alps/0.10/build/make.log for more information.

Log:

DKMS make.log for psmouse-alps-0.10 for kernel 3.2.0-26-generic-pae (i686)
Wed Jun 27 10:05:13 EDT 2012
make: Entering directory `/usr/src/linux-headers-3.2.0-26-generic-pae'
  LD /var/lib/dkms/psmouse-alps/0.10/build/src/built-in.o
  CC [M] /var/lib/dkms/psmouse-alps/0.10/build/src/psmouse-base.o
  CC [M] /var/lib/dkms/psmouse-alps/0.10/build/src/synaptics.o
  CC [M] /var/lib/dkms/psmouse-alps/0.10/build/src/alps.o
/var/lib/dkms/psmouse-alps/0.10/build/src/alps.c:135:33: error: expected ‘)’ before ‘int’
make[2]: *** [/var/lib/dkms/psmouse-alps/0.10/build/src/alps.o] Error 1
make[1]: *** [/var/lib/dkms/psmouse-alps/0.10/build/src] Error 2
make: *** [_module_/var/lib/dkms/psmouse-alps/0.10/build] Error 2
make: Leaving directory `/usr/src/linux-headers-3.2.0-26-generic-pae'

Seth Forshee (sforshee) wrote :

The dkms packages were only for testing, I haven't (and will not) forward port them. In fact I just went and removed them from the server so people will stop trying to use them.

The changes are already present in 12.04, so there's absolutely no reason to use the dkms driver with that release. If the touchpad isn't being recognized correctly then the dkms driver isn't going to help.

cement_head (andorjkiss) wrote :

ok...so this is why my touchpad & touchstick works in 12.04

gues I should have read the posts

thanks & sorry

N.S.T. (secrom22) wrote :

Touchpad on Fujitsu Siemens Amilo Pa 2510, Kubuntu 12.04 64bit, same issue
xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Logitech Wheel Mouse 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)]
    ↳ Power Button id=8 [slave keyboard (3)]
    ↳ Sleep Button id=9 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]

Clark C. Evans (clarkevans) wrote :

On the Dell E6510, I'd like to confirm that this bug was fixed
in 12.04 without any additional patches.

xinput -list for me now returns...
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=13 [slave pointer (2)]

I realize that the same symtoms might emerge with different
revisions of the touchpad hardware. Perhaps a new ticket
should be opened for those?

I'm experienced this problem with up to date 12.04 in DELL Inspiron 17R SE. The touchpad is recognized as a generic mouse:

$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=12 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse 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)]
    ↳ Sleep Button id=10 [slave keyboard (3)]
    ↳ Laptop_Integrated_Webcam_HD id=11 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
    ↳ Dell WMI hotkeys id=15 [slave keyboard (3)]

While extreme sensitivity of the trackpad is not a huge deal while clicking around on websites or other non-typing-related activities, I am sure that many others are finding it as frustrating as I am to try and type more than three words without the cursor relocating itself because of an errant click. When I am typing something of more than a few words (such as this comment, for example), I usually disable the trackpad--it is very easy to do from the command line.

First, do a "xinput" command to make sure that the pointer is showing up as a "PS/2 Generic Mouse". (You can see this output in comment #120.) Assuming that is the name your trackpad shows up with, the command to disable it is:

xinput set-int-prop 'PS/2 Generic Mouse' 'Device Enabled' 8 0

and to reenable, you just issue the following:

xinput set-int-prop 'PS/2 Generic Mouse' 'Device Enabled' 8 1

I have these commands in scripts called disabletrackpad.sh and enabletrackpad.sh. Until this gets fixed (and when will that be?) I can use the scripts to disable and re-enable the trackpad so that I can type for long periods without going batsh*t crazy. I hope that helps others with this issue.

Postscript: I see that Sam already put this info into comment #95...Perhaps this repeat will help someone find it. Perhaps having another entry in this bug will spur someone to fix it. ;-)

And if I get around to writing a single script to toggle the enable flag, send a message to libnotify, and map it to a shortcut key, I will post all that here as well.

Ed S (ed-spittles) wrote :

Hi Richard
  for a couple of possible automated workarounds, see
- bug 606238 comment 39 and 41 and 45 and 46 (this bug)
- also bug 727259 comment 4 and 5

sam (samer-mirror) wrote :

I tried to use the "keyboarddetector.py" of #46, as advised by @ed-spittles. Result:
* It succeeds in disabling the trackpad while I type
* For certain reason it keeps holding the click of the mouse, after I finished typing. I tried to tweak the script but unsuccessfully.

Mine is a Ubuntu 11.10 x64, Dell Inspiron N5110. Trackpad detected as "PS/2 Generic Mouse". I can disable it as I mentioned before, but sadly I can't use the Python script. Any others with similar issues?

I found this discussion interesting:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679750

but it doesn't offer a solution, though.

Kalle Elmér (kallee) wrote :

I have a DELL Inspiron 17R SE on which the touchpad is recognised as a PS/2 Mouse. This particular model is quite new so it does make some sense that it doesn't work as well as the older Inspiron laptops. Can anything be done to fix this? Is there anything I can do?

Dave Turvene (dturvene) wrote :

@sforshee

System: Dell Inspiron 15R-5294BK running Ubuntu 12.04 LTS

I was messing around in Virtualbox (4.1.18) for something else and had a chance to follow your touchpad reverse engineering notes. The API has been updated a little. However, I captured the attached exchange three times. I blew away the psmouse-alps.0.10 source from your home, and it appears you removed it, so I don't have a vehicle to test with. Attached is the vbox dump using bash> export VBOX_LOG="+dev_kbd.e.l.f". Since only one attachment per comment, I have pasted the entire local log here.

So what's the next step?

S ff
R fa
R aa
R 00
S ff
R fa
R aa
R 00
S f2
R fa
R 00
S e8
R fa
S ff
R fa
R aa
R 00
S f2
R fa
R 00
S e8
R fa
S ff
R fa
R aa
R 00
S f2
R fa
R 00
S e8
R fa

Dave Turvene (dturvene) wrote :

@sforshee

Oops, forgot to add the vbox log attachment.

Dave Turvene (dturvene) wrote :

See my post in comment 126...

I thought I was getting closer but it seems like a dead end. The ALPS touchpad on my Dell I15R N5110 has an E7 signature of 73 03 50. When I do a vbox capture it spits out pure PS/2 mouse commands and responses, nothing specific to the ALPS driver. I'm getting the exact behavior as this thread:

https://patchwork.kernel.org/patch/1162831/

I'm running Windows Vista with the Alps 7.2.101.224 driver, which appears to be stable when I'm not doing a serio_raw capture. It is listed as a "Dell Touchpad" in the Device Manager

One thing I need to research more is from this:

dturvene@growler:539$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Mouse id=12 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=15 [slave pointer (2)]
⎜ ↳ PS/2 Mouse id=13 [slave pointer (2)]

The ALPS driver is being used (I can see it's output in system logs) but all control is on the PS/2 Mouse id. For example: xinput "set-prop 13 132 0" disables the touchpad but "xinput set-prop 15 132 0" does nothing.

Is the ALPS driver defaulting to a pure PS/2 mode and some secret command sequence gives it enhanced super powers? I messed around with the Vista control panel in serio="psmouse" mode and didn't see anything significant. The driver works fine, even with typing fast, which under Ubuntu causes the pointer to jump to the cursor location. In the Vista driver, there is very limited control of the mouse though (e.g. cannot disable tap-to-click) so maybe it's a very simple piece of hardware. Not much where the driver is install at c:\program files\delltpad.

sam (samer-mirror) wrote :

I think this may be useful, until it's fixed:
https://github.com/BlueDragonX/dispad

I still didn't try it out, but seems appropriate for disabling the trackpad while typing. If anyone gives it a try please post comments.

ionospheric (berthold1) wrote :

Still not solved on my Dell N5110. Touchpad is recognized as PS/2 generic mouse (gpointing-device-settings). Cannot side-scroll.

Hello again,

after installing fresh 12.04 on my E6510 touchpad is recognized and works , the /proc/bus/input/devices shows

I: Bus=0011 Vendor=0002 Product=0008 Version=7326
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input13
U: Uniq=
H: Handlers=mouse2 event13
B: PROP=8
B: EV=b
B: KEY=e420 0 70000 0 0 0 0 0 0 0 0
B: ABS=2608000 1000003

and
karol@karolszk-lap:~$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID:4013 id=11 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=13 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad 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)]
    ↳ Power Button id=8 [slave keyboard (3)]
    ↳ Sleep Button id=9 [slave keyboard (3)]
    ↳ Laptop_Integrated_Webcam_3M id=10 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
    ↳ Dell WMI hotkeys id=15 [slave keyboard (3)]

but unfortunatelly mouse cursor incidentally jumps during keyboard pressing... which is still no good....

Dave Turvene (dturvene) wrote :

See #128

System: Dell I15R N5110, Ubuntu 12.04

I just can't give up on this freakin' bug. Running Linux it's unstable. I tried to reverse engineer using sforshee method (vbox running Vista) and all that is displayed is pure PS/2, no alps_command_mode stuff.

So I hacked a small program based on the alps.c driver using serio_raw, then tested on my laptop. Here's what I see so far:

* E6, E7 report definitely returns 0x73 0x03 0x50 (an unknown device)
* enter command mode/exit command mode work BUT the "enter" return is NOT 0x88 0x07 which is being checked in the alps driver. It returns 0x73 0x01 0x0d. This would cause the device to never enter it's proprietary mode - which is what I'm seeing.
* Using the V3 command indicator of PSMOUSE_CMD_RESET_WRAP, register reads return correctly: reg addr is in param[0] and param[1], value is in param[2]. reg8=2, reg6=1, others return 0. Using the V4 indicator of PSMOUSE_CMD_DISABLE results in bad register reads. I haven't coded a register write function yet. This step confirms that I'm in the proprietary command mode for the Alps device.

My guess is the Alps device is either a new V3 instance or a totally new instance (V5?) I think the Dell Alps driver doesn't understand it either so it drops into pure PS/2, and probably has more elegant handling of the touchpad input when typing. I messed around with the syndaemon -i and -t arguments, which seemed change the behavior but not to my satisfaction.

I need to work on other stuff for a little bit but will get back to this. I'll ping Dell on their newsgroups to see if I get any response.

Ben Gamari (bgamari) wrote :

I also recently started working on this bug. I recently opened https://bugzilla.kernel.org/show_bug.cgi?id=45201 but sadly have made very little progress as I can't even get a virtualized Windows 7 installation to put the device into absolute mode.

Dave Turvene (dturvene) wrote :

@bgamari

I started tracking your progress for "New Alps protocol in the wild?" the linux-input list. The signature and command-mode id you report are the same as what I'm seeing on my Dell I15R N5110. Since your discussion seems to be more fruitful there, I'm going to respond there.

Dave Turvene (dturvene) wrote :

Discussion on the linux-input list. It looks like the ALPS protocol has been broken for a Dell E6230. I'm still having problems on my Dell Inspiron 15R N5110.

--- snip ---
On 08/16/2012 01:04 AM, Ben Gamari wrote:
> Ben Gamari <email address hidden> writes:
>
> snip
>> Hopefully I'll find some more time in the next few days to figure out
>> the last few bits (primarily how multitouch events work). I wouldn't be
>> sad if someone finished the task for me, however.
>>
> Success! As it turns out, the process was actually not so bad. While I
> wasted much of the night trying to reverse the protocol, I realized that
> what I had come up with was nearly identical to the version 3
> documentation. Trying the version 3 protocol with the device, I found
> that it was nearly immediately functional. It seems that while the
> initialization procedure has changed, the position report format is
> identical to previous generations.
>
> My tree[1] currently has a hacked brute-force initialization
> implementation, although it would probably be nice to figure out what
> this sequence actually means. Otherwise, it seems support for this device
> is a solved problem.
>
> Feel free to give my tree a try. I'd be interested to know whether it
> works for you.
>
> Cheers,
>
> - Ben
>
> [1] https://github.com/bgamari/linux/tree/alps
Ben -

I tried your fix on a Dell Inspiron 15R N5110 (I15R). It did not work. Things I noticed:

1) Consistent with prior observations, the touchpad E7 signature for it is: 0x73 0x03 0x50, different than yours on the E6230.

2) Your alps_hw_init_v5 sequence does not work for my I15R. I noticed that the sequence enters/exits command mode a couple times. Why not enter once, do the init and then exit?

3) When in command mode, the I15R accurately sets and retrieves registers (e.g. 0x0008 returns 0x00 0x08 0x02). When not in command mode, all register reads return -1. Oddly, the check in alps_enter_command_mode is 0x73 0x01 rather than 0x88 0x07.

So I think either I'm doing something wrong or I'm dealing with YAAP (Yet Another ALPS Protocol).

My question: how did you get the protocol trace? I think you said previously that the drive does some direct register I/O. I couldn't see anything beyond PS/2 commands running under Virtual Box.

Dave

Sorbing (svbutsenko) wrote :

I have the same problem with the scrolls. Dell Latitude e5530.
xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=14 [slave pointer (2)]
...

Sorbing (svbutsenko) wrote :

2 years have passed, and ubuntu has not fixed a.

pfoo (pfoo) wrote :

@Sorbing it's not a bug, but a missing kernel driver. Go yell at alps and dell for this, many of us already tried with no success.

See https://bugzilla.kernel.org/show_bug.cgi?id=45201

pfoo (pfoo) wrote :

For people having this issue, there is a (draft) driver for the new alps touchpad shipped with the latest DELL latitude series.

See http://<email address hidden>/msg00808.html

The driver is working on my e6530, and on the e6430.

you need to download hit git tree (https://github.com/bgamari/linux/tree/alps) and compile the driver yourself :
cd drivers/input/mouse/
make -C /lib/modules/`uname -r`/build M=`pwd` psmouse.ko
(as root) rmmod psmouse
(as root) insmod ./psmouse.ko
xinput list

Thanks @pfoo for posting this info here.

I tried out Ben Gamari's alps branch on my Dell Inspiron 15R, but
unfortunately my ALPS touchpad is still recognized only as a PS/2 Generic
Mouse.

Same result as @elridge-dmello with the driver of #139: my touchpad is still recognized as a PS/2 Generic Mouse. I have a Dell Inspiron 15R N5110, Ubuntu 12.10 x64.

Ferran (forsola) wrote :

Thank you very much pfoo. It worked in Dell E6530 qith ubuntu 12.04.1 amd64.

This is great to have scrolldown and been able to work with no external mouse.

THANKS!!!

Miguel Ramiro (mike.longbow) wrote :

Just want to add that after trying the patch by bgamari my touchpad is still recognized as PS/2 Generic Mouse. I'm running Ubuntu 12.04 x64 on a Dell Vostro 3360.

Here is the listing show in /proc/bus/input/devices:

I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input18
U: Uniq=
H: Handlers=mouse0 event5
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

Dave Turvene (dturvene) wrote :

I finally got the Alps touchpad working on a Dell N5110. Briefly, it's a new protocol to init the device and the 6-byte packets coming from it are a new format. I didn't spend much time trying to understand the init sequence, just stuck the qemu packet dump into a new (V6) init function. But it works; probably needs to be tightened up a little. I don't understand the thought process behind the different protocols. It seems like the NRE to keep writing test and production drivers would be unsustainable.

I created a psmouse DLKM with a README at [1]. If there's anybody else with an N5110 who wants to try it out please post your results.

[1]: http://www.dahetral.com/public-download

Wow! I'm eager to try it! Can you explain the procedure to install the patch to a completely kernel illiterate like me? :)
Thank you for your hard work!

Why don't bug trackers have "+1" or "like" buttons? I would definitely click it for Dave Turvene! I will see if I can try it, but I am currently on 12.10 beta so I don't know if I want to over-experiment.

Dave Turvene (dturvene) wrote :

@quarara

Explode the tarball:

cd $HOME
mkdir Stage
tar -jxvf $HOME/Download/psmouse-alps-dst-0.1.tbz

This will make a $HOME/Stage/README that should explain everything. It has a couple embedded scripts to build/install the DLKM. I forgot to document the DLKM source needs to be put under /usr/src:

cd $HOME/Stage
sudo cp -Rvup usr /

BTW, you need sudo rights. Look in $HOME/Stage/README for the build_alps shell function to build/probe the driver. See man:dkms for more info.

@richard-merren

As far as I'm aware, my psmouse DLKM will work for Dell N5110 ONLY because it has a whacky control response code. For entering command mode it expects 0x73 0x01 where all the prior ALPS touchpad models expect 0x88 0x07 so it's hardcoded in the driver.

Marcos (deflagmator) wrote :

@Dave Turvene

Thanks for your effort, as you say your DLKM should only work on N5110 because I have a kernel crash (my laptop is vostro 3360) , when I apply your DLKM code......
Which information do you need to "try" to modify source to help people with this DELL vostro 3360?

Mirko Jurić-Kavelj (jkmirko) wrote :

@dturvene
I also have Dell N5110 with Alps touchpad and Dave's patch seems to do the trick, so, thank you Dave.

My problem was that touchpad was being recognised as PS/2 Generic Mouse and the touchpad settings tab was disabled in system settings.

I've tried to fix this problem with this patch:
http://people.canonical.com/~sforshee/alps-touchpad/psmouse-alps-0.10/psmouse-alps-dkms_0.10_all.deb (it's a dead link now),
but it resulted with both, psmouse and touchpad modules being loaded
http://askubuntu.com/questions/109820/alps-loaded-but-ps-2-mouse-also-loaded.
After this, the touchpad tab was enabled in system settings, but any changes made didn't reflect on touchpad.

Dave's patch seems to work best. Touchpad is being recognised as AlpsPS/2 ALPS DualPoint TouchPad, touchpad settings are available and touchpad is responding to changes except for the scrolling (edge and two-finger). I've checked with synclient the ouptut I was getting and it looks like touchpad dosen't recognise more than one finger... :-(

But for me, the most annoying problem was accidentaly touching touchpad while typing, which is now solved because touchpad is disabled while typing!

Thanks Dave for your explanations. I've installed the patch in my Dell and the touchpad is finally recongnized. I can even disable it with fn+f3 shortcut. Unfortunately, I have the same issue as jkmirko, since scrolling (neither edge nor two-finger) is not recognized by the module. By the way, it looks to me a great improvement and it will surely be a start for further investigations. Finally I can disable my touchpad while typing! Thank you, Dave!

Which version of Ubuntu is this patch intended for? Looks like I'll need to
reinstall to try it (but that's fine)

@dturvene
Another case in which Dave's fix worked. I have a Dell N5110, Ubuntu 12.10 x64 and it worked smoothly. It used to be recognized as PS/2 Generic Mouse and now it is recognized as AlpsPS/2 ALPS DualPoint TouchPad. Thanks Dave!

@jkmirko , @quarara
The same as you two, scrolling is not working (neither edge nor two-finger). Touchpad settings appear and fn+f3 works.

For newbies, I'll detail more the instructions provided before by David, in order to install it:

#This will unzip the compressed file in $HOME/Stage, if it was downloaded to ~/Download/
cd
mkdir Stage
cd Stage
tar -jxvf ~/Download/psmouse-alps-dst-0.1.tbz

#This will make a $HOME/Stage/README file that explains how David did it.

cd usr/src
sudo cp -Rvup * /usr/src
cd /usr/src/psmouse-alps-dst-0.1

#You will need the package "dkms"
sudo dkms add .
sudo dkms status
#Now it should show the module added
sudo dkms build -m psmouse -v alps-dst-0.1
#Now it should be built
sudo dkms install -m psmouse -v alps-dst-0.1
#Now it is installed in the current kernel

Reboot and it should work. If you have issues adding, building or installing, you are probably dealing with the wrong folder. If you find an error, it will point to the log file to check out. For more info and examples on how to deal with dkms, you can check:
http://linux.dell.com/dkms/manpage.html
https://help.ubuntu.com/community/DKMS

Dave Turvene (dturvene) wrote :

Good to see so many people testing this! Yes, it's a first cut and does not include multi-touch. The next rev of the DLKM will include:
1) more diagnostics to ascertain the ALPS model and behavior
2) support all recognized alps touchpads - including Ben Gamari's work on the E6430 (understanding that I can't test anything but the N5110), and
3) hopefully multi-touch.

I set the Velocity Scaling to 40 and noticed the cursor jumps sometimes.

I don't see any code in the psmouse driver area that explicitly supports edge-scroll so I think it's a generic X capability. However, I think I may have configured the Alps driver for the incorrect touchpad size - which would mean no edges.

Dave

useResa (rdrijsen) wrote :

I have been reading positive comments on getting the touchpad working on Dell Latitude E6430 with the solution as provided by pfoo in comment #139.

Unfortunately I have (too) little knowledge of git to know how to implement the solution.
I have tried both:
git clone https://github.com/bgamari/linux/tree/alps
and:
git clone https://github.com/bgamari/linux/tree/alps.git
but for both commands I get:
Cloning into 'alps'...
fatal: https://github.com/bgamari/linux/tree/alps/info/refs not found: did you run git update-server-info on the server?

I assume I am doing something wrong. Could someone please give step by step instructions on how to try this solution?

Ben Gamari (bgamari) wrote :

@rdrijsen

That URL is a link to a branch on Github's web interface. Use the following to checkout the tree,

$ git clone git://github.com/bgamari/linux.git
$ cd linux
$ git checkout origin/alps

Compiling the kernel simply involves fetching a reasonable configuration and starting make,

$ cp /boot/config-3.5.0-13-generic .
$ make

sam (samer-mirror) wrote :

Mmm... after installing @dturvene's module successfully, I've experienced something I didn't before: the left click of both my mouse and touchpad stopped working randomly. It came back after restarting unity, twice, today. Changing mouse didn't help, of course. It never happened before and I wonder if it's related to the fix...

I write it here just in case someone else experiences stuff like this.

@sam I experience the same behaviour when I put two fingers on the touchpad for a couple of seconds.
Another "issue" - this is just a first temporal fix so problems like that could arise - I'm encountering: when I disable the touchpad with fn+f3 shortcut the cursor moves randomly if the touchpad detects more than a finger on it. When I use just a finger the cursor simply doesn't move as expected.

@Dave Turvene

First, thank you for taking the time to work on this, I really appreciate.

I have tried to use your code on a DELL Inspirton 17R SE, which also has de 73 03 50 ALPS model. However, after loading the module, my computer hangs with a kernel error. These are the relevant log lines:

 psmouse serio1: alps: E6 report: 00 00 64
 psmouse serio1: alps: E7 report: 73 03 50
 psmouse serio1: alps: Cmdmode: 73 02 02
 BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
 IP: [<ffffffffa0600e0d>] alps_get_model+0x29d/0x3b0 [psmouse]

I hope this helps you to improve your code. Thanks again.

Sorry for my last comment, I was actually trivial to find out the bug. The problem is that alps.c, line 1203 assumes that model is properly initialized. However, in my hardware it is not. Commenting out that line give this output:

psmouse serio1: alps: E6 report: 00 00 64
psmouse serio1: alps: E7 report: 73 03 50
psmouse serio1: alps: Cmdmode: 73 02 02
psmouse serio1: alps: Unknown command mode response 02

I guess there are several different touchpads report 73 03 50. Any ideas?

In any case, I think you should fix that bug in the code, for example with something like this:

                       if (!model) {
    psmouse_dbg(psmouse,
         "Unknown command mode response %2.2x\n",
         param[0]);
   } else {
              psmouse_dbg(psmouse, "ver=%d, rsp=%2.2x\n", model->proto_version, param[0]);
   }

Regards,
Vreixo

useResa (rdrijsen) wrote :

@bgamari

Thank you for your clear instructions in comment #155. They really helped.

Had to change a little though.

Instead of your last two commands I used:
cp /boot/config-$(uname -r) .
make oldconfig

Next I followed the instructions in comment #139
cd driver/input/mouse
make -C /lib/modules/`uname -r`/build M=`pwd` psmouse.ko

then as root
rmmod psmouse
insmod ./psmouse.ko

Now indeed the touchpad is recognized
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=11 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=14 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=16 [slave pointer (2)]

Scrolling works nicely! Thank you for your efforts.

The final issue I have is that after reboot it is no longer recognized.
Running the above commands as root fixes it again.

Is there a way to fix it permanently?

useResa (rdrijsen) wrote :

@bgamari
In reaction to my previous comment (#160), I have succeeded to make the change persistant.

I have firstly backup the original psmouse.ko
sudo cp /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko ~/<backup directory>/psmouse.ko.backup

Next I have copied the psmouse.ko created from your instructions to replace the original psmouse.ko
sudo cp linux/drivers/input/mouse/psmouse.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko

And issued the following commands
sudo modprobe -r psmouse
sudo modprobe psmouse

This worked. Now also after reboot the touchpad is still detected
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=11 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=15 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=16 [slave pointer (2)]
Once again, thanks for the help and the fix

I downloaded Dave's patch in #144 and followed the install instructions in #152. On reboot, my computer would freeze during boot with the ubuntu logo and the row of dots. Attempts to boot into "recovery mode" also did not complete, with freeze for a minute or so and then a stacktrace/dump scrolling by. I was able to boot into a previous kernel via GRUB with no problem, and this command successfully removed the patch from the primary kernel:

sudo dkms remove -m psmouse -v alps-dst-0.1 --all

The "--all" was necessary because I was booted into a different kernel than the one into which this was installed.

I am on a Dell N5110 with Ubuntu 12.10 beta, x86_64, kernel 3.5.0-14. I am happy to reproduce and upload any log files that may help. My laptop is only a few months old, so it may be that Dell has decided to put a different (and even more incompatible) version of the ALPS trackpad in. If there is anything I can do to help test, please let me know. Otherwise I will watch here to see if you post updates and try those when they appear.

Dave Turvene (dturvene) wrote :

I fixed a couple panic situations, added a runtime debug flag and fixed (I think) edge-scrolling. Additionally I segmented the V6 operations from the other protocols so other laptops can uses this without a kernel panic. This driver should work for all known touchpads - it's the from the latest kernel and adds Ben Garami's code for the E6420 and mine for the N5110.

All debug is enabled by default. See the README alps_debug script to disable it (which will make the system run a lot faster.)

As previously, see the README for instructions. At the bottom of README, I pasted more shell scripts to install, build, run, control my alps touchpad. I spent a little time making the scripts generic but if one doesn't work for you, don't email me asking why.

I tested virt and horz edge-scrolling with "good-enough" touchpad boundries when doing input_set_abs_params. I'm sure they can be tuned better.

I have not looked at multi-touch yet. It looks to me like the driver alternately detects the location of each finger as a single input and updates the cursor position from that. I need to study the multi-touch controls a little more to figure out what is going on.

Same steps as in post #152 except the it's now psmouse-alps-dst-0.2 [1].

[1]: http://www.dahetral.com/public-download

On 09/18/2012 12:11 PM, Richard Merren wrote:
> I downloaded Dave's patch in #144 and followed the install instructions
> in #152. On reboot, my computer would freeze during boot with the
> ubuntu logo and the row of dots. Attempts to boot into "recovery mode"
> also did not complete, with freeze for a minute or so and then a
> stacktrace/dump scrolling by. I was able to boot into a previous kernel
> via GRUB with no problem, and this command successfully removed the
> patch from the primary kernel:
>
> sudo dkms remove -m psmouse -v alps-dst-0.1 --all
>
> The "--all" was necessary because I was booted into a different kernel
> than the one into which this was installed.
>
> I am on a Dell N5110 with Ubuntu 12.10 beta, x86_64, kernel 3.5.0-14. I
> am happy to reproduce and upload any log files that may help. My laptop
> is only a few months old, so it may be that Dell has decided to put a
> different (and even more incompatible) version of the ALPS trackpad in.
> If there is anything I can do to help test, please let me know.
> Otherwise I will watch here to see if you post updates and try those
> when they appear.
Richard -

Sorry for your problems. I just uploaded a more stable psmouse dklm.
If that still crashes collect the last lines in /var/log/syslog with
"psmouse" in the header. In the new README I added a script to pull the
touchpad model number from the BIOS. Please run the script and send me
the log.

Dave

I'm testing it right now - thank you, Dave!
It seems the cursor works faster than before and that's definitely a good thing. Edge scrolling works flawlessly, but the touchpad borders are maybe too small and I think there is a centimeter or so on the right that could be used, but it is fantastic to have this option now on our pc's. Another small bug that I still experience is the one I described before in comment #157 (two fingers on the touchpad disabled by the fn+f3 shortcut cause unexpected movements of the cursor).
Finally, I think Dave is doing a great job with this touchpad and he's getting closer and closer to ideal usability.

Dave: the only thing you have to apologize for is that you don't live in Texas where I can buy you the beer you deserve for doing this. I am testing the new version now.

I'd like to add something about another cool feature that I didn't notice with the previous version of the patch provided by Dave. If you tap on the upper right corner of the touchpad you'll simulate middle-click, while if you tap on lower right corner you'll have right-click.

Download full text (6.3 KiB)

I have been testing last Dave driver on my Inspiron 17R SE. First, I have change the line added by Dave on alps_model_data to

    { { 0x73, 0x03, 0x50 }, 0x02, ALPS_PROTO_V6, 0xc8, 0xc8, 0 },

because the command mode resp for my touchpad is 0x02 and ALPS_DUALPOINT flag makes no sense as this touchpad has not trackstick.

After loading the module, it seems the touchpad is detected:

psmouse serio1: alps: E6 report: 00 00 64
psmouse serio1: alps: E7 report: 73 03 50
psmouse serio1: alps: alps_enter_command_mode: 73 02 02
psmouse serio1: alps: ver=5, rsp=02
psmouse serio1: alps: E6 report: 00 00 64
psmouse serio1: alps: E7 report: 73 03 50
psmouse serio1: alps: alps_enter_command_mode: 73 02 02
psmouse serio1: alps: ver=5, rsp=02
psmouse serio1: alps: ID 0: 00
psmouse serio1: alps: 00 00 64: 00 00 64
psmouse serio1: alps: ID 0: 00
psmouse serio1: alps: 2-ID 0: c8
psmouse serio1: alps: 73 03 50: 73 03 50
psmouse serio1: alps: alps_enter_command_mode: 73 02 02
psmouse serio1: alps: Addr ec
psmouse serio1: alps: 0x0008=02
psmouse serio1: alps: Match bf 1a 04: bf 01 50
psmouse serio1: alps: Match 89 95 84: 78 79 7b
psmouse serio1: alps: alps_enter_command_mode: 73 02 02
psmouse serio1: alps: alps_init: keybit=159FD030
input: PS/2 Mouse as /devices/platform/i8042/serio1/input/input18
psmouse serio1: alps: alps_init: success
input: AlpsPS/2 ALPS GlidePoint as /devices/platform/i8042/serio1/input/input19

But it bothers me that both a PS/2 mouse and the AlpsPS/2 touchpad are detected. What is the reason for that? Any ideas?

In any case, the touchpad does not work. However, when I touch the touchpad the events are received by the driver and logged:

psmouse serio1: alps: d: c8 4c 3e 8 24 11 = 588 318 17
psmouse serio1: alps: d: c8 4c 3e 8 24 11 = 588 318 17

x, y and z values make sense according to how I press the touchpad, so the packet format seems similar. However, the mouse pointer doesn't move on the screen, and clicks in the touchpad buttons are not logged.
I guess there is some trouble with the initialization sequence, maybe it is different for my touchpad.

For completeness, I paste here the related X logs, if you have any idea about how to fix this I would be glad to test it. I would like to use the virtual machine stuff to reverse engineering the initialization sequence, but I have no time right now.

[ 1626.447] (II) config/udev: Adding input device PS/2 Mouse (/dev/input/mouse1)
[ 1626.447] (II) No input driver specified, ignoring this device.
[ 1626.447] (II) This device may have been added with another device file.
[ 1626.448] (II) config/udev: Adding input device PS/2 Mouse (/dev/input/event13)
[ 1626.448] (**) PS/2 Mouse: Applying InputClass "evdev pointer catchall"
[ 1626.448] (II) Using input driver 'evdev' for 'PS/2 Mouse'
[ 1626.448] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[ 1626.448] (**) PS/2 Mouse: always reports core events
[ 1626.448] (**) evdev: PS/2 Mouse: Device: "/dev/input/event13"
[ 1626.448] (--) evdev: PS/2 Mouse: Vendor 0x2 Product 0x8
[ 1626.448] (--) evdev: PS/2 Mouse: Found 3 mouse buttons
[ 1626.448] (--) evdev: PS/2 Mouse: Found relative axes
[ 1626.448] (--) evdev: PS/2 Mouse: Found...

Read more...

Mirko Jurić-Kavelj (jkmirko) wrote :

@dturvene
I've installed updated version of DLKM and am happy to say that edge scrolling (both horizontal and vertical) are fully working, so Dave, thanks again!

At first I didn't notice problem described by quarara in post #157 (two fingers on the touchpad disabled by the Fn+F3 shortcut cause unexpected movements of the cursor), but now I see that it is present in this version of the module.

Hoping to see multitouch support soon...

Download full text (3.4 KiB)

Vreixo - responses inline.

On 09/19/2012 09:25 AM, Vreixo Formoso wrote:
> I have been testing last Dave driver on my Inspiron 17R SE. First, I
> have change the line added by Dave on alps_model_data to
>
> { { 0x73, 0x03, 0x50 }, 0x02, ALPS_PROTO_V6, 0xc8, 0xc8, 0 },
>
> because the command mode resp for my touchpad is 0x02 and ALPS_DUALPOINT
> flag makes no sense as this touchpad has not trackstick.
Good to know. I'll drop the ALPS_DUALPOINT for the next driver rev.
>
> After loading the module, it seems the touchpad is detected:
>
> psmouse serio1: alps: E6 report: 00 00 64
> psmouse serio1: alps: E7 report: 73 03 50
> psmouse serio1: alps: alps_enter_command_mode: 73 02 02
> psmouse serio1: alps: ver=5, rsp=02
> psmouse serio1: alps: E6 report: 00 00 64
> psmouse serio1: alps: E7 report: 73 03 50
> psmouse serio1: alps: alps_enter_command_mode: 73 02 02
> psmouse serio1: alps: ver=5, rsp=02
> psmouse serio1: alps: ID 0: 00
> psmouse serio1: alps: 00 00 64: 00 00 64
> psmouse serio1: alps: ID 0: 00
> psmouse serio1: alps: 2-ID 0: c8
> psmouse serio1: alps: 73 03 50: 73 03 50
> psmouse serio1: alps: alps_enter_command_mode: 73 02 02
> psmouse serio1: alps: Addr ec
> psmouse serio1: alps: 0x0008=02
> psmouse serio1: alps: Match bf 1a 04: bf 01 50
> psmouse serio1: alps: Match 89 95 84: 78 79 7b
> psmouse serio1: alps: alps_enter_command_mode: 73 02 02
> psmouse serio1: alps: alps_init: keybit=159FD030
> input: PS/2 Mouse as /devices/platform/i8042/serio1/input/input18
> psmouse serio1: alps: alps_init: success
> input: AlpsPS/2 ALPS GlidePoint as /devices/platform/i8042/serio1/input/input19
For my init, "Match" indicates an expected response to the bytes before
the colon. Yours do not match. It may not be a problem.
>
> But it bothers me that both a PS/2 mouse and the AlpsPS/2 touchpad are
> detected. What is the reason for that? Any ideas?
The alps touchpad is an extension of the ps2 protocol. Linux uses a
tree structure to find devices.
>
> In any case, the touchpad does not work. However, when I touch the
> touchpad the events are received by the driver and logged:
>
> psmouse serio1: alps: d: c8 4c 3e 8 24 11 = 588 318 17
> psmouse serio1: alps: d: c8 4c 3e 8 24 11 = 588 318 17
>
> x, y and z values make sense according to how I press the touchpad, so the packet format seems similar. However, the mouse pointer doesn't move on the screen, and clicks in the touchpad buttons are not logged.
> I guess there is some trouble with the initialization sequence, maybe it is different for my touchpad.
>
> For completeness, I paste here the related X logs, if you have any idea
> about how to fix this I would be glad to test it. I would like to use
> the virtual machine stuff to reverse engineering the initialization
> sequence, but I have no time right now.
You're getting the 6-byte alps packets (standard ps2 is 3-bytes) so the
driver is working. I don't log button clicks. The X logs look good
also - consistent with what I see. Base on that the driver is working
and I suspect that something in the X linkage or X configuration is not
working.

Not to point out the obvious but: did you enable the mouse?

Do "xinput --list". For...

Read more...

Still getting crashes/hang on boot with this driver on my N5110. No change from the 0.1 to the 0.2 version. Nothing for psmouse gets logged in the syslog at all. Following the steps within the build_alps function of the README file, all is well until I execute the "sudo modprobe -v psmouse". Then I am dropped out of X and see a stacktrace (which I can't really copy because I have no interactivity left...have to reboot at this point and then boot into an old kernel and do the remove command).

Here is the DSDT info generated for the PS2 section:

        Device (PS2)
        {
            Name (_HID, EisaId ("DLL04B0"))
            Name (_CID, Package (0x03)
            {
                EisaId ("SYN0600"),
                EisaId ("SYN0002"),
                EisaId ("PNP0F13")
            })
            Name (CRS, ResourceTemplate ()
            {
                IRQNoFlags ()
                    {12}
            })
            Method (_CRS, 0, NotSerialized)
            {
                Return (CRS)
            }
        }

Are those the same codes you get, or is this a different device?

On 09/19/2012 05:21 PM, Richard Merren wrote:
> Still getting crashes/hang on boot with this driver on my N5110. No
> change from the 0.1 to the 0.2 version. Nothing for psmouse gets logged
> in the syslog at all. Following the steps within the build_alps
> function of the README file, all is well until I execute the "sudo
> modprobe -v psmouse". Then I am dropped out of X and see a stacktrace
> (which I can't really copy because I have no interactivity left...have
> to reboot at this point and then boot into an old kernel and do the
> remove command).
>
> Here is the DSDT info generated for the PS2 section:
>
> Device (PS2)
> {
> Name (_HID, EisaId ("DLL04B0"))
> Name (_CID, Package (0x03)
> {
> EisaId ("SYN0600"),
> EisaId ("SYN0002"),
> EisaId ("PNP0F13")
> })
> Name (CRS, ResourceTemplate ()
> {
> IRQNoFlags ()
> {12}
> })
> Method (_CRS, 0, NotSerialized)
> {
> Return (CRS)
> }
> }
>
> Are those the same codes you get, or is this a different device?
>
Richard -

Yes, "DLL04B0" is the same device. Several thoughts:

* Do you get ANY errors/warnings when building the psmouse.ko dlkm?
* What does "modprobe -v" report? It should be something like
"/lib/modules/3.2.0-30-generic/updates/dkms/psmouse.ko"
* What OS and ver are your running?
* Can you boot up into an Vista/Win7 or run a powerup diagnostic to
confirm it's not a hardware issue?
* Eyeball the crash stack trace and look for any paths through a
psmouse* or alps* function call. Each will have a hex offset. Email me
what you see.

Dave

Hello,

I have a N5110.
I tried to install the patch, but now the touchpad does anything anymore.
I checked the touchpad settings, but it is still not recognised.

when i check status, i see that it is properly installed.

koenh@koenh-Kubuntu-1204:/usr/src$ sudo dkms status
psmouse, alps-0.10: added
psmouse, alps-dst-0.1, 3.2.0-30-generic, x86_64: built
psmouse-alps-dst, 0.2: added
psmouse, alps-dst-0.2, 3.2.0-30-generic, x86_64: installed

cat /proc/bus/input/devices
I: Bus=0011 Vendor=0002 Product=0008 Version=7335
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input10
U: Uniq=
H: Handlers=mouse2 event10
B: PROP=8
B: EV=b
B: KEY=e420 70000 0 0 0 0
B: ABS=260800001000003

What can be the problem?

Koen.

Midhat (midhatali-m) wrote :

This crashed my kernal too. You can find pictures of crash at https://www.dropbox.com/sh/6i9fkfo4o7jrm2v/3p4OH6Gkkr#/

Crash happens after modprobe, and the kernel won't boot any longer until the driver is removed. using XUbuntu 12.04. System details below:

System Model: Inspiron 15R N5110
uname -a: Linux Inspiron 3.2.0-30-generic #48-Ubuntu SMP Fri Aug 24 16:52:48 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Relevant portion of DSDT.dsl:

        Device (PS2)
        {
            Name (_HID, EisaId ("DLL04B0"))
            Name (_CID, Package (0x03)
            {
                EisaId ("SYN0600"),
                EisaId ("SYN0002"),
                EisaId ("PNP0F13")
            })
            Name (CRS, ResourceTemplate ()
            {
                IRQNoFlags ()
                    {12}
            })
            Method (_CRS, 0, NotSerialized)
            {
                Return (CRS)
            }
        }

Download full text (5.4 KiB)

Dave:

> Not to point out the obvious but: did you enable the mouse?

:"> You cannot imagine how I feel now... It was disabled, I don't know how I didn't figure this out... Strange, because it was enabled before loading the driver, I guess the PS/2 device is what was enabled, but not the touchpad....

In any case, the good news is that the driver works now, and it is pretty usable!!! Thank you!!! You can claim support for a new device and laptop: Dell Inspiron 17R SE (aka 7720).

More details follow:

- Pointer moves fine.

- Click by tapping works.

- Buttons (for click and right-click) work. Middle-button simulation by simultaneous click works too.

- Both vertical and horizontal scroll do work. However, it does not work exactly in the edge. As reported in comment #165, there is about 1cm of space near the edges where the touchpad does not work. That is, the edges of the touchpad are useless: no scrolling, no pointer movement, no click... I wonder if that is related to this property reported by "xinput list-props":

 Synaptics Edges (701): 204, 1156, 99, 561

Moving the finger on the right edge, for example, reports:

psmouse serio1: alps: d: c8 55 16 8 3a 9 = 1365 406 9
psmouse serio1: alps: d: c8 55 18 8 3a 9 = 1365 408 9
psmouse serio1: alps: d: c8 55 1a 8 3a 9 = 1365 410 9
psmouse serio1: alps: d: c8 55 1c 8 3a 9 = 1365 412 9
psmouse serio1: alps: d: c8 55 1d 8 3a 9 = 1365 413 9

that is, x=1365, higher than the 1156 reported as synaptics edge. Btw, what is that??

- Tapping on the "right top corner" (I mean, ignoring the useless edges), simulates a middle-button click. On the right bottom, a right-button click. Same behavior as reported in comment #167. Mostly useless, however, because of the "useless edges": it is not obvious which are the corners ;-) The right-click effect is very hard to get, it seems only a small surface triggers that behavior.

- Fn+F3 works for enabling/disabling the device. One minor flaw: the LED that is supposed to show that the device is disabled is never on.

- Using two fingers makes the mouse go crazy, and the driver reports this kind of things:

psmouse serio1: alps: refusing packet[1] = be
psmouse serio1: GlidePoint at isa0060/serio1/input0 lost sync at byte 2
psmouse serio1: alps: refusing packet[0] = 0 (mask0 = c8, byte0 = c8)
psmouse serio1: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
psmouse serio1: alps: bare_ps2_packet: 3 0 -67
psmouse serio1: GlidePoint at isa0060/serio1/input0 - driver resynced.
psmouse serio1: alps: d: ca 28 72 8 16 18 = 808 242 24
psmouse serio1: alps: refusing packet[1] = be
psmouse serio1: GlidePoint at isa0060/serio1/input0 lost sync at byte 2
psmouse serio1: alps: refusing packet[0] = 0 (mask0 = c8, byte0 = c8)
psmouse serio1: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
psmouse serio1: alps: bare_ps2_packet: 3 0 -67
psmouse serio1: GlidePoint at isa0060/serio1/input0 - driver resynced.
...

(I know it is not supported, but I give it a try). It may be good to log the packets that are being refused, in order to get some feedback of what is sending the touchpad.

In any case, I can only thank Dave for his efforts. Really great job!!! Thank you!

O...

Read more...

* Do you get ANY errors/warnings when building the psmouse.ko dlkm?

No errors or warnings. The build works fine.

* What does "modprobe -v" report? It should be something like
"/lib/modules/3.2.0-30-generic/updates/dkms/psmouse.ko"

When I do the "modprobe -v psmouse" the crash happens. It happens immediately, and if there is any response from the modprobe command I can't see it. I tried sending it to a file with 1> and 2> to get stdout and errout, but no files were created.
.
* What OS and ver are your running?

I am on Ubuntu 12.10 beta 64 bit. Here is the result of a uname-a:
Linux rbmlaptop 3.5.0-14-generic #19-Ubuntu SMP Fri Sep 14 20:21:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

* Can you boot up into an Vista/Win7 or run a powerup diagnostic to
confirm it's not a hardware issue?

I don't have either installed--I am several years past the "I might need Windows for something" phase of switching to Linux so I just get rid of it--but I will try to find some diagnostics to run and report back if I can.

* Eyeball the crash stack trace and look for any paths through a
psmouse* or alps* function call. Each will have a hex offset. Email me
what you see.

The stack trace is the same as the images posted above in #174. I will take some photos and get you some offsets next time I try this.

I may also try to install it on an earlier kernel and see if that makes a difference. Given midhat's similar experience, I think it might be related to the newer kernel and not hardware.

sam (samer-mirror) wrote :

Following #156, #157, my mouse (& touchpad) left click still is randomly disabled (until next unity restart) and I saw that is directly related to the two-finger issue. Now it just happened again but by leaving pressed the two fingers in the touchpad for several seconds, the left click came back.

Thus, I strongly support #175's suggestion: disabling two-finger support completely in order to avoid derived annoying bugs.

Apart from that, it works fine (testing v1). I gave info before about my system. Now my "uname -a" (as reading comments, kernel version seems to matter):
Linux anarres 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Dave Turvene (dturvene) wrote :

I just released a 0.3 version of the alps driver [1].

So far I have no idea how to decode the multi-touch stuff. So I hacked an odd little code frag to discard all packets that are not single touch. The problem is there's a subtle transition from single to multi-touch that LOOKS like a wild single touch packet. That's why the cursor moves so dramatically. Shouldn't be happening now.

@Richard & @medhat - I think this will stop your panics. I'm not sure what's going on but I'm pretty sure there was a crash waiting to happen. Thanks for testing and reporting. Please try again and report your progress. At the worst, it should drop to a standard ps2 mouse.

I added an alps.sh script file that I actually use to build, test, run the driver. It should be self-descriptive. All functions work on my machine but use them with a grain-of-salt on yours. One function "run_tune_alps" sets up X for the touchpad speed and size. It will help for edge scrolling. But please adjust to your own preferences.

[1]: http://www.dahetral.com/public-download

Midhat (midhatali-m) wrote :

Hello Dave. I tested the new driver. It does not crash the kernel now and the alps device shows up in `xinput list` , but the mouse pointer does not move. I see activity in the syslog when I try to move the pointer, but the pointer doesnt move at all. The buttons for left and right click continue working. I'm not sure if it has any relation with this driver.

Thanks for all the work. If it helps, you can see my syslog at http://dl.dropbox.com/u/7201872/syslog

On 09/21/2012 09:41 AM, Midhat wrote:
> Hello Dave. I tested the new driver. It does not crash the kernel now
> and the alps device shows up in `xinput list` , but the mouse pointer
> does not move. I see activity in the syslog when I try to move the
> pointer, but the pointer doesnt move at all. The buttons for left and
> right click continue working. I'm not sure if it has any relation with
> this driver.
>
> Thanks for all the work. If it helps, you can see my syslog at
> http://dl.dropbox.com/u/7201872/syslog
>
@Midhat

Make sure the driver is loaded and enabled. Look at the run_tp_check
routine in the alps.sh script file.

Dave,

I ran your 0.3 and it worked like a charm...no errors at all on either install or reboot. A few items of note:
* The PS/2 mouse still appears in my xinput --list. Is that supposed to be the case?
* After all the xinput setprops, I do have edge scrolling, but it works about 1/4 inch from the edge. The last 1/4 inch or so does nothing. I'm sure this is just an adjustment to be made somewhere, and it is not really noticeable.
* As expected, there is no multitouch. But multiple touches (e.g. hitting with 2 fingers) does not cause any grief or erratic behavior, so it seems to be swallowed properly
* I now have the touchpad tab in the mouse settings
* I am now running on the 3.5.0-15-generic kernel. I don't think that makes any difference with the -14 kernel I was using before, but if midhat is still having issues it might be worth doing the "sudo apt-get dist-upgrade" to get this kernel upgrade and see if his problems disappear.

In all, a great advance over the out-of-the-box experience I was having (on my "Ubuntu Certified" laptop). Thanks for all your efforts!

Dave,

your 0.3 works flawlessly on I17R SE. Multitouch is also perfectly disabled, no random behavior anymore. As reported previously, edge scrolling does not work exactly on the edges, and playing with "Synaptics Edges" property does not fixes it. In fact, if I try to move the logical edges near the physical ones, it just reduces the scrolling area, but it does not move near the edges. I any case, not a big deal.

The driver can be improved, but it is perfectly usable right now. So thank you very much for your work. I will try to research a bit about multitouch, to see if I can figure out what the packet format is.

Regards
Vreixo

Hi,

I think I have figured out part of the multitouch protocol:

- The packets are also 6-bytes long, but the 6 bytes aren't sent at once like with single touch, but byte by byte. In any case, it is trivial to reassemble them in a 6-byte packet.

- Once the 6-bytes mt packet is assembled, the layout seems to be exactly like single touch packet, with the exception of byte 0 (first byte sent). See below.

- Normally, if using multitouch, 2 6-byte packets are sent (that is, 12 one-byte packets). One for each finger (I didn't try with more than 2 fingers, is it supported?). However, if a finger keeps pressed after the mt, sometimes a single 6* 1-byte mt packet is sent after (or before) a normal 6-byte single-touch packet. I don't know exactly how it works. For example, if you press one finger, keep it pressed, and then tap with another, first you get only single-touch events (as expected), then you get series of 2 mt packets (I mean, 12 bytes) during the tap; but then, once the tap has finished, you receive single touch events for the finger you keep pressed, interleaved with mt packets for the missing finger. I do not even know if this matters regarding the driver, maybe we just need to report what we receive to the upper layer. No idea.

- The only thing different between mt and st is the first byte. For st, it is always c8. For mt, it is usually ca for only finger, and ec for the other. But sometimes I get different values, such as ea or ed. I don't know what they mean yet.

When I have time, I will keep working on this.

Cheers
Vreixo

I've tested the new module and, as reported by others, it got better. The only little imperfection that I still notice is that the usable area of the touchpad is smaller than its entire surface. Other than that is great to have a stable touchpad right now on my machine. It looked like an utopia until a week ago.

Hi!

Some comments about mt and my previous comment:

- The claim about mt being received one-byte-at-a-time is just a problem with how the driver loads the packets in alps_process_byte. It is easy to change that function to let the full packet be processed by apls_process_tocuhpad_packet_v6. However, the if clause with comment /* Bytes 2 - pktsize should have 0 in the highest bit */ should be removed, as this condition does not hold for mt packets. If you remove that if condition, the hack to ignore mt packets can be moved to v6 function. I think the right thing is to add a "AND packet version != v6" to that if condition, and move the hack to our function. Given that, mt packets are received by v6 processing function as 6 bytes packets. All fine.

- Packets whose first byte is c8 (st) or ca (mt) follow the same layour. x,y, and z make sense for both c8 and ca packets. At this point I think the extra bit enabled in ca could mean multitouch, but I'am not sure.

- I have also found packets whose first byte is ec, ed, ea, and ee. They seem to follow a different layout, as values reported for x,y,z make no sense. I was wrong before.

If I found more details I will report them here.

Cheers
Vreixi

Sorry for so many comments, but I don't have time to completely solve this and I want to report my thoughts in case somebody find them useful.

I have tried to identify possible values for the first by of packet,s trying with different number of fingers. I get:

1-finger => always c8
2-finger => ca interleaved with ea, ec, ed (almost always ec)
3-finger => ca interleaved with ee (sometimes ef)
4-finger => ce interleaved with f8, f9 or fb

(does somebody have windows installed? do the touchpad works with more than 2 fingers? If not, maybe some of those extra bit mean error or just report excessive pressure...)

The format of ca and c8 packets seems to be the same. Maybe some differences in a particular bit, but x,y and z make sense.
I don't know the format of ex packets, but I think the 3 less significant bits could be related with z value. For example, with 2 fingers you almost always get ec, but on transitions you get ea or ed. In particular, ea appears when you rise the finger, which is reasonable (a < c => less pressure). I think the 3 LSB of packet[0] are the 3 MSB of z.
Note that a similar behavior appears with the fX packets using 4 fingers. Values ee and ef are get with 3 fingers. If the touchpad only support 2 fingers, it may mean the touchpad is just detecting big pressure, so big z values.

About the format of e packets:

With mt and moving only one finger vertically from top to bottom, I get variantions on 2nd and 3rd bytes, so I bet y is encoded (at least mostly) on those bits

ec f6 80 1e 60 0
...
ec fc 0 1e 60 1
...
ec e0 98 1e 60 0

Moving one finger horizontally left to right I get:

ed 87 87 48 0 70
...
ec c7 c3 8 3 70
...
ec 87 e1 8 0 70

Now most changes on 3rd and 4th bytes.

My guess:

packet[1] (2nd byte) => y (it seems LSBs of y)
packet[2] (3rd byte) => 4MSB x, 4 LSB y (both the MSB of x & y)
packet[3] (4th byte) => x (it seems LSBs of x)

but in any case this is very hard to figure this out, there are lots of possible cases. For example, if x and y values of e packets are relative to the other finger, my guesses have to be completely wrong.

Dave, how did you figure out the layout of single touch packets? Is there a particular methodology?

In any case, if you make the changes I suggest if previous comment (that is, to ignore the mt packets on the alps_process_touchpad_packet_v6 function, after logging the whole packet), I'm sure you will be able to solve this problem the same way you did with st.

Regards
Vreixo

I have an inspiron 13z and I would like to build this driver, but I am missing something. I downloaded the one from Ben Gamari's git hub and I could not run 'make oldconfig'. I built the driver using:

make -C /lib/modules/`uname -r`/build M=`pwd` psmouse.ko

Then used rmmod and insmod successfully but the touchpad was still recognized as PS2 mouse. I'm not sure if I need to get some more build dependancies, or if it will not work for this model laptop.

Okay I downloaded the latest version psmouse-alps-dst-0.3.tbz, used the make -C command found above and then did the rmmod and insmod. The touchpad is now recognized, none of the scrolling features work. But I am able to disable the 'tap to click' which absolutely kills me. Good work, I hope to try it again as it gets improved.

On Fri, Sep 21, 2012 at 4:37 PM, Dave Turvene <email address hidden> wrote:

> @Midhat
>
> Make sure the driver is loaded and enabled. Look at the run_tp_check
> routine in the alps.sh script file.
>
>
@Dave
Hi.I upgraded the kernel today (to 3.2.0-31) but this did not help. The
mouse does not move after installing the driver. This is the output of
run_tp_check.

Check tp sanity
print info about psmouse mod
filename: /lib/modules/3.2.0-31-generic/updates/dkms/psmouse.ko
license: GPL
description: PS/2 mouse driver
author: Vojtech Pavlik <email address hidden>
srcversion: 2AC7DB9762C4ABA0F32F212
alias: serio:ty05pr*id*ex*
alias: serio:ty01pr*id*ex*
depends:
vermagic: 3.2.0-31-generic SMP mod_unload modversions
parm: alps_debug:Debug config and packet info, 0=none, 1=debug,
3=deep (uint)
parm: proto:Highest protocol extension to probe (bare, imps,
exps, any). Useful for KVM switches. (proto_abbrev)
parm: resolution:Resolution, in dpi. (uint)
parm: rate:Report rate, in reports per second. (uint)
parm: smartscroll:Logitech Smartscroll autorepeat, 1 = enabled
(default), 0 = disabled. (bool)
parm: resetafter:Reset device after so many bad packets (0 =
never). (uint)
parm: resync_time:How long can mouse stay idle before forcing
resync (in seconds, 0 = never). (uint)
Alps is on id=15
Device enabled should be 1
    Device Enabled (126): 1

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in linux (Ubuntu Precise):
status: New → Confirmed
Florin9doi (florin9doi) wrote :

replace alps.c with this file: http://pastebin.com/raw.php?i=hmKdE2Hs to enable multitouch in n5110.

Florin9doi (florin9doi) on 2012-09-26
Changed in linux (Ubuntu Precise):
assignee: nobody → Florin9doi (florin9doi)
status: Confirmed → Fix Released
Florin9doi (florin9doi) on 2012-09-26
Changed in linux (Ubuntu Precise):
assignee: Florin9doi (florin9doi) → nobody

Hi Florin9doi,
should we replace the file after installing the module or before doing so? Does your configuration fixes the touchpad size issue too?

Thank you!

Florin9doi (florin9doi) wrote :

Download psmouse-alps-dst-0.3, replace alps.c and recompile/reinstall

I can confirm Florin9doi patch works perfectly on DELL Inspiron 17R, multitouch is now supported. Thank you guys for your work!

Mirko Jurić-Kavelj (jkmirko) wrote :

I've just replaced alps.c with florin9doi's source and reinstalled the module and am happy to say that it works perfectly! 2-finger scrolling is now enabled, and the mouse cursor doesn't go crazy when you touch the touchpad with more fingers, even when it's turned off with Fn+F3 toggle.

Thanks guys for your great work!

I can confirm that with the fix released by Florin9doi two-finger scrolling e two-fingers tap works wonderfully. Now the touchpad is very close to perfection!

Thank you for your hard work, guys!

Dave Turvene (dturvene) wrote :

I integrated the multi-touch stuff from florin9doi and tested. See [1]. The alps.sh script contains example functions to install and build the psmouse dlkm.

Nice job florin9doi! I really like mt - for me, much better than edge-scroll. But edge-scroll works okay after I increased the physical edge of the touchpad from 1340 to 1360. One still needs to modify the xinput "Synaptics Edges" property for personal preference if you want to use edge-scroll. For most properties, again see alps.sh

In preparation to merge this into the upstream linux release, I cleaned up the code and removed a lot of crap and debug. I updated alps.txt from the linux source documentation to include the two new protocols: v5 from Ben Garami and v6 from our collective fixes.

[1]: http://www.dahetral.com/public-download

Changed in linux (Ubuntu Precise):
assignee: nobody → Dave Turvene (dturvene)
Dave Turvene (dturvene) wrote :

take ownership to merge upstream to linux-input

Florin9doi (florin9doi) wrote :

Last Dave package (psmouse-alps-dst-0.4) works perfectly on Inspiron 17R SE. It would be great to have it included on 12.10 kernel.

Rob Langley (langers2k) wrote :

Using psmouse-alps-dst-0.4 on a Vostro 3360 and it seems to be happy! I've got both vertical and horizontal two finger scrolling although no luck with edge scrolling, possibly as I've not changed my xinput preferences.

For your reference my E7 is: 73 03 50
The PS2M from DSDT is: DLL055B

I believe the trackpad can also do three finger dragging and pinch zoom, are you planning to add these?

Either way, stunning work and thank you!

I have tried the alps.c file uploaded by Florin9doi in comment #207. However, I have not experienced any difference whatsoever. Am I missing something?

After days of testing I confirm that I am satisfied by the touchpad behaviour. At any rate, I've noticed that the cursor doesn't stop itself if accidentally touched while typing. Do you experience the same? It is not such an hassle for me, because I always disable the tp when I type, but maybe it's a key feature for many people out there.

post-factum (post-factum) wrote :

Florin9doi, many thanks to you, touchpad on my Dell Vostro 3360 work well now.

FCG (fernancg) wrote :

Quarara,

How did you install the patch? Every time I install the patch on my Dell 15R my mouse doesn't moves smoothly anymore, it just jumps.

Thanks

Hi FCG,

Extract psmouse-alps-dst-0.4 in /usr/src/ with sudo rights.

If you have installed the module before, I suggest you to completely remove it before reinstalling with:
sudo dkms remove psmouse/alps-dst-0.4 --all
(of course, if you have installed another version of the module, change version number accordingly)

Then just give those commands in the terminal:
sudo dkms build psmouse/alps-dst-0.4
sudo dkms install psmouse/alps-dst-0.4
sudo rmmod psmouse && sudo modprobe -v psmouse

After that your touchpad will be hopefully recognized by your machine.

Let me know if this helped you!

FCG (fernancg) wrote :

Quarara,

This actually helped and now I can see my touchpad:

↳ AlpsPS/2 ALPS GlidePoint id=14 [slave pointer (2)]

However, for some reason the mouse moves very choppy in comparison with the previous driver.
I installed Synaptiks and tweak the settings and it seems to help a little.

Are you using the systems settings to tweak your touchpad or you have any other program?

Thanks

Miguel Ramiro (mike.longbow) wrote :

I just installed the latest driver from dturvene on my system (Dell Vostro 3360) and it works alright, but there are still some issues:

- Only two finger scroll works, edge scroll does not.
- Pointer movement is, as described by FCG, kind of choppy. Sometimes it stops moving and doesn't respond to input for a second or so. A little bit frustrating, I might say.
- Also, movement is noticeable slower and doesn't respond to sensibility adjustment in system configuration.

Also, here's my device:

I: Bus=0011 Vendor=0002 Product=0008 Version=0000
N: Name="PS/2 Mouse"
P: Phys=isa0060/serio1/input1
S: Sysfs=/devices/platform/i8042/serio1/input/input11
U: Uniq=
H: Handlers=mouse0 event11
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0002 Product=0008 Version=7335
N: Name="AlpsPS/2 ALPS GlidePoint"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input12
U: Uniq=
H: Handlers=mouse1 event12
B: PROP=8
B: EV=b
B: KEY=e420 70000 0 0 0 0
B: ABS=260800001000003

Nevertheless, the patch is still a great upgrade from the previous one. I just couldn't stand not being able to scroll. Dave and florin9doi, you're doing an amazing job and I'm sure we're all very grateful for it. Keep it up.

Regards.

Huangshan Chen (chenhs05) wrote :

I followed the instrcution in commend #212 and it works perfectly on my new laptop ( Dell Latitude E6330 )!!!!!

@Miguel Ramiro
I tried both the edge scroll and two finger scroll (I change it in the system configuration), and in both cases it works fine!

here is my device:

 uname -s -r -v -i -o
Linux 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012 x86_64 GNU/Linux

cat /proc/bus/input/devices
I: Bus=0011 Vendor=0002 Product=0008 Version=0000
N: Name="DualPoint Stick"
P: Phys=isa0060/serio1/input1
S: Sysfs=/devices/platform/i8042/serio1/input/input20
U: Uniq=
H: Handlers=mouse0 event15
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0002 Product=0008 Version=7331
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input21
U: Uniq=
H: Handlers=mouse2 event17
B: PROP=8
B: EV=b
B: KEY=e420 70000 0 0 0 0
B: ABS=260800001000003

xin --list
Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Optical USB Mouse id=14 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=13 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=15 [slave pointer (2)]

Thank all you guys! I appreciated it a lot!

Regards.

Download full text (5.5 KiB)

Hello !!

I'm watching this topic a few months ago. As I understand it, the driver
was already released to the Linux kernel, right?
so I hoped so upgrade my kernel (automatically by ubuntu) driver to be
recognized!
Linux 3.2.0-32-generic-pae #51-Ubuntu SMP Wed Sep 26 21:54:23 UTC 2012 i386
GNU/Linux

I have Inspiron 14R 5420.

After i run:
sudo rmmod psmouse && sudo modprobe -v psmouse
i get:
insmod
/lib/modules/3.2.0-32-generic-pae/kernel/drivers/input/mouse/psmouse.ko
proto=imps
so there's a driver, right? ok!

but when I cat /proc/bus/input/devices
I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input18
U: Uniq=
H: Handlers=mouse1 event8
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3
full on ( http://pastebin.com/NitkME7c )

somebody can help-me what passes should i do ?

previously thankful!

On Fri, Oct 12, 2012 at 3:55 PM, Huangshan Chen <email address hidden> wrote:

> I followed the instrcution in commend #212 and it works perfectly on my
> new laptop ( Dell Latitude E6330 )!!!!!
>
> @Miguel Ramiro
> I tried both the edge scroll and two finger scroll (I change it in the
> system configuration), and in both cases it works fine!
>
> here is my device:
>
> uname -s -r -v -i -o
> Linux 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012 x86_64
> GNU/Linux
>
> cat /proc/bus/input/devices
> I: Bus=0011 Vendor=0002 Product=0008 Version=0000
> N: Name="DualPoint Stick"
> P: Phys=isa0060/serio1/input1
> S: Sysfs=/devices/platform/i8042/serio1/input/input20
> U: Uniq=
> H: Handlers=mouse0 event15
> B: PROP=0
> B: EV=7
> B: KEY=70000 0 0 0 0
> B: REL=3
>
> I: Bus=0011 Vendor=0002 Product=0008 Version=7331
> N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
> P: Phys=isa0060/serio1/input0
> S: Sysfs=/devices/platform/i8042/serio1/input/input21
> U: Uniq=
> H: Handlers=mouse2 event17
> B: PROP=8
> B: EV=b
> B: KEY=e420 70000 0 0 0 0
> B: ABS=260800001000003
>
> xin --list
> Virtual core pointer id=2 [master pointer (3)]
> ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer
> (2)]
> ⎜ ↳ Logitech Optical USB Mouse id=14 [slave pointer
> (2)]
> ⎜ ↳ DualPoint Stick id=13 [slave pointer
> (2)]
> ⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=15 [slave pointer
> (2)]
>
> Thank all you guys! I appreciated it a lot!
>
> Regards.
>
> --
> You received this bug notification because you are subscribed to a
> duplicate bug report (903236).
> https://bugs.launchpad.net/bugs/606238
>
> Title:
> synaptic touchpad not recognized on dell latitude e6510 and others
>
> Status in The Linux Kernel:
> Fix Released
> Status in “linux” package in Ubuntu:
> In Progress
> Status in “linux” source package in Precise:
> Fix Released
> Status in “linux” source package in Quantal:
> In Progress
> Status in “linux” package in Arch Linux:
> Fix Released
> Status in openSUSE:
> New
>
> Bug description:
> It wrongly recognized as PS/2 Generic Mouse. And then scrolling does
> not work, but tapping does.
>
> ProblemType: Bug
> AplayDevi...

Read more...

I have a system (Latitude E6530) that came with 11.10 preinstalled. I have since then upgraded it to 12.04. The touchpad works fine but I can only configure it throgh an application named GlidePoint Touchpad (glidepoint in apt), not via System Settings.

Now I am trying to make a fresh install on a new disk and have experienced the same problem as mentioned here. I thought I would be able to get hold of the glidepoint package from Dell but I cannot find it. The guys at Dell seem to know about this since they can deliver a working system.

Just thought that I should mention this as I have not found it in any other place.

Will also try the solution in #212

I applied #212 recipe... to my Dell E6510, ubuntu 12.04, unfortunately still (but I thing less frequent) I'm getting spurious cursor movement and mouse refocus...

The touchpad isn't visible on my Latitude E6230.
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=12 [slave pointer (2)]

I can move the pointer with the touchpad, but I can't use scrollbars and I can't use the configuration tool in system settings of Kubuntu ("No touchpad found").

Dave Turvene (dturvene) wrote :

I just released a 1.0 version of the alps driver [1]. This is my candidate for linux patch submission for the alps driver supporting the new V5 and V6 protocols. The code mods in this release bring it into compliance with the patch submission requirements. I made no logic changes. I had to make some formatting changes to Ben Gamari's V5 protocol to pass the patch requirements - hopefully I didn't change the logic.

In a couple days, I'll submit to Canonical rather than linux-input because I have only tested using Ubuntu 12.04 LTS. If you detect any problems with the 1.0 driver, please post here.

[1]: http://www.dahetral.com/public-download

Dave Turvene (dturvene) wrote :

@Nicolas Dumoulin

It looks like the driver is not detecting the alps touchpad. Look from the bottom up in the syslog (probably /varlog/syslog) for lines with "psmouse". If there are lines with "alps: E6" then the driver is installed correctly. What does the line with "alps: command_mode:" say? The E6230 may not be a supported alps model, at least there is no indication in the code it is. So the psmouse driver reverts to 3-byte ps2 mode.

@Dave Here is what I've found
$ grep mouse /var/log/syslog
Oct 17 10:44:41 CFP6063 kernel: [ 1.565843] mousedev: PS/2 mouse device common for all mice
Oct 17 10:44:45 CFP6063 kernel: [ 8.534438] psmouse serio1: >Failed to enable mouse on isa0060/serio1

I'm on Kubuntu 12.10
$ uname -a
Linux CFP6063 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Luiz Covo F. (luiz-covo) wrote :

I installed the last driver version (http://www.dahetral.com/public-download/psmouse-alps-dst-1.0.tbz/view) on a Dell Inspirion 14R (5420) and finally I have my touchpad working fine and with the two fingers scrolling enabled (the feature that I was missing the most).

Thank you guys very much for the great work you have done!

Download full text (3.8 KiB)

Hi Luiz,

can you show-me step-by-step how you install this driver?

Because I dunno the steps to run alps.sh
I even don't have qemu installed,
--

Eu tenho o mesmo notebook que você! mas nao sei por onde começo para
instalar,

você pode me enviar seu history que eu me viro!

vlw!

On Fri, Oct 19, 2012 at 10:08 AM, Luiz Covo F. <email address hidden>wrote:

> I installed the last driver version (http://www.dahetral.com/public-
> download/psmouse-alps-dst-1.0.tbz/view) on a Dell Inspirion 14R (5420)
> and finally I have my touchpad working fine and with the two fingers
> scrolling enabled (the feature that I was missing the most).
>
> Thank you guys very much for the great work you have done!
>
> --
> You received this bug notification because you are subscribed to a
> duplicate bug report (903236).
> https://bugs.launchpad.net/bugs/606238
>
> Title:
> synaptic touchpad not recognized on dell latitude e6510 and others
>
> Status in The Linux Kernel:
> Fix Released
> Status in “linux” package in Ubuntu:
> In Progress
> Status in “linux” source package in Precise:
> Fix Released
> Status in “linux” source package in Quantal:
> In Progress
> Status in “linux” package in Arch Linux:
> Fix Released
> Status in openSUSE:
> New
>
> Bug description:
> It wrongly recognized as PS/2 Generic Mouse. And then scrolling does
> not work, but tapping does.
>
> ProblemType: Bug
> AplayDevices:
> **** List of PLAYBACK Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> Architecture: i386
> ArecordDevices:
> **** List of CAPTURE Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
> Subdevices: 2/2
> Subdevice #0: subdevice #0
> Subdevice #1: subdevice #1
> AudioDevicesInUse:
> USER PID ACCESS COMMAND
> /dev/snd/controlC0: karol 2618 F.... pulseaudio
> CRDA: Error: [Errno 2] No such file or directory
> Card0.Amixer.info:
> Card hw:0 'Intel'/'HDA Intel at 0xe9660000 irq 22'
> Mixer name : 'IDT 92HD81B1C5'
> Components : 'HDA:111d76d5,1028040b,00100104'
> Controls : 26
> Simple ctrls : 16
> Date: Fri Jul 16 13:36:04 2010
> DistroRelease: Ubuntu 9.10
> HibernationDevice: RESUME=UUID=cdf10c13-029f-401b-afed-f651ca0e2cbe
> InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release i386 (20091028.2)
> MachineType: Dell Inc. Latitude E6510
> NonfreeKernelModules: nvidia
> Package: linux-image-2.6.31-22-generic-pae 2.6.31-22.60
> PccardctlIdent:
> Socket 0:
> no product info available
> PccardctlStatus:
> Socket 0:
> no card
> ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.31-22-generic-pae
> root=UUID=2f511d08-c4e9-44e6-a1d2-5be6172b18c6 ro quiet splash
> ProcEnviron:
> PATH=(custom, user)
> LANG=pl_PL.UTF-8
> SHELL=/bin/bash
> ProcVersionSignature: Ubuntu 2.6.31-22.60-generic-pae
> RelatedPackageVersions:
> linux-backports-modules-2.6.31-22-generic-pae 2.6.31-22.24
> linux-firmware 1.26
> SourcePackage: linux
> Uname: Linux 2.6.31-22-generic-pae i686
> dmi.bios.date:...

Read more...

@Dave Turvene:

I'm happy to report that on my Fujitsu A512, the driver successfully detects and enable the touchpad :

[ 13.986265] psmouse serio1: alps: E6 report: 00 00 64
[ 14.011713] psmouse serio1: alps: E7 report: 73 03 50
[ 14.035004] psmouse serio1: alps: Model=26, proto_version=5

However, I get the same symptoms reported in https://bugs.launchpad.net/ubuntu/+source/linux/+bug/606238/comments/214 : edge scroll does not work and pointer movement is quite "choppy". Hardware information :

I: Bus=0011 Vendor=0002 Product=0008 Version=7335
N: Name="AlpsPS/2 ALPS GlidePoint"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input12
U: Uniq=
H: Handlers=mouse1 event12
B: PROP=8
B: EV=b
B: KEY=e420 70000 0 0 0 0
B: ABS=260800001000003

Is there anything I can do to help solve the remaining issues ?

Luiz Covo F. (luiz-covo) wrote :

@ Renato

Hi, Renato. In order to install the driver follow the steps bellow (as advised by quarara #212):

1) Extract psmouse-alps-dst-1.0.tbz in /usr/src/ sudo rights. Extracting it on the Downloads folder (right click the file -> Extract here) and moving it with the following command in the terminal also works:

sudo mv psmouse-alps-dst-1.0 /usr/src

ps: Note that the folder you need to move is inside 'usr/src/' folder that you extracted.

2) Go to /usr/src/ and then just give those commands in the terminal:
sudo dkms build psmouse/alps-dst-1.0
sudo dkms install psmouse/alps-dst-1.0
sudo rmmod psmouse && sudo modprobe -v psmouse

Good luck and let me know if it works for you!

Luiz Covo F. (luiz-covo) wrote :

@ Vince

Vince, try to give your mouse and touchpad the following settings and see if the pointer movement improves its behavior:
Acceleration: something beetween medium and slow.
Sesitivity: High

Do the same at mouse and touchpad settings...

Download full text (5.2 KiB)

Hi Luiz,

Thank you!

i guess i have something wrong again, but the driver is
installed successfully!

sudo dkms install psmouse/alps-dst-1.0
Module psmouse/alps-dst-1.0 already installed on kernel
3.2.0-32-generic-pae/i686
 ^ so everything is ok, no errors during install.

i restarted ubuntu and log-in again

$ 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)]
⎣ 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)]
    ↳ Sleep Button id=10 [slave keyboard (3)]
    ↳ Laptop_Integrated_Webcam_HD id=11 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
    ↳ Dell WMI hotkeys id=14 [slave keyboard (3)]

so I run
xinput set-prop 4 "Device Enabled" 0
and them, when I 'touch the touchpad', x restarted with some fail,

I guess i need to uninstall Virtual core XTEST pointer,

how is your output for dmesg | grep -i mouse ?
 dmesg | grep -i mouse
[ 2.000752] mousedev: PS/2 mouse device common for all mice
[ 18.925156] input: PS/2 Generic Mouse as
/devices/platform/i8042/serio1/input/input7
[ 469.277820] input: PS/2 Generic Mouse as
/devices/platform/i8042/serio1/input/input13

Again, thank you (and if you is here in São Paulo/Augusta,'ll buy you a
beer the 18am!)
On Fri, Oct 19, 2012 at 12:01 PM, Luiz Covo F. <email address hidden>wrote:

> @ Vinc
>
> Vince, try to give your mouse and touchpad the following settings and see
> if the pointer movement improves its behavior:
> Acceleration: something beetween medium and slow.
> Sesitivity: High
>
> Do the same at mouse and touchpad settings...
>
> --
> You received this bug notification because you are subscribed to a
> duplicate bug report (903236).
> https://bugs.launchpad.net/bugs/606238
>
> Title:
> synaptic touchpad not recognized on dell latitude e6510 and others
>
> Status in The Linux Kernel:
> Fix Released
> Status in “linux” package in Ubuntu:
> In Progress
> Status in “linux” source package in Precise:
> Fix Released
> Status in “linux” source package in Quantal:
> In Progress
> Status in “linux” package in Arch Linux:
> Fix Released
> Status in openSUSE:
> New
>
> Bug description:
> It wrongly recognized as PS/2 Generic Mouse. And then scrolling does
> not work, but tapping does.
>
> ProblemType: Bug
> AplayDevices:
> **** List of PLAYBACK Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> Architecture: i386
> ArecordDevices:
> **** List of CAPTURE Hardware Devices ****
> card 0: Intel [H...

Read more...

renato (renato-cron) wrote :
Download full text (6.0 KiB)

Hi!

Now it's working (i need to configure it more, but it's ok, i just
really-wanna-this-driver for stop clicking while i type)

to solve, i ran
$ sudo mv /etc/modprobe.d/psmouse.conf ~/
I should rm, but you know, best a weird mouse, than nothing!
(the content was 'options psmouse proto=imps')

Thank you all very much, contributing with kernel and make new users very
happy!

On Fri, Oct 19, 2012 at 12:50 PM, Renato Santos <email address hidden>wrote:

> Hi Luiz,
>
> Thank you!
>
> i guess i have something wrong again, but the driver is
> installed successfully!
>
> sudo dkms install psmouse/alps-dst-1.0
> Module psmouse/alps-dst-1.0 already installed on kernel
> 3.2.0-32-generic-pae/i686
> ^ so everything is ok, no errors during install.
>
> i restarted ubuntu and log-in again
>
> $ 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)]
> ⎣ 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)]
> ↳ Sleep Button id=10 [slave keyboard (3)]
> ↳ Laptop_Integrated_Webcam_HD id=11 [slave keyboard (3)]
> ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
> ↳ Dell WMI hotkeys id=14 [slave keyboard (3)]
>
> so I run
> xinput set-prop 4 "Device Enabled" 0
> and them, when I 'touch the touchpad', x restarted with some fail,
>
> I guess i need to uninstall Virtual core XTEST pointer,
>
> how is your output for dmesg | grep -i mouse ?
> dmesg | grep -i mouse
> [ 2.000752] mousedev: PS/2 mouse device common for all mice
> [ 18.925156] input: PS/2 Generic Mouse as
> /devices/platform/i8042/serio1/input/input7
> [ 469.277820] input: PS/2 Generic Mouse as
> /devices/platform/i8042/serio1/input/input13
>
> Again, thank you (and if you is here in São Paulo/Augusta,'ll buy you a
> beer the 18am!)
> On Fri, Oct 19, 2012 at 12:01 PM, Luiz Covo F. <email address hidden>wrote:
>
>> @ Vinc
>>
>>
>> Vince, try to give your mouse and touchpad the following settings and see
>> if the pointer movement improves its behavior:
>> Acceleration: something beetween medium and slow.
>> Sesitivity: High
>>
>> Do the same at mouse and touchpad settings...
>>
>> --
>> You received this bug notification because you are subscribed to a
>> duplicate bug report (903236).
>> https://bugs.launchpad.net/bugs/606238
>>
>> Title:
>> synaptic touchpad not recognized on dell latitude e6510 and others
>>
>> Status in The Linux Kernel:
>> Fix Released
>> Status in “linux” package in Ubuntu:
>> In Progress
>> Status in “linux” source package in Precise:
>> Fix Released
>> Status in “linux” source package in Quanta...

Read more...

Download full text (3.3 KiB)

@ Renato

It seems that you don't have the Alps driver installed... Here is my xinput list:

xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Mouse id=12 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=15 [slave pointer (2)]
⎜ ↳ Apple Wireless Mouse 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)]
    ↳ Power Button id=8 [slave keyboard (3)]
    ↳ Sleep Button id=9 [slave keyboard (3)]
    ↳ Laptop_Integrated_Webcam_HD id=10 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
    ↳ Dell WMI hotkeys

And here is my output for dmesg | grep -i mouse:

dmesg | grep -i mouse
[ 0.711739] mousedev: PS/2 mouse device common for all mice
[ 25.421139] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input11
[ 351.924238] magicmouse 0005:05AC:030D.0001: >unknown main item tag 0x0
[ 352.002836] input: Apple Wireless Mouse as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/bluetooth/hci0/hci0:21/input12
[ 352.003198] magicmouse 0005:05AC:030D.0001: >input,hidraw0: BLUETOOTH HID v0.84 Mouse [Apple Wireless Mouse] on E0:06:E6:DC:AF:6E
[46559.042801] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input13
[46927.645847] psmouse serio1: >alps: E6 report: 00 00 64
[46927.669350] psmouse serio1: >alps: E7 report: 73 03 50
[46927.688820] psmouse serio1: >alps: Model=26, proto_version=5
[46928.101899] psmouse serio1: >alps: E6 report: 00 00 64
[46928.125229] psmouse serio1: >alps: E7 report: 73 03 50
[46928.143586] psmouse serio1: >alps: Model=26, proto_version=5
[46929.621579] input: PS/2 Mouse as /devices/platform/i8042/serio1/input/input14
[48944.734103] magicmouse 0005:05AC:030D.0002: >unknown main item tag 0x0
[48944.788729] input: Apple Wireless Mouse as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/bluetooth/hci0/hci0:21/input16
[48944.789303] magicmouse 0005:05AC:030D.0002: >input,hidraw0: BLUETOOTH HID v0.84 Mouse [Apple Wireless Mouse] on E0:06:E6:DC:AF:6E

Note: This Wireless Mouse/magic mouse that appears at my xinput is a Apple external mouse that I was using in order to be able to scroll...

Try to remove what you have already intalled with:

sudo dkms remove psmouse/[the drivers you have installed] --all

And do it again to see if it works...

Very important: I am already running on Ubuntu 12.10 Quantal Quetzal and that means that my Kernel release is already the 3.5.0-17-generic. I saw that you are still using the 3.2. I highly reccomend the upgrade for you not just becouse of the touchpad function but also for the better support for the Ivybridge Intel...

Read more...

Download full text (7.2 KiB)

@ Luiz

okay! I will keep ubuntu 10.04 for a while, a week, perhaps.

Like I said, when I (re)moved the file, and restart, the driver started:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Mouse id=13 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=14 [slave pointer (2)]

My laptop don't freeze because of the Ivybridge, i'm using
https://github.com/Bumblebee-Project/Bumblebee, it looks good, but some
webgl don't work, but it's okay!

On Fri, Oct 19, 2012 at 1:52 PM, Luiz Covo F. <email address hidden> wrote:

> @ Renato
>
> It seems that you don't have the Alps driver installed... Here is my
> xinput list:
>
> xinput list
> ⎡ Virtual core pointer id=2 [master pointer
> (3)]
> ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer
> (2)]
> ⎜ ↳ PS/2 Mouse id=12 [slave pointer
> (2)]
> ⎜ ↳ AlpsPS/2 ALPS GlidePoint id=15 [slave pointer
> (2)]
> ⎜ ↳ Apple Wireless Mouse 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)]
> ↳ Power Button id=8 [slave keyboard
> (3)]
> ↳ Sleep Button id=9 [slave keyboard
> (3)]
> ↳ Laptop_Integrated_Webcam_HD id=10 [slave keyboard
> (3)]
> ↳ AT Translated Set 2 keyboard id=11 [slave keyboard
> (3)]
> ↳ Dell WMI hotkeys
>
> And here is my output for dmesg | grep -i mouse:
>
> dmesg | grep -i mouse
> [ 0.711739] mousedev: PS/2 mouse device common for all mice
> [ 25.421139] input: PS/2 Generic Mouse as
> /devices/platform/i8042/serio1/input/input11
> [ 351.924238] magicmouse 0005:05AC:030D.0001: >unknown main item tag 0x0
> [ 352.002836] input: Apple Wireless Mouse as
> /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/bluetooth/hci0/hci0:21/input12
> [ 352.003198] magicmouse 0005:05AC:030D.0001: >input,hidraw0: BLUETOOTH
> HID v0.84 Mouse [Apple Wireless Mouse] on E0:06:E6:DC:AF:6E
> [46559.042801] input: PS/2 Generic Mouse as
> /devices/platform/i8042/serio1/input/input13
> [46927.645847] psmouse serio1: >alps: E6 report: 00 00 64
> [46927.669350] psmouse serio1: >alps: E7 report: 73 03 50
> [46927.688820] psmouse serio1: >alps: Model=26, proto_version=5
> [46928.101899] psmouse serio1: >alps: E6 report: 00 00 64
> [46928.125229] psmouse serio1: >alps: E7 report: 73 03 50
> [46928.143586] psmouse serio1: >alps: Model=26, proto_version=5
> [46929.621579] input: PS/2 Mouse as
> /devices/platform/i8042/serio1/input/input14
> [48944.734103] magicmouse 0005:05AC:030D.0002: >unknown main item tag 0x0
> [48944.788729] input: Apple Wireless Mouse as
> /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/...

Read more...

I have a Dell Latitude E5530 running Ubuntu 12.10 Quantal Quetzal and Touchpad is not working, its identified like a PS2 mouse.

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=12 [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)]
    ↳ Power Button id=8 [slave keyboard (3)]
    ↳ Sleep Button id=9 [slave keyboard (3)]
    ↳ Laptop_Integrated_Webcam_E4HD id=10 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
    ↳ Dell WMI hotkeys id=13 [slave keyboard (3)]

Midhat (midhatali-m) wrote :

My comment number 179 still holds. The Alps device shows up in xinput, but the mouse cursor doesnt move.

Dave Turvene (dturvene) wrote :

Second of two patch files for alps support.

Changed in linux (Ubuntu):
status: In Progress → Fix Committed
assignee: nobody → Dave Turvene (dturvene)
Florin9doi (florin9doi) wrote :

Can anyone capture only the data that is transmitted when Fn+F3 is pressed ? I'd like to have the the commands to turn on/off the led.

The attachment "Working Alps touchpad for Dell E6430 from Ben Garami" of this bug report has been identified as being a patch. The ubuntu-reviewers team has been subscribed to the bug report so that they can review the patch. In the event that this is in fact not a patch you can resolve this situation by removing the tag 'patch' from the bug report and editing the attachment so that it is not flagged as a patch. Additionally, if you are member of the ubuntu-reviewers team please also unsubscribe the team from this bug report.

[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]

tags: added: patch

"+With protocol versions 3/4/6, the E7 report model signature is always
 73-02-64. To differentiate between these versions, the response from the
 "Enter Command Mode" sequence must be inspected as described below."

AlpsV5 report 73-03-0a and AlpsV6 report 73-03-50.

"+bit 0x20 in byte 0. The format of the multi-touch packet is:
+
+ byte 0: 1 1 1 f2 1 f1 f0 x22
+ byte 1: oX y6 y5 y 4 y3 y2 y1 y0
+ byte 2: oY x2 x1 y12 y11 y10 y9 y8
+ byte 3: 0 x21 x20 x19 1 x18 x17 x16
+ byte 4: 0 x8 x7 x6 x5 x4 x3 x2
+ byte 5: 0 x15 x14 x13 x12 x11 x10 x9"

there is no y7 and x0

DubelBoom (ido-kahana) wrote :

I have problems with "sudo dkms build psmouse/alps-dst-1.0".
After writing that in the terminal (of course I'm at usr/src/psmouse-alps-dst-1.0) I get:
Creating symlink /var/lib/dkms/psmouse/alps-dst-1.0/source ->
                 /usr/src/psmouse-alps-dst-1.0

DKMS: add completed.
Error! Your kernel headers for kernel 3.5.0-17-generic cannot be found.
Please install the linux-headers-3.5.0-17-generic package,
or use the --kernelsourcedir option to tell DKMS where it's located

After writing:
sudo dkms install psmouse/alps-dst-1.0
sudo rmmod psmouse && sudo modprobe -v psmouse

It don't work... :(
I'm using Ubuntu 12.10 64bit, and I had no problems in Linux Mint 13 KDE 64bit.

Thanks!

Harish (mgharish) wrote :

I am able to use the touchpad in Dell Inspiron N5110 now. Thank you very much.

Steps I followed:

Download http://www.dahetral.com/public-download/psmouse-alps-dst-1.0.tbz/at_download/file

Install Dynamic Kernel Module Support package if you don't have it already:
$ sudo apt-get install dkms

Extract the downloaded package and move it to the /usr/src location:
$ cd download_path
$ tar xf psmouse-alps-dst-1.0.tbz
$ sudo mv usr/src/psmouse-alps-dst-1.0 /usr/src/

Build and use the module:
$ cd /usr/src
$ sudo dkms remove psmouse/alps-dst-1.0 --all
$ sudo dkms build psmouse/alps-dst-1.0
$ sudo dkms install psmouse/alps-dst-1.0
$ sudo rmmod psmouse && sudo modprobe -v psmouse

Now go to System Settings -> Mouse and Touchpad. You should see the Touchpad tab also :-)

Hi,

I am running a new Dell Latituted E6530 and I ran into the problem described in this thread on Ubuntu 12.10 64-bit.

Unfortunately, I have to report that Dave Turvene's kernel patch candidate did not work for me (or only in a limited way). However, Ben Gamari's patch did do the trick for me. So, Dave, I fear your patch does not work for the E6530 yet. I will gladly help you fixing this by testing other variants of your patch on my laptop or provide you with the output of some command or other. Just tell me what you need.

In more detail:

First I tried out Dave's patch. I followed exactly Harish's instructions of comment #242.

This was only a partial success.
Afterwards, I finally had a "Touchpad" tab under "System Settings->Mouse and Touchpad". However, neither edge-scrolling nor two-finger-scrolling worked. Although I could now enable both of these options, they did not actually _work_. It still simply wouldn't let me scroll, even though I enabled both options (in turn).

I stress that my touchpad was correctly recognized:

$ xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=12 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=13 [slave pointer (2)]
[snip]

So, I decided to give Ben's patch a try. I followed exactly useResa's instructions posted at
http://resalxh.wordpress.com/2012/09/18/ubuntu-12-04-lts-x64-the-next-step-getting-touchpad-working/

This worked like a charm! :-)
I can now choose between edge-scrolling and two-finger scrolling. Both are working.
It leaves a slightly bittersweet feeling though, since Dave's patch which will (or has?) be(en) submitted as a kernel patch candidate does not work. Can we fix this? I will help out as best I can.

On a side-note, "horizontal two-finger scrolling" does not work with either Dave's or Ben's patch, but who needs that? ;-) (the pointer will jump around wildly if I try this with Ben's patch). Horizontal edge-scrolling does work with Ben's patch.

In any case, kudos to Dave Turvene and Ben Gamari for their work, as well as Harish and useResa for their helpful comments!

Cheers,

Malte

Update: Dave's patch in version 0.4 works on my Dell Latitude E6530!
So it looks like something broke in between version 0.4 and version 1.0...

Excerpt from /var/log/syslog in case this is of interest:

[ 4964.004717] psmouse serio1: >alps: E6 report: 00 00 64
[ 4964.022968] psmouse serio1: >alps: E7 report: 73 03 0a
[ 4964.038963] psmouse serio1: >alps: Model=24, proto_version=4

Well, just for the heck of it, I took the source code from version 1.0, and then in src/alps.c I simply replaced the function alps_hw_init_v5 with the old function alps_hw_init_v5 from version 0.4.

And what do you know? This works fine! So the regression bug has happened in the heavy modifications made to the function alps_hw_init_v5 in the version change between 0.4 and 1.0. Other than this function, the source code of version 1.0 seems to work perfectly. Hope that helps.

pfoo (pfoo) wrote :

I can confirm that Dave's 1.0 patch is not working for latitude e6530 (the touchpad is detected, but still act like a standard mouse). Switching back to 0.4 patch which is working great.

@Dave Turvene:

Since I had already narrowed down the problem exhibited on my Latitude E6530 in your psmouse-alps-patch to the very function which was to blame, while I was at it I thought I might as well narrow it down even further. And so I did.

I took the source code of function alps_hw_init_v5 from version 0.4 and gradually changed it so as to eventually look like the source code of function alps_hw_init_v5 from version 1.0, recompiling and reloading the module in each step to verify it still works. And thus I found the error.

Basically, in line 1690 of src/alps.c of version 1.0 of your patch, there is the command
ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_WRAP);
However, version 0.4 executed this command thrice, while version 1.0 executes it only once. This makes the whole difference. You have to call it _thrice_ for scrolling to work on my laptop. Not once. Not twice (I tried that too). But thrice. Don't ask me why, but that's the way it is :-)

I have attached a patch intended to be applied against the psmouse-alps-patch available at
http://www.dahetral.com/public-download/psmouse-alps-dst-1.0.tbz/at_download/file

By downloading that file, then applying my patch to it, then building and installing and loading the module, touchpad scrolling works fine on my Dell Latitude E6530, both edge-scrolling and two-finger-scrolling.

I have also noticed two other things during my code review that I would like to bring to your attention:

1. There is a very similar situation earlier on, namely in line 1659 of src/alps.c, where also the command
ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_WRAP);
is executed exactly once in version 1.0, while before (version 0.4) it was called thrice at that point. Here, both variants (calling it either once or thrice) work fine on my laptop, but since later, in line 1690 (as explained above) it seems that you *have* to execute the command thrice, it might be "cleaner" from the point of view of the protocol to also call it thrice here. You will have to decide that.

2. Just below, in line 1660, there is the command
ps2_command(ps2dev, param, PSMOUSE_CMD_GETINFO);
where 'param' is just an array with uninitialized values. I don't know what PSMOUSE_CMD_GETINFO does, but I was just a bit astonished that we should need to pass an array of uninitialized parameters. In any case, passing NULL instead of 'param' at that point works fine too. Might be cleaner. Or does PSMOUSE_CMD_GETINFO actually fills this array? Again, your choice.

Cheers,

Malte

Andrew Majorov (encube-ul) wrote :

I happily confirm that Dave's module located at http://www.dahetral.com/public-download/psmouse-alps-dst-1.0.tbz works fine on Dell Vostro 3460 (3460-3937). I'm not currently experiencing any problems or glitches. Great thanks for such an amazing work!

There are some shell commands output:

$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Mouse id=13 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=14 [slave pointer (2)]
[...]

$ dmesg | grep psmouse
[ 20.139702] psmouse serio1: alps: E6 report: 00 00 64
[ 20.164613] psmouse serio1: alps: E7 report: 73 03 50
[ 20.183643] psmouse serio1: alps: Model=26, proto_version=5
[...]

I'm glad I do not have to stick with Dell's terrible official deb package any longer.

Dave Turvene (dturvene) wrote :

@malte skoruppa

Thanks for your efforts on this. Yes, I made mistake(s) converting the V5 init sequence, which you debugged and successfully fixed. I have added your changes to a new patch candidate at [1]

Please test. If I hear nothing in a couple days I will resubmit the E6430/E6530 patch to ubuntu.

To answer your questions:

Q1) Yes, I think it is the same thrice PSMOUSE_CMD_RESET_WRAP sequence. This is the indicator to enter "command mode", where the touchpad can be configured. I have added this to the code. Ben and I have not figured out what is being configured when in command mode, just that it works.

Q2) PSMOUSE_CMD_GETINFO returns a three-byte status code in the param field. It is important to determine the alps touchpad version for the so-called "E6" and "E7" code fragments . I could not figure out what the three-byte value indicates at other times.

[1]: http://www.dahetral.com/public-download

Dave, I can happily confirm that version 1.1 of your patch works like a charm on my E6530!

Thanks a lot for all your work, and good luck with the kernel patch submission. It will be great to have this in the kernel at some point in the future!

Cheers,

Malte

Hi,

Thanks Dave for your patch, but it doesn't work for now on my latitude E6230.
I've tried the versions 0.4 and 1.1 without any success (following instruction in comment #242).
First, I've tested the 1.1 version, an I was allowed to open the touchpad configuration (in system settings), but the touchpad didn't work anymore. But xinput --list was showing something about an alps touchpad.

Then, I've rebooted, nothing better, so I've give a chance to the 0.4. Noting more.
Now, either the 0.4 version or the 1.1 version doesn't give anything: nothing in xinput --list, impossible to open the touchpad configuration ("no touchpad found") and the touchpad is totally inactive.

The kernel wasn't updated recently, and was the same before and after the reboot: 3.5.0-17-generic
My current xinput --list :
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]

In all cases, I find something like that in syslog:
[ 6.661775] psmouse serio1: >alps: E6 report: 00 00 64
[ 6.680021] psmouse serio1: >alps: E7 report: 73 03 0a
[ 6.695759] psmouse serio1: >alps: Model=24, proto_version=4
[ 19.557043] psmouse serio1: >Failed to enable mouse on isa0060/serio1

Markus Golser (golserma) wrote :

I have the Latitude E6230 and the same problem :)

Thank you for your work.

Ruben Gomez (rgagudo) wrote :

Look at this tutorial, it solved the problem for me:

http://nwoki.wordpress.com/2012/10/02/multitouch-fix-for-alps-touchpad/

@Ruben I've tried the given tutorial, using the alps.c patch. The touchpad doesn't work anymore. But I can see it with xinput:
$ xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Ci25m Notebk Optical id=10 [slave pointer (2)]
⎜ ↳ PS/2 ALPS DualPoint TouchPad id=14 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
$ grep mouse /var/log/syslog
Nov 2 14:14:43 CFP6063 kernel: [17252.789476] psmouse serio1: >alps: Failed to init: 15 (cmd=e7)
Nov 2 14:14:48 CFP6063 kernel: [17258.373477] psmouse serio1: >Failed to enable mouse on isa0060/serio1

Dave Turvene (dturvene) wrote :

@Nicolas D.

Your alps touch pad on the E6230 is failing to complete the initialization sequence. It looks like it has the same signature as the alps touchpad on the E6430 and E6530 so the system thinks it's configured but it's not operational. Possible solutions:

1. Hardware failure and the touchpad needs to be physically replaced
2. This is a new alps model, different from the "new" one Ben Garami reverse-engineered a couple months ago for the E6430. I did the same steps for the N5110 for it's signature - very technical.
3. hack the alps dkms to glean more information about why it's failing.

The fix for (1) is to take it to a Dell dealer.

The fix for (2) is to re-trace Ben's steps to analyze the touchpad. He was mostly posting in a looong thread on the linux-input newsgroup under the title "New Alps protocol in the wild?", which can be googled.

The eureka post is at: http://www.spinics.net/lists/linux-input/msg21993.html

Thanks Dave.

As my touchpad was basically working before, I don't think that the touchpad is bad. But I will check on other E6230 …

For the solution (2), I will maybe take a look at, but it seems hard.

Thank you

Markus Golser (golserma) wrote :

@Dave Turvene i have a latitude E6230 and I get the same error. I have to poweroff (not reboot) the system in order to get the touchpad working again.

@ Markus and Nicolas

Both of your E6230 systems have the same symptoms so I think it is
systematic. My thoughts:

Problem summary:

The E6230 touchpad has the same signature and command-mode response as
the E6430, so it is detected as a V4 protocol. The initialization
sequence fails about halfway, putting the device in an unknown state.
The psmouse driver completes initialization but the hardware is
unresponsive. Reboot does not reset the touchpad because the driver is
unresponsive. Power cycle resets the device.

Workaround:

The E6430 code fails on the E6230. If Ben's E6230 code is removed from
alps.c your touchpad will default to the defacto 3-byte ps2 mode, which
works but is limited.

Possible Fix Paths:

1. Somehow the E6430 and E6230 must be identified differently (not just
the E7 sequence and command mode response, which are identical) in order
to differentiate the initialization paths. Then the E6230 must be
reverse engineered to capture the desired init sequence and packet
processing.

2. Ben Garami's initialization reverse engineering sequence is not
complete. I know he did not spend a lot of time analyzing it. The init
sequence must be captured for the E6230 and blended with the E6430 hw init.

Does the Dell(Alps) touchpad driver for the E6430 say it supports the
E6230? If so then Ben's sequence is not complete.

Hello all,

I successfully installed 1.0 Dave's driver on my Dell Latitude E6510 with the following debug info (maybe it will be helpful):

[36548.472263] psmouse serio1: alps: E6 report: 00 00 64
[36548.492127] psmouse serio1: alps: E7 report: 73 02 64
[36548.508532] psmouse serio1: alps: Model=22, proto_version=2
[36548.934127] psmouse serio1: alps: E6 report: 00 00 64
[36548.953326] psmouse serio1: alps: E7 report: 73 02 64
[36548.970979] psmouse serio1: alps: Model=22, proto_version=2
[36549.067184] psmouse serio1: alps: trackstick E7 report: 42 02 14
[36549.454898] input: DualPoint Stick as /devices/platform/i8042/serio1/input/input27
[36549.468713] input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input28

Now I'm just testing it...

Gary Ferrao (garyf) wrote :

thanks Dave.. my touchpad is much better off now! :-)
i can enable/disable it with Fn+F3 and it supports edge scrolling, multi finger scrolling :-)
i used your package psmouse-alps-dst-0.4

i tested it on my N5110

if you are already into it, i would suggest you to complete the driver by:
1. figuring out how to toggle the LED light above it... It happened with the 32-bit pre installed Ubuntu 11.10 they shipped it with, but who wants 11.10 32 bit when my lappy can support 64 bit Ubuntu 12.04 (oh yeah... later on figured that it can't support the touchpad and nvidia optimus graphics :p . but it was too late as i was (over?)confident that Ubuntu 12.04 will work as N5110 was "certified" hardware, and so wiped out the previous OS :-( woe... )
2. does this thing support multi-finger zoom in/out?

Thanks a LOT :-D

@ dturvene - Thanks to you and all the others who helped make this fix for the alps touchpad available. I tested it on my Dell 15R N5110 and am very happy to be able to use the touchpad. Cheers!

Adi (aditzah-z) wrote :

I tested the patch on my 15R and found the same problems indicated by Miguel Ramires (he tested it on a Vostro model): I quote from Miguel:
"- Pointer movement is, as described by FCG, kind of choppy. Sometimes it stops moving and doesn't respond to input for a second or so. A little bit frustrating, I might say.
- Also, movement is noticeable slower and doesn't respond to sensibility adjustment in system configuration."
and I might add to this description:
- I have noticed that when moving the finger very slowly on the touchpad the pointer does not move at all. I have to give it acceleration for it to move.
I am surprised to see a few guys here with Dell 15R tested the patch and say it works fine. Are we the only ones that found these issues?

Might be worth double checking there's no difference between the USB/Trackpad behaviour when powered, versus running on battery. I have sometimes seen artefacts similar to those you describe (lost input events) on my Q15R (N5100) when unpowered, which resolve themselves the moment you plug in the power cable.

Dave Turvene (dturvene) wrote :

I have attached the linux canonical patch file for the fixes by Malte for the E6530. This should be applied after patch 1 submitted in post 236 and patch 2 submitted in post 237.

@Ubuntu
Based on comments in the subsequent two weeks since I submitted the patches, it looks like there may be a new Alps touchpad protocol for the Dell E6230. This bug has been open for almost 2.5 years, with patches submitted.

Dave Turvene (dturvene) wrote :

@Miguel and Adi

I am almost certain your problems are caused by your X tuning and not the driver. Make sure you are using the ALPSPS/2 ALPS Glidepoint interface and not the default PS/2 Mouse. Try using xinput setprops to tune the "Synaptics Velocity Scaling", "Synaptics Move Speed", etc.

If there are still issues, use psmouse-alps-dst-0.4 and enable DEBUG in alps.c. See the run_alps_debug shell function in alps.sh to set the sysfs alps_debug to a "deep debug" level which collects all V5 output from the driver and (on my system) dumps to syslog. It should show 6-byte packets that change linearly in the x/y planes. Please post the snippets of the log when the cursor jumps significantly.

I had installed psmouse-alps-dst-1.0 on my dell sinspiron 14R (5420) and everything worked like a charm (more or less, like described by Miguel Ramires and aditzah), but after a kernel upgrade two days ago, two fingers scrolling stopped working. Pad still was recognized by the system and was managed by synaptics except for the "two finger scrolling", which triggered messages in dmesg like
...
[ 2155.220936] psmouse serio1: alps: v6 mt 80, resetting
[ 2155.222078] psmouse serio1: alps: v6 mt 87, resetting
[ 2155.223352] psmouse serio1: alps: v6 mt 8, resetting
[ 2155.224735] psmouse serio1: alps: v6 mt 18, resetting
[ 2155.225870] psmouse serio1: alps: v6 mt 0, resetting

I have installed manually psmouse-alps-dst-1.1 and the issue persisted, then reverted back to psmouse-alps-dst-1.0 and it works correctly now.
I guess something was not fully right with that las patch for E6510...

Does somebody tried psmouse-alps-dst-1.0.tbz on Dell Latitude E6510 instead of me?!

MIchal ThomaT (michal-thoma) wrote :

I tested psmouse-alps-dst-1.1.tbz with Quantal on Dell 3360 and multitouch does work. Side scrolling is not working though pobablz just need to be set correct margins for the touchpad. ALT-F3 switch off/on is working, though the LED indicator is not (as expected).

For me trying out these 1.0 and 1.1 drivers on a Dell n5110 resulted only
in disabling the touchpad completely.

On Thu, Nov 22, 2012 at 1:39 PM, MIchal ThomaT <email address hidden>wrote:

> I tested psmouse-alps-dst-1.1.tbz with Quantal on Dell 3360 and
> multitouch does work. Side scrolling is not working though pobablz just
> need to be set correct margins for the touchpad. ALT-F3 switch off/on is
> working, though the LED indicator is not (as expected).
>
> --
> You received this bug notification because you are subscribed to a
> duplicate bug report (903236).
> https://bugs.launchpad.net/bugs/606238
>
> Title:
> synaptic touchpad not recognized on dell latitude e6510 and others
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/linux/+bug/606238/+subscriptions
>

Hello,

I can confirm that the patch, psmouse-alps-dst-0.4 is working fine and now i have following features on Dell Inspiron N5110:

1) Touch to Click.
2) DIsable Touchpad While Typing.
3) Two Finger Scrolls
4) Edge Scroll
5) Disable touchpad by FN+F3

After installing the patch you might have sluggish TouchPad, to fix it, open terminal and type:

synclient AccelFactor=5
synclient MaxSpeed=3

Reboot again, and it will be like Windows 7 like touchpad.

(Tested in Linux Mint 12)

Best,

Ahsan

Download full text (3.8 KiB)

Looks like there are different versions of the touchpad on N5110. White the
patch is working for most people, a few (including me) have experienced
complete loss of functionality with this patch on N5110

On Fri, Nov 23, 2012 at 10:51 AM, Ahsan Raza <email address hidden>wrote:

> Hello,
>
> I can confirm that the patch, psmouse-alps-dst-0.4 is working fine and
> now i have following features on Dell Inspiron N5110:
>
> 1) Touch to Click.
> 2) DIsable Touchpad While Typing.
> 3) Two Finger Scrolls
> 4) Edge Scroll
> 5) Disable touchpad by FN+F3
>
>
> After installing the patch you might have sluggish TouchPad, to fix it,
> open terminal and type:
>
> synclient AccelFactor=5
> synclient MaxSpeed=3
>
> Reboot again, and it will be like Windows 7 like touchpad.
>
> (Tested in Linux Mint 12)
>
> Best,
>
> Ahsan
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/606238
>
> Title:
> synaptic touchpad not recognized on dell latitude e6510 and others
>
> Status in The Linux Kernel:
> Fix Released
> Status in “linux” package in Ubuntu:
> Fix Committed
> Status in “linux” source package in Precise:
> Fix Released
> Status in “linux” source package in Quantal:
> In Progress
> Status in “linux” package in Arch Linux:
> Fix Released
> Status in openSUSE:
> New
>
> Bug description:
> It wrongly recognized as PS/2 Generic Mouse. And then scrolling does
> not work, but tapping does.
>
> ProblemType: Bug
> AplayDevices:
> **** List of PLAYBACK Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> Architecture: i386
> ArecordDevices:
> **** List of CAPTURE Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
> Subdevices: 2/2
> Subdevice #0: subdevice #0
> Subdevice #1: subdevice #1
> AudioDevicesInUse:
> USER PID ACCESS COMMAND
> /dev/snd/controlC0: karol 2618 F.... pulseaudio
> CRDA: Error: [Errno 2] No such file or directory
> Card0.Amixer.info:
> Card hw:0 'Intel'/'HDA Intel at 0xe9660000 irq 22'
> Mixer name : 'IDT 92HD81B1C5'
> Components : 'HDA:111d76d5,1028040b,00100104'
> Controls : 26
> Simple ctrls : 16
> Date: Fri Jul 16 13:36:04 2010
> DistroRelease: Ubuntu 9.10
> HibernationDevice: RESUME=UUID=cdf10c13-029f-401b-afed-f651ca0e2cbe
> InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release i386 (20091028.2)
> MachineType: Dell Inc. Latitude E6510
> NonfreeKernelModules: nvidia
> Package: linux-image-2.6.31-22-generic-pae 2.6.31-22.60
> PccardctlIdent:
> Socket 0:
> no product info available
> PccardctlStatus:
> Socket 0:
> no card
> ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.31-22-generic-pae
> root=UUID=2f511d08-c4e9-44e6-a1d2-5be6172b18c6 ro quiet splash
> ProcEnviron:
> PATH=(custom, user)
> LANG=pl_PL.UTF-8
> SHELL=/bin/bash
> ProcVersionSignature: Ubuntu 2.6.31-22.60-generic-pae
> RelatedPackageVersions:
> linux-backports-modules-2.6.31-22-generic-pae 2.6.31-22.24
> ...

Read more...

Hi,

I succeeded in reproducing the reverse engineering steps for the Dell E6230 touchpad.

Here is an updated version of Dave's dkms module which is **ONLY** for the E6230. Starting from the init sequenced captured via qemu, I have tried to make some sense out of the commands. It seems that this init sequence is in fact quite different from that on the E6430 (which reports 73 03 0a on E7 report as well). At some point I thought that difference was related to the presence of a touchstick on 6430/6530 and not on 6230, but it seems to be more than that.

Do not use this if you do not have the same hardware as me. I do not, at the moment, know how to distinguish between the dell E6430 and dell E6230 models.

Using the newly built psmouse module, I can use the rightmost area of the pad to scroll, which is all I need. I don't know about other useful features, probably I would need to enable them from my windows VM before being able to see how they get initialized. This is something I can do, if deemed useful.

It would be nice to tidy up this set of patches, in particular:
 (1) make the v5 and v6 init sequences more readable
 (2) differentiate between the various models (this applies to the models whose E7 report says 0x73 0x03 00x0a).

Doing (1) is easy, but a test host is needed. Doing (2) requires some interaction with a user of such a platform. Volunteers ?

Best,

E.

Artiom Fiodorov (a.fiodorov) wrote :

Dear Emmanuel Thomé,

Thank you for your wonderful patch and works well on my 6230.
Is there any way you could add middle click feature using a tap of 2 fingers once you get time?

Artiom.

Sure. Not today, though.

All these features are configurable with the windows touchpad software. Assuming they map to visible config orders sent to the device upon init, I can reverse-engineer them and enable them from the driver.

I wonder, though, what is the usual choice done for touchpad hardware on linux. Are we _always_ enabling all features, or is there a mechanism to enable them just on demand ? I have seen no such thing in the sources (haven't searched much either). This sort of touchpad includes features which can be an annoyance for people not used to them, so the choice of enabling everything is not necessarily the right one. E.g. my touchpad seems to have pinch-to-zoom functionality (not even tried). I don't exactly know to what this would map under linux, nor whether this stands a chance of working in the first place, but I presume not everyone would love this feature.

Best,

E.

Hi,

I just tested Emmanuel's driver patch for the E6230 on my E6530 (which behaves identically as the E6430, see above), just to be sure.

I can confirm that Emmanuel's patch breaks compatibility with E6430/E6530. While xinput -list does report
$ xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=11 [slave pointer (2)]
⎜ ↳ PS/2 ALPS DualPoint TouchPad id=14 [slave pointer (2)]
(...), I do not even have a "Touchpad" tab anymore in System Settings -> Mouse and Touchpad.

As pointed out by Dave in comment #259, either the init sequence for the E6230 and the E6430/E6530 have to be blended together, or some way has to be found to distinguish the two.

Blending does not seem to be trivial. Looking at Dave's alps_hw_init_v5() from v1.1 and Emmanuel's alps_hw_init_v5_mine(), the two functions appear to be so radically different that I have no idea how to even start about this. This is further complicated by the fact that noone here has a E6230 AND a E6430/E6530 at his disposition, so testing can at best be done by sending pieces of code back and forth (using this bugtracker as a communication medium).

As far as distinguishing the two is concerned, since both have the same E6 and E7 reports and command mode responses, I do not know how this could be achieved either.

I am glad to help out by testing any piece of driver code you throw at me on my E6530, but I lack the time to plunge into this myself.

Lastly, to answer Dave's question from comment #259, namely
"Does the Dell(Alps) touchpad driver for the E6430 say it supports the E6230? If so then Ben's sequence is not complete."
...it seems that the answer is yes, the Dell drivers for both models are identical. See these two links:

* http://www.dell.com/support/drivers/us/en/19/DriverDetails/Product/latitude-e6230?driverId=RYCJX&osCode=W732&fileId=3089898810
* http://www.dell.com/support/drivers/us/en/19/DriverDetails/Product/latitude-e6430?driverId=RYCJX&osCode=W732&fileId=3089898810

Note that
* the URLs differ only in the model number,
* the two actual pages differ only in minute details,
* in particular the two referenced drivers ("Hard Drive" format and "Update Package" format) are identical (I wgot and diff'ed them),
* and the "Compatibility" tab on both pages explicitly lists the E6230, E6430 and E6530 models.

So there has to be some way to either distinguish the two models or blend the init sequences :-)

Best,

Malte

I just realized one could completely misread an important point that I wanted to make. I did not mean that on the two linked Dell.com URLs, the "Hard Drive format" driver and the "Update Package Driver" are identical. Of course they are not.

What I meant is that both
* the "Hard Drive format" driver on the E6230 page and the "Hard Drive format" driver on the E6430 page are identical, and
* the "Update Package format" driver on the E6230 page and the "Update Package format" driver on the E6430 page are identical.

In other words, Dell provides the very same driver for both models on Windows, as is also clear by looking at the "Compatibility" tab on either page, which lists all these E6*30 models. Hence it is possible to write a unified driver for both models.

Florin9doi (florin9doi) wrote :

> It would be nice to tidy up this set of patches, in particular:
> (1) make the v5 and v6 init sequences more readable
> (2) differentiate between the various models (this applies to the models whose E7 report says 0x73 0x03 00x0a).

alps_hw_init_v6 can be reduced at following commands:

static int alps_hw_init_v6(struct psmouse *psmouse)
{
 struct ps2dev *ps2dev = &psmouse->ps2dev;
 unsigned char param[2];

 ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSTREAM);

 param[0]=0x64;
 param[1]=0x28;
 ps2_command(ps2dev, &param[0], PSMOUSE_CMD_SETRATE);
 ps2_command(ps2dev, &param[1], PSMOUSE_CMD_SETRATE);

 return 0;
}

The Windows driver for latitude E6x30 probably check the DMI

Cool.

I suspected there was some clutter in there, but not to that point.

I am a bit surprised though that there is no ENABLE command in your short init sequence. Looks quite odd.

I factored the e6x30 init sequences into a common sequence (tested, works), and later ambitiously tested a merge of the v3 and v5 init sequences (untested beyond my own hardware).

Code is there.

git://github.com/emmanuelthome/psmouse-alps.git

E.

njdove (njdove) wrote :

Great work Dave and Emmanuel! My Latitude E5530's trackpad is properly detected with the current git://github.com/emmanuelthome/psmouse-alps.git. Both edge scrolling and two-finger scrolling work.

The trackpad would stop working with the versions currently available at psmouse-alps http://www.dahetral.com/public-download (0.4, 1.0, 1.1). Apparently merging your respective patches is non-trivial, but my E5530 is another data point.

In reply to #276-#277.

I was mistaken on this one. Apparently the driver does nothing regarding enabling or disabling multitouch features on the trackpad. It's only a matter of the software down the line which interprets the packet data. Nothing, in fact, recognizes more than two finger in the alps driver.

Presently, as far as I am aware, the only multitouch sequences which are interpreted are two-finger scrolling and two fingers for right click. The former works. The latter maybe works, although I must admit that for me, it is such an unusual gesture that I miss it most often. Could be me, could be incomplete code as well.

In reply to #282:

Cool. Would you be so kind to send me the output of dmesg|grep psmouse please ? Thanks.

E.

Ben Gamari (bgamari) wrote :

Another thanks to Dave and Emmanuel and sorry for not having time to undertake this refactoring myself. Very well done!

njdove (njdove) wrote :

@Emmanuel #283 Here is the "dmesg | grep psmouse" output from my Latitude E5530:

[ 19.109087] psmouse serio1: alps: E6 report: 00 00 64
[ 19.127228] psmouse serio1: alps: E7 report: 73 03 0a
[ 19.140372] psmouse serio1: alps: command mode response: 88 08 1d
[ 19.142853] psmouse serio1: alps: Model=24, proto_version=4
[ 19.575004] psmouse serio1: alps: E6 report: 00 00 64
[ 19.593142] psmouse serio1: alps: E7 report: 73 03 0a
[ 19.606502] psmouse serio1: alps: command mode response: 88 08 1d
[ 19.608881] psmouse serio1: alps: Model=24, proto_version=4
[ 19.622154] psmouse serio1: alps: command mode response: 88 08 1d

Erno Kuusela (erno-iki) wrote :

This is marked as "fix released" for Precise on 2012-09-26, but I don't see this bug mentioned in the Precise kernel
changelog and same symptom happens for me on Latitude E6230. So is this really fixed in the current Precise kernel? I assumed so and filed #1089413.

There is no fix in 12.04. Bug status is misleading.

Dave Turvene (dturvene) wrote :

I added an ACPI interface to get the REAL alps hardware type. See version 1.2 at [1].

I hacked the driver to wrap the E6/E7/command mode selecton code inside a function that checks the ACPI PS2 hardware id against a table (which has only one entry right now, "DLL04B0" for my Dell N5110. If there is no ACPI access or no entry in the HID table, it calls the old "get_model" routine.

It took me a while to figure out the ACPI language and API but it's actually fairly flexible. I had some problems with the API because it uses a lot of double pointers - which led to several kernel crashes.

Anyways, this seems to be the way the Alps drivers do it - access the ACPI DSDT table to determine the init sequence, etc., which makes a lot of sense.

Individual responses shortly....

[1]: http://www.dahetral.com/public-download

Dave Turvene (dturvene) wrote :

@florin9doi

I added in your minimal init sequence but kept getting bare_ps2_packet notices. It didn't work for me. In my 1.2 tarball I called your init "alps_hw_init_v6_minimal". The original one works fine.

@emmanuel-thome

Nice cleanup! I started to merge but the effort looked to be too great, and I have no way to test them.

@bgarami

You were the one to figure out the whole ACPI interface. That was the major technical issue. You can rest on your laurels...

@erno-iki

Someone marked this as "Fixed Released" but never submitted a patch set. Subsequently I submitted a normalized patch set to Canonical, who SHOULD merge it and submit to the linux-input group. The correct status should be "Fix Committed" but I can't change the status. Sorry for the confusion. I don't think Canonical has done anything with it but I could be wrong.

Florin9doi (florin9doi) wrote :

dturvene alps_hw_init_v6_minimal works fine if alps_get_model is run like in previous versions. For the new version, try this:

static int alps_hw_init_v6(struct psmouse *psmouse)
{
 struct ps2dev *ps2dev = &psmouse->ps2dev;
 unsigned char param[4];

 // previously sent by alps_get_model()
 // useless if alps_get_model() is run

 param[0] = 0;
 ps2_command(ps2dev, &param[0], PSMOUSE_CMD_SETRES);

 /* E7 report */
 ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21);
 ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21);
 ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSCALE21);
 ps2_command(ps2dev, NULL, PSMOUSE_CMD_GETINFO);

 /* Enter command mode */
 alps_enter_command_mode(psmouse, param);

 /* exit command mode */
 ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSTREAM);

 // end of alps_get_model duplicate

 // alps_hw_init_v6_minimal()
 ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETSTREAM);

 param[0] = 0x64;
 ps2_command(ps2dev, &param[0], PSMOUSE_CMD_SETRATE);
 param[0] = 0x28;
 ps2_command(ps2dev, &param[0], PSMOUSE_CMD_SETRATE);

 return 0;
}

I can reproduce this bug on my Latitude 6430u, the touchpad is recognised as a PS/2 Generic Mouse. I have tested psmouse-alps-dst-1.1 and I see this on my syslog:

kernel: [11302.745969] psmouse serio1: alps: E6 report: 00 00 64
kernel: [11302.764145] psmouse serio1: alps: E7 report: 73 03 0a
kernel: [11302.777507] psmouse serio1: alps: command mode response: 88 08 22
kernel: [11302.779956] psmouse serio1: alps: Unknown command mode response 22
kernel: [11304.675949] psmouse serio1: Failed to enable mouse on isa0060/serio1
kernel: [11306.948151] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input26

The response sequence 88 08 22 is a new one AFAICT, how can I help testing the current driver on this one?

I have a dell inspiron 13z, and this driver works great. I recently installed the latest ubuntu mainline kernel, 3.7.1 and I could not compile the driver. Turns out a function, input_mt_init_slots, found in include/linux/input/mt.h has changed from 2 arguments to 3 arguments.

I modified the drivers so that all of the calls to input_mt_init_slots uses three arguments with the third argument being 0. The driver compiled and appears to be working fine.

I could make a patch if nescessary.

Dave Turvene (dturvene) wrote :

@Matt

Yeah, I've received a couple "driver doesn't compile" emails recently for the newest kernels. See this issue on Arch Linux https://aur.archlinux.org/packages/psmouse-alps-driver with an appropriate work around. I don't plan on moving to a 3.5+ kernel in the near future and I have not heard ANYTHING about my patch submissions being accepted so I think submitting a patch with your 3 argument changes may be a little premature.

My suggestion is to create a new issue on the Ubuntu launchpad for the three argument problem, document your work around and point to this and the Arch Linux bug report.

BTW, I saw that Linux Journal picked Dell as the best Linux vendor. Ironic considering this thread!

Dave Turvene (dturvene) wrote :

@David J
I just saw your #291 post. Your device looks similar to the Latitude 6430, etc. that Ben reverse engineered. But it has a different command-mode response (0x88 0x08 0x22). Maybe it still conforms to the V5 protocol. To test this, add a new entry to alps_model_data and add a new command mode response check to the alps_enter_command_mode routine.

Also, what is the DSDT entry for the device? If you're using my 1.2 driver, that hardware id string should be dumped. If you're using something different, run these commands

  sudo sh -c "cat /sys/firmware/acpi/tables/DSDT > DSDT.aml"
  iasl -d DSDT.aml

and then in DSDT.dsl, search for 'Device (PS2)' or 'EisaId ("PNP0F13")' and list the corresponding _HID value.

@dturvene

Thanks for taking the time to walk me through this. The DSDT entry for my touchpad is "DLL0584", and now that I know what to look for I can see it all over the place:

/var/log/dmesg:[ 0.312892] pnp 00:0b: Plug and Play ACPI device, IDs DLL0584 PNP0f13 (active)
/var/log/udev:KERNEL[1.827693] add /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/DLL0584:00 (acpi)
/var/log/udev:DEVPATH=/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/DLL0584:00
/var/log/udev:MODALIAS=acpi:DLL0584:PNP0F13:
/var/log/Xorg.0.log:[ 6.601] (--) PCI:*(0:0:2:0) 8086:0166:1028:0584 rev 9, Mem @ 0xf7800000/4194304, 0xe0000000/268435456, I/O @ 0x0000f000/64

I have added a new line to alps_model_data in alps.c, making up the values I didn't know or copying them from the other V5 entry:

136a137,138
> /* Dell Latitude 6430u */
> { { 0x88, 0x08, 0x22 }, 0x22, ALPS_PROTO_V5, 0x8f, 0x8f, ALPS_DUALPOINT },

The touchpad is now recognized by the kernel as an Alps Dualpoint:

$ tail /var/log/syslog
kernel: [ 8248.837263] acpi_get_handle failure: status 5
kernel: [ 8248.855173] psmouse serio1: alps: E6 report: 00 00 64
kernel: [ 8248.873121] psmouse serio1: alps: E7 report: 73 03 0a
kernel: [ 8248.889559] psmouse serio1: alps: Model=25, proto_version=4
kernel: [ 8250.026387] input: DualPoint Stick as /devices/platform/i8042/serio1/input/input24
kernel: [ 8250.038950] input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input25

$ xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=11 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=14 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=16 [slave pointer (2)]

I can now change the touchpad settings via synclient / tpconfig / gnome control center. Vertical and horizontal edge scrolling work, and also disabling the touchpad while typing. 2 finger and 3 finger tapping also work, I haven't tested other multitouch gestures. If there's something else I can test/try that will help improve this driver just let me know, I'll keep an eye on this bug in case it's needed in the future.

Thanks again Dave and others for your efforts and your help with this issue.

^dj

Rafael (a5d-xacfel-s7e) wrote :

Hi Matt,
got an Dell Inspiron 13z here as well with the touchpad working but not recognized as such. Can you detail what you did to get it recognized?
Thanks!
Rafael

Rafael

Did you get it working? Here is what I did:

I down loaded the driver from Dave Turvene, http://www.dahetral.com/public-download , and built it using the suggested commands:

make -C /lib/modules/`uname -r`/build M=`pwd` psmouse.ko

Then I removed the old driver and started the new one.

sudo rmmod psmouse
sudo insmod ./psmouse.ko

Thanks again Dave, I works awesome, I don't even use the mouse now since the TP has scrolling.

Rafael (a5d-xacfel-s7e) wrote :

Hi Matt,

thanks for details. Yes, that worked perfectly - thanks Dave! :-)

After doing the change once manually (rmmod/insmod) and seeing that it worked, I simply overwrote psmouse.ko in /lib/modules/3.5.0-17-generic/kernel/drivers/input/mouse/ so now it's permanent.

Cheers,
Rafael

Kevin Cernekee (cernekee) wrote :

I spent some time playing around with the ALPS binary driver, and I found a detection/init sequence which works on both E6230 and E6430 (at least the two units I tried).

It would be helpful to see test results + dmesg dumps from users of ALPS trackpads (ANY model), as my sample size is very small and I'd like to make sure this does not cause regressions on other hardware versions.

Patches:

http://www.spinics.net/lists/linux-input/msg24494.html
http://www.spinics.net/lists/linux-input/msg24496.html
http://www.spinics.net/lists/linux-input/msg24495.html

I posted a DKMS version for 12.10 (Quantal) in my PPA:

https://launchpad.net/~cernekee/+archive/ppa

To install:

sudo -s
add-apt-repository ppa:cernekee/ppa
apt-get update
apt-get install psmouse-dkms
reboot

Masoud Abkenar (mabkenar) wrote :

Thanks to the work of Dave and David J (comment #295) and many others, I could finally make Ubuntu detect my touchpad as a touchpad on Latitude E6430u. I used version 1.1 of the driver.

xinput -list:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=12 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=13 [slave pointer (2)]

From the Ubuntu setting, I could enable two-finger scrolling (default was on Edge scrolling which also worked). I also have two finger tapping as right click. However, I can't get any other gesture work (3- and 4- finger gestures described in the page below).

@David J
Here is a list of Ubuntu multitouch gestures that you can test: https://wiki.ubuntu.com/Multitouch/

Bruno Zaidan (bzaidan) wrote :

Following Matt's instructions (comment #297), I got my TP working on Dell Inspiron 14. Thanks a lot!

Dave Turvene (dturvene) wrote :

@Kevin Cernekee

I have been asked to submit my patchset directly to the linux-input newgroup. My patchset incorporates Ben's reverse-engineering for the alps signature 0x73, 0x03, 0x0a and mine for 0x73, 0x03, 0x50. Your patchset for 0x73, 0x03, 0x0a is very different, and has a lot of code cleanup (which is a good thing.) Comments/Questions:

1) Where did you get the device names ("Dolphin", "Pinnacle", "Mercury", etc.) and how did you figure out the protocols? Neither Ben nor I got any kind of response from ALPS so we reverse engineered the protocol under a virtual Windows environment. Did ALPS provide you information on the devices?

2) All the existing EC responses are of the form 0x88, 0x07, 0xXX, except for the signature 0x73, 0x03, 0x50, which has EC responses of 0x73, 0x01, {0x0d | 0x02}. Your patch #2 has the following assumption: 'It is presumed (hoped) that anything that isn't in the Pinnacle series will not return "88 07 xx" or "88 08 xx".' This may break some existing touchpad interfaces.

Any way you could provide your psmouse dkms as a tarball? Esp. because there are a number of Fedora and Arch Linux users running my psmouse dkms.

@all

Can people test Kevin's patch? If it works, then I'll layer the Dell I15R, I17R, 13z on top of it and submit a patch to linux-input.

Dave Turvene (dturvene) wrote :

@Masoud

The alps driver does not support three-finger or four-finger gestures for any platforms. It would be nice but it took a better man than I, florin9doi, to figure out the two-finger gesture for our platform, and we do not have a 6430u to reverse-engineer.

@florin9doi

Based on your comments, in my next dkms I'll back out the ACPI lookup for hardware id (_HID) since it is not unique for the actual hardware behavior. The _HID is only as useful as ALPS wants it to be apparently. I'll also insert your really small v6 init sequence. How did you figure that out?

Hi all,

In reply to #302:

> Where did you get the device names ("Dolphin", "Pinnacle", "Mercury", etc.) and how did you figure out the protocols?

Seconded.

> Can people test Kevin's patch?

I tried it on my dell e6230, it works.

Kevin's patch do not properly take into account the fact that the e6230 has 16 and 12 bits for the MT slots, and not 15 and 11 (this is the ALPS_BITMAP_X_BITS and ALPS_BITMAP_Y_BITS setting).

> If it works, then I'll layer the Dell I15R, I17R, 13z on top of it and submit a patch to linux-input.

I'm a bit lost here. Has anybody kept track of the different models encountered, and on which laptops ? I think that would help a lot (most of the info is probably in here, but very poorly organized ; In particular it's difficult to keep track of which laptop models, among the ones listed, seemingly have different touchpad hardware).

Dave, what's your decision on your ACPI patch ? I haven't understood what was the rationale behind using it, as it seemed to me that we had enough material to drive our decision by talking to hardware directly. If I understand correctly, you are about to forget this patch, is that right ?

Merging all existing code (yours, mine, kevin's) is in fact easier than the recollection of what happens where, and possibly requesting some testing hardware (posters in this thread can be solicited).

Slightly different is the situation for the short v6 init sequence in #280, which diverges from the usual pattern, to say the least. Not having RESET_BAT and ENABLE in there makes the sequence functionally different from what happens with other hardware.

In the ``seemingly different hardware category'', one could be mistaken into listing the Dell E6230/E6430. These do have identical hardware, except for the absence of the trackstick on the smaller E6230. My reverse-engineering work and merge with bgamari's patches show this. These are differentiated by querying the 0xc2c8 register, which is not queried in Kevin's patch.

Briefly put, I think we should work making all this stuff cleaner.

E.

Kevin Cernekee (cernekee) wrote :

@Emmanuel

"Kevin's patch do not properly take into account the fact that the e6230 has 16 and 12 bits for the MT slots, and not 15 and 11 (this is the ALPS_BITMAP_X_BITS and ALPS_BITMAP_Y_BITS setting)."

I will check this out. 2-finger scroll worked for me but I didn't do much else with MT.

Are you seeing incorrect readings when using MT, or is your comment just based on the code? It would not be too surprising if different initialization sequences altered the data format (ala Dolphin's 8-byte vs. 9-byte setting).

Along similar lines, it would be nice if we could adjust the Rushmore trackstick sensitivity so that it used the existing V3 trackstick report code as-is, with no special divisor.

Anyway, thanks for the feedback.

"In the ``seemingly different hardware category'', one could be mistaken into listing the Dell E6230/E6430. These do have identical hardware, except for the absence of the trackstick on the smaller E6230."

E6230 has:

 - touchpad (80mm x 40mm)
 - 2 lower buttons
 - no middle button :(

E6430 has:

 - touchpad (80mm x 45mm)
 - trackstick
 - 3 upper buttons
 - 2 lower buttons

I borrowed an E6530 earlier in the week to test my patches, but unfortunately I didn't note the dimensions or layout. IIRC it was the same as the E6430.

"My reverse-engineering work and merge with bgamari's patches show this. These are differentiated by querying the 0xc2c8 register, which is not queried in Kevin's patch."

Do you feel comfortable making the statement that checking the 0xc2c8 register on Rushmore will unambiguously indicate whether the configuration has a trackstick present (even if we're dealing with a completely new, unknown PC)?

I did not see the ALPS driver checking this register, so if we don't know for certain that this is the purpose of the 0xc2c8 register, it might just be safer to always create the virtual trackstick device on a Rushmore-equipped PC (even if we never send it any reports).

"Briefly put, I think we should work making all this stuff cleaner."

One thing that would probably make sense is to store the appropriate function pointers + constants in the alps_data struct, so we do not need case statements all over the code.

Download full text (5.9 KiB)

Perhaps it's time to start asking a question that's been bugging me for a
while now. A loong time ago I implemented an early fix from this thread
(patching alps.c and remaking psmouse.ko) that has sort of jury-rigged me
along until now--it works, mostly, I've got vertical scrolling though the
thing is still damn sensitive even with disable-touchpad-while-typing. But
every time I update my ubuntu, it complains that my psmouse.ko is "third
party" and at the least doesn't replace it. My question: At what point will
there be something in the standard update that will be at least as good as
what I've got, and mostly, what will I have to do at that point to have the
update replace my mods?

On Fri, Jan 25, 2013 at 3:59 PM, Emmanuel Thomé
<email address hidden>wrote:

> Hi all,
>
> In reply to #302:
>
> > Where did you get the device names ("Dolphin", "Pinnacle", "Mercury",
> etc.) and how did you figure out the protocols?
>
> Seconded.
>
> > Can people test Kevin's patch?
>
> I tried it on my dell e6230, it works.
>
> Kevin's patch do not properly take into account the fact that the e6230
> has 16 and 12 bits for the MT slots, and not 15 and 11 (this is the
> ALPS_BITMAP_X_BITS and ALPS_BITMAP_Y_BITS setting).
>
> > If it works, then I'll layer the Dell I15R, I17R, 13z on top of it and
> submit a patch to linux-input.
>
> I'm a bit lost here. Has anybody kept track of the different models
> encountered, and on which laptops ? I think that would help a lot (most
> of the info is probably in here, but very poorly organized ; In
> particular it's difficult to keep track of which laptop models, among
> the ones listed, seemingly have different touchpad hardware).
>
> Dave, what's your decision on your ACPI patch ? I haven't understood
> what was the rationale behind using it, as it seemed to me that we had
> enough material to drive our decision by talking to hardware directly.
> If I understand correctly, you are about to forget this patch, is that
> right ?
>
> Merging all existing code (yours, mine, kevin's) is in fact easier than
> the recollection of what happens where, and possibly requesting some
> testing hardware (posters in this thread can be solicited).
>
> Slightly different is the situation for the short v6 init sequence in
> #280, which diverges from the usual pattern, to say the least. Not
> having RESET_BAT and ENABLE in there makes the sequence functionally
> different from what happens with other hardware.
>
> In the ``seemingly different hardware category'', one could be mistaken
> into listing the Dell E6230/E6430. These do have identical hardware,
> except for the absence of the trackstick on the smaller E6230. My
> reverse-engineering work and merge with bgamari's patches show this.
> These are differentiated by querying the 0xc2c8 register, which is not
> queried in Kevin's patch.
>
> Briefly put, I think we should work making all this stuff cleaner.
>
> E.
>
> --
> You received this bug notification because you are subscribed to a
> duplicate bug report (290806).
> https://bugs.launchpad.net/bugs/606238
>
> Title:
> synaptic touchpad not recognized on dell latitude e6510 and others
>
> Status in The Linux Kernel:
> Fix...

Read more...

Kevin's vs. Dave's drivers on my Latitude E6430u:

As I said before, Dave's driver with David J.'s modification worked for me on Ubuntu 12.04. However, two-finger scrolling is very sensitive and interferes with right-click (two-finger tap). (I don't know how to disable right-click.)

Kevin's driver (as he said at the end of comment #299) on a fresh Ubuntu 12.10 did not work. The touchpad is still recognized as a mouse.

Kevin Cernekee (cernekee) wrote :

@Masoud, David J

From what I can gather, the E6430u (ultrabook variant) identifies as follows:

E7 report: 73 03 0a
EC report: 88 08 22 (aka: command mode response)
E6 report: 00 00 64

In the ALPS GUI, I believe this would show up as a Glidepoint T3 with firmware version 08.22. Contrast with the non-ultrabook E6430 and the E6230, which show up as Glidepoint T3 with firmware version 08.1D.

So I am at a loss to explain:

a) Why adding this entry to alps_model_data[] would have any effect at all:

136a137,138
> /* Dell Latitude 6430u */
> { { 0x88, 0x08, 0x22 }, 0x22, ALPS_PROTO_V5, 0x8f, 0x8f, ALPS_DUALPOINT },

because the signature field is compared against the device's E7 response (73 03 0a), not the EC response (88 08 22).

b) Why my code wouldn't detect the "88 08 22" touchpad, but it detects the "88 08 1d" touchpads correctly. In theory, my code should detect anything with an EC response of 88 08 xx as a Rushmore unit:

        if (alps_rpt_cmd(ps2dev, PSMOUSE_CMD_SETSTREAM, PSMOUSE_CMD_RESET_WRAP,
                         param) ||
            param[0] != 0x88 ||
            (param[1] != 0x07 && param[1] != 0x08))
                goto out;

        /* This code has not been tested with Pinnacle AG or Pinnacle */
        if (param[1] == 0x08)
                model = &alps_model_rushmore;
        else if (param[2] >= 0x80 && param[2] <= 0x8f)
                psmouse_info(psmouse, "detected Pinnacle AG via EC report\n");
        else if (param[2] >= 0x90 && param[2] <= 0x9d)
                model = &alps_model_pinnacle_agx;
        else if (param[2] < 0x80)
                psmouse_info(psmouse, "detected Pinnacle via EC report\n");

Do you have any thoughts on what might be happening?

"Kevin's driver (as he said at the end of comment #299) on a fresh Ubuntu 12.10 did not work. The touchpad is still recognized as a mouse."

I should probably mention that I'm testing with Xubuntu. Not sure if that makes a difference.

Are you sure your system is loading the newly built /lib/modules/*/updates/dkms/psmouse.ko module in lieu of the shipped version?

BTW: could you please post the button configuration and touchpad dimensions from E6430u?

Also, if you get my driver working, try holding your finger steady in the same place for a few seconds and see if the mouse cursor "wiggles" a tiny bit. I see this on E6230 but not E6430; need to figure out why.

Thanks.

Dave Turvene (dturvene) on 2013-01-26
Changed in linux (Ubuntu):
status: Fix Committed → In Progress
Changed in linux (Ubuntu Quantal):
assignee: nobody → Dave Turvene (dturvene)
Dave Turvene (dturvene) wrote :

I reviewed Kevin Cernekee's touchpad code for Dell E6230, E6430, E6410 submitted as a patch set to the linux-input listserve. This is the main avenue for linux input driver patch submissions.

It looks like it has the same functionality as Ben Garami's fix for the E6430 but is a lot cleaner: hardware init, interface protocol and overall driver cleanup. It sounds like several people have tested Kevin's patch and found it to work (with a couple questions posted.)

@Emmanuel Thome: I can't tell from the thread whether your fixes for the 6230 are still necessary. It sounds like Kevin's patch with an X_BITS/Y_BITS tweak should be sufficient.

My thinking is, I will:
1. install Kevin's patches on an Ubuntu 12.04 baseline. His patches are for 12.10 so it should be compatible.
2. investigate some clues Kevin sent me to better understand the hardware init sequences for the N5110 and try to incorporate them.
3. merge the mt and init fixes from florin9doi
4. release a new roll-up dlkm for testing

I will discard the ACPI code, as it is not very useful. Apparently Linus was accurate when he stated "ACPI is a complete
design disaster in every way."

The documentation for the alps driver should be put in $KERNEL/Documentation/input/alps.txt I added some for the V5 and V6 protocols, but will need to update it for the new patches. If anyone wants to cross-reference system models and alps devices, that would be the place to do it.

After a test period I will submit a patchset based on acceptance of Kevin's already submitted patchset for inclusion in upstream builds. I know the Fedora maintenance team expects to put this in their next major release.

Masoud Abkenar (mabkenar) wrote :

@Kevin

Thedriver is working for me now.
Last time I tried on a fresh Ubuntu 12.10, with no linux-headers-generic of the running kernel. After installing that, I could successfully install the driver. Now I have two finger scrolling.

"Also, if you get my driver working, try holding your finger steady in the same place for a few seconds and see if the mouse cursor "wiggles" a tiny bit. I see this on E6230 but not E6430; need to figure out why."

I don't see any wiggle.

"BTW: could you please post the button configuration and touchpad dimensions from E6430u?"

E6430u has:

 - touchpad (90mm x 47mm)
 - trackstick
 - 3 upper buttons
 - 2 lower buttons

Jouke (digigram) wrote :

I can confirm that Kevin Chernekee's version works on my latitude e5530 and ubuntu 12.04
Steps to get it work were:
1) add his ppa and enable the backports
2) edit /etc/apt/sources.list.d/cernekee-ppa-precise.list and change to quantal
3) sudo apt-get update
4) sudo apt-get install linux-headers-3.5.0-22-generic #needed for next packages incorrectly does not install the headers as a dependency
5) sudo apt-get install linux-image-generic-lts-quantal #this installs the quantal kernel on 12.04
6) sudo apt-get install psmouse-dkms
7) reboot into the new kernel

I can also confirm that i compiled dave turvenes and the stuff at git://github.com/bgamari and in both cases my touchpad is recognized, but freezes with the following messages in dmesg:

[ 18.146841] psmouse serio1: alps: E6 report: 00 00 64
[ 18.165095] psmouse serio1: alps: E7 report: 73 03 0a
[ 19.271188] psmouse serio1: alps: Failed to init: 17 (cmd=e7)
[ 24.853381] psmouse serio1: Failed to enable mouse on isa0060/serio1
[ 36.153829] psmouse serio1: Failed to disable mouse on isa0060/serio1

Download full text (4.1 KiB)

@Kevin (#305)

> Are you seeing incorrect readings when using MT, or is your comment just based on the code? It would not be too surprising if > different initialization sequences altered the data format (ala Dolphin's 8-byte vs. 9-byte setting).

Just inspecting the packets traveling through. Some MT reports, with one of the finger close to the edges, were not working. This was most visible when enabling 2-finger scrolling, since this would prevent scrolling if one of the fingers happens to be in the dead zones. Looking at the packets, it seems clear that there's one extra MT slot in each direction (and 16 and 12 are nicer numbers than 15 and 11).

> Along similar lines, it would be nice if we could adjust the Rushmore trackstick sensitivity so that it used the existing V3
> trackstick report code as-is, with no special divisor.

My code at https://github.com/emmanuelthome/psmouse-alps does work with the V3 trackstick report code as-is (report by Malte Skoruppa who tested it).

I think that the key is probably the weird thing which I called alps_e6_sort_of_setmode there.

> E6230 has:
>
> - touchpad (80mm x 40mm)
> - 2 lower buttons
> - no middle button :(
>
> E6430 has:
>
> - touchpad (80mm x 45mm)
> - trackstick
> - 3 upper buttons
> - 2 lower buttons

ok, I stand corrected then. I should have made my point clearer, though. At some point it was thought that E6230/E6430 needed two entirely different init sequences, and needed to be detected based on some yet-to-be-determined magic going beyong E6/E7/EC reports. Not. It's only that trying to talk to the missing trackstick on the E6230 freezes the device, but that can be encompassed by a unified init.

> "My reverse-engineering work and merge with bgamari's patches show this. These are differentiated by querying the 0xc2c8
> register, which is not queried in Kevin's patch."
>
> Do you feel comfortable making the statement that checking the 0xc2c8 register on Rushmore will unambiguously indicate
> whether the configuration has a trackstick present (even if we're dealing with a completely new, unknown PC)?

Hell, if someone knew for sure, situation would be easier ;-) No, I'm not sure.

What I observe is that based on the observation of E6230/E6430, bit 7 (0x80) of register c2c8 is used to choose between two code paths, one of which probably talks to the trackstick. The code structure here is almost in one-to-one mapping with the v3 code, and goes as follows:
 - check for presence of trackstick (bit 7 of register 0x8 on alps_v3, bit 7 of register 0xc2c8 on ``rushmore'').
 - if trackstrick:
   - enable trackstick passthrough mode by setting bit 0 of that same register
   - get an E7 report directly from the trackstick, although nothing is done with it.
   - send a magic command which sets something to the value 0x94. Might be your desired ``divisor''.
   - set bit 1 of register above (activate trackstick ???)
   - leave trackstick passthrough mode.

> I did not see the ALPS driver checking this register, so if we don't know for certain that this is the purpose
> of the 0xc2c8 register, it might just be safer to always create the virtual trackstick device on a
> Rushmore-equipped PC (even...

Read more...

If you are interested I have made a quick port of the patches in the bug to have them applied in the kernel 3.7.x
Here you can find the patches:
https://github.com/nacho/alps-kernel-3-7/

Jonas Maebe (jonas-maebe) wrote :

I just want to add that the driver from the ppa of comment #299 also works fine for the touchpad on a latitude e6330 (on Ubuntu 12.10)

I can confirm that the psmouse-alps-dst-0.4.tbz patch works for acer aspire v3 771g.
I now have a touchpad tab in the mouse and touchpad settings (which was missing before) and can two finger scroll

Dave Turvene (dturvene) wrote :

I need to work on several projects so will not have time to look at this again this week. I rebased our work on Kevin Cernekee's 14-part submission to linux-input. His patchset cleaned-up/refactored a lot of the messier code along with a more comprehensive init sequence for the Dell E6XXX series. Ben's V5 init sequence is no longer necessary. The new dlkm is at [1].

The one final step that needs to be taken is to reconcile florin9doi's init sequence for my Dell N5110 and a Fujitsu a512. The systems have the same E7/EC signatures but appear to have different init sequences. When I use the Fujitsu a512 init sequence, my system is stuck in PS/2 3-byte format and, apparently, the converse is true for the Fujitsu.

I have re-added the alps_debug sysfs interface to toggle packet debug and switch between the new V5 (was V6) init sequences for the N5110 and a512. This can only be done by setting the alps_debug bit and rebuilding; I couldn't get it to work on-the-fly.

We are almost to the point of a submitting a final patchset to resolve a LOT of ALPS touchpad bugs.

[1]: http://dahetral.com/public-download

Download full text (4.2 KiB)

Fine by me.

Thanks all for tidying this up. Nice work.

E.

On Mon, Feb 11, 2013 at 6:41 PM, Dave Turvene <email address hidden> wrote:
> I need to work on several projects so will not have time to look at this
> again this week. I rebased our work on Kevin Cernekee's 14-part
> submission to linux-input. His patchset cleaned-up/refactored a lot of
> the messier code along with a more comprehensive init sequence for the
> Dell E6XXX series. Ben's V5 init sequence is no longer necessary. The
> new dlkm is at [1].
>
> The one final step that needs to be taken is to reconcile florin9doi's
> init sequence for my Dell N5110 and a Fujitsu a512. The systems have
> the same E7/EC signatures but appear to have different init sequences.
> When I use the Fujitsu a512 init sequence, my system is stuck in PS/2
> 3-byte format and, apparently, the converse is true for the Fujitsu.
>
> I have re-added the alps_debug sysfs interface to toggle packet debug
> and switch between the new V5 (was V6) init sequences for the N5110 and
> a512. This can only be done by setting the alps_debug bit and
> rebuilding; I couldn't get it to work on-the-fly.
>
> We are almost to the point of a submitting a final patchset to resolve a
> LOT of ALPS touchpad bugs.
>
> [1]: http://dahetral.com/public-download
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/606238
>
> Title:
> synaptic touchpad not recognized on dell latitude e6510 and others
>
> Status in The Linux Kernel:
> Fix Released
> Status in “linux” package in Ubuntu:
> In Progress
> Status in “linux” source package in Precise:
> Fix Released
> Status in “linux” source package in Quantal:
> In Progress
> Status in “linux” package in Arch Linux:
> Fix Released
> Status in openSUSE:
> New
>
> Bug description:
> It wrongly recognized as PS/2 Generic Mouse. And then scrolling does
> not work, but tapping does.
>
> ProblemType: Bug
> AplayDevices:
> **** List of PLAYBACK Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
> Subdevices: 1/1
> Subdevice #0: subdevice #0
> Architecture: i386
> ArecordDevices:
> **** List of CAPTURE Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
> Subdevices: 2/2
> Subdevice #0: subdevice #0
> Subdevice #1: subdevice #1
> AudioDevicesInUse:
> USER PID ACCESS COMMAND
> /dev/snd/controlC0: karol 2618 F.... pulseaudio
> CRDA: Error: [Errno 2] No such file or directory
> Card0.Amixer.info:
> Card hw:0 'Intel'/'HDA Intel at 0xe9660000 irq 22'
> Mixer name : 'IDT 92HD81B1C5'
> Components : 'HDA:111d76d5,1028040b,00100104'
> Controls : 26
> Simple ctrls : 16
> Date: Fri Jul 16 13:36:04 2010
> DistroRelease: Ubuntu 9.10
> HibernationDevice: RESUME=UUID=cdf10c13-029f-401b-afed-f651ca0e2cbe
> InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release i386 (20091028.2)
> MachineType: Dell Inc. Latitude E6510
> NonfreeKernelModules: nvidia
> Package: linux-image-2.6.31-22-generic-pae 2.6.31-22.60
> Pccardct...

Read more...

Hi All,

Thanks for all this work.
I have a Dell E6230 and just tested psmouse-alps-1.3. Most everything works but not the finger tap for clicking. Is tap supposed to work ? Is there a way to activate it ?
Thanks

Pierre

Masoud Abkenar (mabkenar) wrote :

@pierren
Go to System Setting -> Mouse and Touchpad -> Touchpad and make sure the secondd item is checked: "Enable mouse clicks with touchpad"

I compiled the 1.3 version from http://dahetral.com/public-download and when I install it, my touchpad is no longer recognized. I am not sure how to check which touchpad I have to help debug this. Here is what lsinput returns, though maybe this is affected by the driver I am using (version 1.2)

/dev/input/event7
   bustype : BUS_I8042
   vendor : 0x2
   product : 0x8
   version : 0
   name : "AlpsPS/2 ALPS GlidePoint"
   phys : "isa0060/serio1/input0"
   bits ev : EV_SYN EV_KEY EV_ABS

Kevin Cernekee (cernekee) wrote :

"I compiled the 1.3 version from http://dahetral.com/public-download and when I install it, my touchpad is no longer recognized."

Could you check dmesg? This version of the driver should print the E7/EC report values if the touchpad "looks" like ALPS (based on the E6 report) but isn't recognized.

What is your PC's make/model/year?

Here is what I get from trying to sudo insmod ./psmouse.ko after I build the new source.

[ 1653.844651] psmouse serio1: alps: E6 report: 00 00 64
[ 1653.867607] psmouse serio1: alps: E7 report: 73 03 50
[ 1653.890393] psmouse serio1: alps: EC report: 73 02 02
[ 1653.893368] psmouse serio1: alps: ALPS: E7=73 03 50, EC=73 02 02
[ 1653.893381] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 03 50, EC=73 02 02
[ 1654.672107] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input15

I have a dell lattitude 13z from september 2012. It just has a two button touchpad.

Sorry it is an inspiron 13z.

Kevin Cernekee (cernekee) wrote :

"[ 1653.893381] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 03 50, EC=73 02 02"

The second byte of the EC report distinguishes Dolphin V1 (0x01) from Dolphin V2 (0x02). So you have Dolphin V2, the same touchpad found on the Fujitsu A512.

I'm attaching a modified version of psmouse-alps-1.3.tbz which tries to do the right thing for both cases - could you please give it a try?

Thanks.

Did you attache the file? I don't see it.

I found the file. It doesn't show up in the comments, but in the full activity log I found it. When I built that version and installed the module it works great. Thank you.

Markus Golser (golserma) wrote :

psmouse-alps-1.3 works great on my Dell Latitude E6230 thank you!

Hello Kevin/David,

It seems I'm having the same touchpad found in the Fujitsu A512. When inserting the psmouse-alps-1.3.tbz module, I'm getting this in the syslog, like Matt:

[ 3087.136231] psmouse serio1: alps: E6 report: 00 00 64
[ 3087.157739] psmouse serio1: alps: E7 report: 73 03 50
[ 3087.179634] psmouse serio1: alps: EC report: 73 02 02
[ 3087.182545] psmouse serio1: alps: ALPS: E7=73 03 50, EC=73 02 02
[ 3087.182551] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 03 50, EC=73 02 02
[ 3087.959723] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input28

I've tried Kevin's psmouse-alps-1.3-alt.tbz, but does not seems address the issue. I can see the Touchpad tab of "Mouse and Touchpad" System Settings, but scrolling doesn't work. And even when I'm inserting the module with the "-v" parameter (like comment #242 is saying), I only get this quiet output in the syslog:

[ 3500.941929] input: PS/2 Mouse as /devices/platform/i8042/serio1/input/input30
[ 3500.957477] input: AlpsPS/2 ALPS GlidePoint as /devices/platform/i8042/serio1/input/input31

This is a Dell Vostro 3360. I can test other patches if you want, or give more info about my laptop.

Thank you

Hi Marcelo,

  Kevin's patch should work, but edge-scrolling is still hard to use (see
https://bugs.freedesktop.org/show_bug.cgi?id=59478 for an analysis of this
behavior, you can improve the situation by setting eg FingerLow=5 and
FingerHigh=6 using synclient). Two-finger scrolling should work fine in the
meantime.

2013/2/13 Marcelo Fernandez <email address hidden>

> Hello Kevin/David,
>
> It seems I'm having the same touchpad found in the Fujitsu A512. When
> inserting the psmouse-alps-1.3.tbz module, I'm getting this in the
> syslog, like Matt:
>
> [ 3087.136231] psmouse serio1: alps: E6 report: 00 00 64
> [ 3087.157739] psmouse serio1: alps: E7 report: 73 03 50
> [ 3087.179634] psmouse serio1: alps: EC report: 73 02 02
> [ 3087.182545] psmouse serio1: alps: ALPS: E7=73 03 50, EC=73 02 02
> [ 3087.182551] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 03 50,
> EC=73 02 02
> [ 3087.959723] input: PS/2 Generic Mouse as
> /devices/platform/i8042/serio1/input/input28
>
> I've tried Kevin's psmouse-alps-1.3-alt.tbz, but does not seems address
> the issue. I can see the Touchpad tab of "Mouse and Touchpad" System
> Settings, but scrolling doesn't work. And even when I'm inserting the
> module with the "-v" parameter (like comment #242 is saying), I only get
> this quiet output in the syslog:
>
> [ 3500.941929] input: PS/2 Mouse as
> /devices/platform/i8042/serio1/input/input30
> [ 3500.957477] input: AlpsPS/2 ALPS GlidePoint as
> /devices/platform/i8042/serio1/input/input31
>
> This is a Dell Vostro 3360. I can test other patches if you want, or
> give more info about my laptop.
>
> Thank you
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/606238
>
> Title:
> synaptic touchpad not recognized on dell latitude e6510 and others
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/linux/+bug/606238/+subscriptions
>

Hi Vince,

Ok, I've tried setting two-finger scrolling in the System Config, and executed "synclient FingerLow=5 FingerHigh=6", but despite I get *a very little bit* of scrolling (in some rare cases), this is not useful at all; most of the times I fail to scroll.

I saw you were posting evemu-record logs in that bug report, but I don't know how to use it and find a "FingerLow/FingerHigh" acceptable values, like you did. Could you give me some insights into this?

Thank you

>> Hi Vince,

>> Ok, I've tried setting two-finger scrolling in the System Config, and
>> executed "synclient FingerLow=5 FingerHigh=6", but despite I get *a very
>> little bit* of scrolling (in some rare cases), this is not useful at
>> all; most of the times I fail to scroll.

> Hi, you either have to :
> - enable two-finger-scrolling (and then two-finger scrolling should work correctly without further settings)
> - enable edge scrolling with synclient FingerLow=5 FingerHigh=6

> You can try to lower the values of FingerLow/GingerHigh. I got the values straight from the kernel driver (I added some debug
> messages while trying to debug my touchpad's driver) bug there are probably many other ways to get them.

Hi Vince,

I'm answering from the bug report so everybody can see my results in a Vostro 3360.

You're right about two-finger scrolling, it seems to work by default ("synclient -l" gets configured with FingerLow=12/FingerHigh=15). I figured out that it doesn't work _perfectly_ (I'm still getting frequent pointer movements instead of scrolling up/down) if I use the middle finger + ring finger. It works much better if I use the index finger + middle finger nail instead (YMMV, of course).

On the other hand, the edge scrolling, even setting FingerLow=5 FingerHigh=6 does not work, or does it in very seldom cases.

Thank you!

Tim Staley (timstaley337) wrote :

Just posting to confirm psmouse-alps-1.3 ( http://www.dahetral.com/public-download/psmouse-alps-1.3.tbz/view ) works well on a Dell Precision M4700 - I'm unsure which alps model this is.

I followed the instructions listed here: http://nwoki.wordpress.com/2012/10/02/multitouch-fix-for-alps-touchpad/ which may be helpful for other newcomers (though you don't need to patch the alps.c in 1.3 as it has been updated already).

Thanks to all involved in writing the patches, you're keeping Linux alive (and damn Dell for flunking out on driver support).

Dave Turvene (dturvene) wrote :

I'm just getting back to this. Here's my view of the bug progress based on the last several (okay, few) comments:

1) the psmouse-alps-1.3 dkms works well for MOST laptops, not those based on the mysterious "Dolphin V2" init sequence.
2) the subsequent psmouse-alps-1.3-alt dkms posted by Kevin has a minor change that works for "Dolphin V2" without impacting the existing logic.

So is it safe to say that ALL existing ALPS touchpads are, more or less, working with Kevin's dkms?

I think a lot of the problems with edge scrolling can be tuned using the "Synaptics Edges" property. It doesn't make sense to me for ALPS to create different touchpad layout using the same signature; more likely is the laptop exposes an area of the touchpad based on the available real estate.

If this is a working dkms, then I would like to proceed by:
1) Documenting the logic in alps_identify surrounding the dolphin and rushmore variants (which were removed from the alps_model_info table because it doesn't contain enough information to uniquely identify the init sequences.)
2) Update ./Documentation/input/alps.txt with details on the new variants.
3) Clear out the debug info and submit a patchset to linux-input

I would love to 1) rewrite a lot of the alps code and 2) document all the systems supported by the five protocol variants. For (1) Kevin's 14-part patchset cleaned up a lot of the code and I don't see spending a week or two refactoring and testing will improve the situation much. For (2) the current group does not KNOW which systems have the different touchpad variants (i.e. I just saw that the current software now runs on a Dell M4700, great news!)

So, I want to freeze code changes, document the heck out of what everyone did and close this.

Kevin Cernekee (cernekee) wrote :

Just so we're on the same page - the "input-next" tree [1] (input.git, branch "next") is Dmitry's staging area for proposed input subsystem changes to send to Linus for the next merge window - currently targeting Linux 3.9. My patches 01-13 are in there now. This includes the code refactoring + Rushmore support, but no Dolphin support.

This past weekend I submitted three more patches [2] to be applied on top of input-next:

1) Remove unused argument to alps_enter_command_mode() - trivial cleanup

2) Dolphin V1 support, credited to Dave/florin. This is believed to be in working order, and ready to merge.

3) Dolphin V2 support, consisting of my new init + detection sequence. This was marked as WIP because the pressure readings at the edge of the touchpad are still "off." I am hoping somebody with access to this hardware can help figure out why. Maybe switching to the V2-native report format (and writing a new decoder for it) would help, since that is what the ALPS drivers seem to prefer.

"It doesn't make sense to me for ALPS to create different touchpad layout using the same signature; more likely is the laptop exposes an area of the touchpad based on the available real estate."

It appears that the driver can query the Dolphin V2 touchpads for their specs, and adjust the operating parameters accordingly.

Unfortunately I don't know much about how this works, or what range of values we can expect to see in the wild.

As for Rushmore, I can confirm that the touchpad dimensions and trackstick/buttons differ between Dell E6230/E6430, even though the IDs are the same. I haven't actually taken the laptops apart to see how they contrast physically. Doing so might shed light on how ALPS manages product variants.

"Update ./Documentation/input/alps.txt with details on the new variants."

That's a great idea, and it's something I've been neglecting.

One other thing that might be worthwhile is to see how much (if any) of the refactored V3 code can be used for the V4 touchpads. There are many similarities between the two protocols.

[1] http://git.kernel.org/?p=linux/kernel/git/dtor/input.git;a=shortlog;h=refs/heads/next
[2] http://www.spinics.net/lists/linux-input/msg24857.html

Just to say: thank you!
The touchpad now works better on my dell latitude E6230.

I can scroll on the edge and the "circular scroll" also works. The two fingers scroll and right-click isn't easy, but the touchpad isn't so wide. I haven't get for now the three fingers middle click … but it doesn't matter for me.
The more important was the scroll gesture.

Thank you again :-)

Download full text (3.3 KiB)

Kevin -

Responses inline

On 02/18/2013 05:07 PM, Kevin Cernekee wrote:
> Just so we're on the same page - the "input-next" tree [1] (input.git,
> branch "next") is Dmitry's staging area for proposed input subsystem
> changes to send to Linus for the next merge window - currently targeting
> Linux 3.9. My patches 01-13 are in there now. This includes the code
> refactoring + Rushmore support, but no Dolphin support.
Good to know; I wondered how the roll-up works.
>
> This past weekend I submitted three more patches [2] to be applied on
> top of input-next:
>
> 1) Remove unused argument to alps_enter_command_mode() - trivial cleanup
>
> 2) Dolphin V1 support, credited to Dave/florin. This is believed to be
> in working order, and ready to merge.
>
> 3) Dolphin V2 support, consisting of my new init + detection sequence.
> This was marked as WIP because the pressure readings at the edge of the
> touchpad are still "off." I am hoping somebody with access to this
> hardware can help figure out why. Maybe switching to the V2-native
> report format (and writing a new decoder for it) would help, since that
> is what the ALPS drivers seem to prefer.
Great! I dump a lot of email lists, including linux-input, on my server
and only periodically check them. I just saw your three-part
submission. The code looks good. I'll post a new comment on the 606238
bug thread about my understanding of your progress - just to avoid
confusion.
>
>
> "It doesn't make sense to me for ALPS to create different touchpad layout using the same signature; more likely is the laptop exposes an area of the touchpad based on the available real estate."
>
> It appears that the driver can query the Dolphin V2 touchpads for their
> specs, and adjust the operating parameters accordingly.
>
> Unfortunately I don't know much about how this works, or what range of
> values we can expect to see in the wild.
>
> As for Rushmore, I can confirm that the touchpad dimensions and
> trackstick/buttons differ between Dell E6230/E6430, even though the IDs
> are the same. I haven't actually taken the laptops apart to see how
> they contrast physically. Doing so might shed light on how ALPS manages
> product variants.
Good to know but I'm unclear how to proceed. Back when, I put in a
sysfs debug interface that a user could run to capture the physical
coordinates of the edges in order to tune the X edge properties. I
could take your patches, add the debug and release a new dkms.
>
>
> "Update ./Documentation/input/alps.txt with details on the new variants."
>
> That's a great idea, and it's something I've been neglecting.
I'll update alps.txt tonight and submit to linux-input
>
> One other thing that might be worthwhile is to see how much (if any) of
> the refactored V3 code can be used for the V4 touchpads. There are many
> similarities between the two protocols.
I agree there are a lot of similarities but some differences as well.
For example, V3 uses byte 4 for x/y coordinates and byte 3 for buttons;
V4 uses byte 3 for x/y coordinates and byte 4 for buttons. This could
take a little bit of time to refactor. I'm backed up on several other
projects so I need to move on.
...

Read more...

Dave Turvene (dturvene) on 2013-02-27
Changed in linux (Ubuntu):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Quantal):
status: In Progress → Fix Committed
Changed in opensuse:
assignee: nobody → Dave Turvene (dturvene)

Just for the record, I'm on a Dell Latitude e6430u running Ubuntu 12.10 (Quantal) and this issue affects me.

Matt (f-launchpad-net) wrote :

Hi, what's the lead time from fixes getting committed until they arrive via the usual package updates?
I have an old Dell Inspiron 8200 that I'm trying to setup and the touchpad doesn't work at all, I think it's detected as PS2 Mouse.

I think this will probably fix it or should I submit a separate bug report with all the info?
Thanks for all the work on this.

Dave Turvene (dturvene) wrote :

@matt
I noticed that Kevin's patches were accepted for the next 3.7 kernel release.

I also noticed that a fedora maintainer backported Kevin's patches to the next Fedora release. See https://bugzilla.redhat.com/show_bug.cgi?id=812111

I have not seen any activity by Ubuntu maintainers to backport the patches, so I doubt they will be integrated into the Ubuntu train any time soon.

You can test it yourself by installing the psmouse-alps-1.3-alt.tbz attachment (see the "Bug Attachments" sidebar)

Miguel Ramiro (mike.longbow) wrote :

I can confirm that the patch contained in the psmouse-alps-1.3-alt.tbz attachment works on my Dell Vostro 3360. I get a behavior similar to what I got with the version I was using before (alps-dst-0.4, by Dave): still no edge-scrolling, and random choppyness, as if the touchpad skips some input frames (though that last one might only be my imagination, I must give it some time to confirm).

Also, I would like to note that the alps-1.3 version at http://www.dahetral.com/public-download/psmouse-alps-1.3.tbz/view does not work on my machine. Only the version in the attachment here does.

Regards.

Paul Swanson (paul-swanson) wrote :

Hi Dave, thanks also for all of your work.

How would, or is it ever likely, that this fix will make it into Quantal?

There's got to be a huge number of Ubuntu users out there with Dell laptops that could do with this functionality.

Is there anything we can do to petition the Ubuntu maintainers on this?

Thanks again.

I also confirmed that like Miguel, the patch psmouse-alps-1.3-alt.tbz partially works on my Dell Inspiron 13z. My touchpad that is previously recognized as PS/2 Generic Mouse is now recognized as AlpsPS/2 ALPS GlidePoint. I can finally disable mouse click by tapping while typing. However, like Miguel's case, there is no edge scrolling and random choppyness. It especially happens when I press the touchpad very lightly.

wgroiss (wolfgang-groiss-gmx) wrote :

I'm on a Dell Latitude E5530 running Ubuntu 13.04 (Raring Ringtail, Beta1) and this issue affects me on Kernel 3.8, too.

"Linux Dell-Latitude-E5530 3.8.0-13-generic #22-Ubuntu SMP Fri Mar 15 17:51:30 UTC 2013 i686 i686 i686 GNU/Linux."

I tried to fix it with #299:
I took ppa from quantal, made
apt-get update

and got this error:

Traceback (most recent call last):
  File "/usr/share/apport/package-hooks/dkms_packages.py", line 22, in <module>
    import apport
ImportError: No module named apport
Error! Bad return status for module build on kernel: 3.8.0-13-generic (i686)
Consult /var/lib/dkms/psmouse/3.5.0/build/make.log for more information.
....
root@Dell-Latitude-E5530:~#

Kevin Cernekee (cernekee) wrote :

"ImportError: No module named apport"

Try: sudo apt-get install python-apport

It is possible that some of the DKMS packages posted in this thread will need tweaking to build against Linux 3.8.

wgroiss (wolfgang-groiss-gmx) wrote :

Now the touchpad works!

I think, it was not the
******
sudo apt-get install python-apport
******
because i got an error.
But it i think, the fix was a newer kernel, which i got with ubuntu rairing update:
******
Linux Dell-Latitude-E5530 3.8.0-14-generic #24-Ubuntu SMP Fri Mar 22 19:21:28 UTC 2013 i686 i686 i686 GNU/Linux
******
Now I can see the Alps Touchpad and scrolling does work!

wolfgang@Dell-Latitude-E5530:~$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=12 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=13 [slave pointer (2)]

lee bondam (libondam-0) wrote :

First of all: thanks for the work guys

I am on Dell Latitude XT
Alps hardware: touchpad, 4 buttons, 1 stick
Touchpad is detected as PS2 mouse, synapticts not loaded.
Touchpad works (tapping/moving), but not very sensitive cq. delays, buttons an stick work
The insensitivity / delays made me look for changing the setup.
And that made me aware of the synaptics issue.
(I never use scrolling so had not noticed anything missing ...).
Installed Os's:
wheezy 3.2.0-4-amd64 / xubuntu 3.2.0-40-generic / XP .
Downloaded psmouse-alps-1.3 from http://dahetral.com/public-download.
Unfortunately, there is no support for Dell Latitude XT.
Found an old mail exchange (2009) from Dmitry Torokhov.
This gave me a clue as what to try.

Added the following line to alps_model_data[]
       { { 0x73, 0x00, 0x14 }, 0x00, ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_DUALPOINT | ALPS_FW_BK_2 }, /* Dell Latitude XT */

resulting dmesg:
psmouse serio1: alps: E6 report: 00 00 64
psmouse serio1: alps: E7 report: 73 00 14
psmouse serio1: alps: EC report: 10 00 64
psmouse serio1: alps: ALPS: E7=73 00 14, EC=10 00 64
psmouse serio1: alps: Model: proto=2 command_mode_byte3=00
psmouse serio1: alps: E6 report: 00 00 64
psmouse serio1: alps: E7 report: 73 00 14
psmouse serio1: alps: EC report: 10 00 64
psmouse serio1: alps: ALPS: E7=73 00 14, EC=10 00 64
psmouse serio1: alps: Model: proto=2 command_mode_byte3=00
psmouse serio1: alps: F5 report: 73 00 14
input: DualPoint Stick as /devices/platform/i8042/serio1/input/input10
input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input11

Touchpad recognized, tapping works, scrolling works, buttons work.
The stick however goes haywire, sending random click events when touched.
This is in both xubuntu and wheezy
In wheezy I had to enable tapping, in xubuntu tapping worked 'out of the box'

My questions:
What is the status of Latitude XT support in alps.c ?
Can I help ?
Where to put these questions ?

I am pretty comfortable with linux and C
I also have win XP with latest Dell Alps driver on this laptop
(must say, I am not a happy windows hacker but can do ...)

Lee

Dave Turvene (dturvene) wrote :

@libondom-0

My guess is this is another mutation of the ALPS touchpad. It clearly is a new signature, which you added, which indicates new behavior: the trackstick. There have been several new significant behaviors added to the alps driver ("Rushmore" and "Dolphin").

The best I can recommend, not having this touchpad (and it's an n:m mapping between Dell system and Alps touchpad), is to add code to the driver to dump the trackstick changes and then try to reverse engineer what the movement codes actually mean. See the alps_process_packet_v1_v2 routine.

BTW, I experienced similar upheaval in the late 1980's as a customer to a company called Newbridge. Its staff was turning over so quickly that relative newbies were the sole support for some of their hardware and just hacked it up to get it to work regardless of documentation or compatibility. They released M$ drivers to support the new firmware but Unix boxes (we were a SUN shop) were left hanging. Newbridge and SUN no longer exist; I think this bodes poorly for ALPS.

Dave

lee bondam (libondam-0) wrote :

Hi Dave
Glad to see you are monitoring.
What/where is the best way to communicate about this?

The problem at hand:
It comes down to reverse engineering then.
The mail exchange from Dmitry Torokhov I mentioned was about Latitude XT
So some (reverse) engineering has been going on.
I have read some posts of people doing this with Virtualbox.
Must go backtrack a bit here.
Do you have any idea if there is anything of the sort going on upstream?
I do not want to invent the (mouse)wheel, but if nothing is happening,
I will have a go.
Looks a bit like a can of worms to me, but hey, I believe I like to make things work.
Would appreciate suggestions/tips as to how to go about.
Like using real or virtual XP
I use kvm/qemu here, and touchpad support would have to be added I think.
And then, how much do I have to know about win XP?

will keep posting here for now
Lee

lee bondam (libondam-0) wrote :

On second thought, do I need XP?
The touchpad is already recognized an handled by synaptics.
So all can be done in alps.c no?
Reverse engineer the event readings from 'cat /dev/input/mouseN'
On the right track here?

Lee

lee bondam (libondam-0) wrote :

on third thought
>>add code to the driver to dump trackstick changes'
i am there now
bit slow in pickin up ...
laters
lee

Dave Turvene (dturvene) wrote :

@libondam-0

Response to comments 348, 349, 350:

The easiest, and I mean *easiest*, way is to hack alps.c for the raw input from the touchpad and then "xinput setprop" to tune the X11 cooked input.

For brand-new alps touchpads that don't adhere to any of the known protocols, this is not sufficient and one needs to reverse engineer the Windows driver behavior. Seth Forshee showed us the way and then Ben Garami figured out the the new extensions. I seriously doubt this will be the case for you.

Use Virtualbox or Qemu to create a guest OS. I used Vista. Seth showed how to patch the I/O layer to dump the bytes going between the guest driver and the hardware. The catch is that the new alps drivers check the BIOS ACPI DSDT tables to make sure it's an ALPS hardware module; if not it drops into 3-byte PS2 mode. Therefore the virtual ACPI DSDT table must be updated to use the Hardware ID (HID) for the alps hardware model (taken from the real ACPI DSDT table.) If this sounds a little complicated, it is. Make sure you install the Alps driver into the guest OS!

In the alps.sh from the 1.3 DLKM, there are some helper routines to get the real DSDT and patch the qemu acpi-dsdt.dsl table for the correct HID.

There is another way to reverse engineer an ALPS touchpad, discovered by Kevin Cernekee but it's not totally reliable. It worked for him, and cleaned up the E6430 code a good deal. Email Kevin directly for how to do it.

Dave

When I upgraded my N5110 to the raring ringtail beta last week, the touchpad was no longer recognized. I believe I had the 0.4 version installed. I uninstalled and removed all of the existing DKMS entries and installed the 1.3 version downloaded from http://www.dahetral.com/public-download but the touchpad is still not recognized.

Has anyone been successful on an N5110 with this kernel? Any suggestions, or any tests I can perform to help resolve this?

Some potentially helpful info:

uname -a:
Linux rbmlaptop 3.8.0-17-generic #27-Ubuntu SMP Sun Apr 7 19:39:35 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Some lines from dmesg:
[ 8.279185] psmouse serio1: alps: E6 report: 00 00 64
[ 8.298297] psmouse serio1: alps: E7 report: 73 03 50
[ 8.316631] psmouse serio1: alps: EC report: 73 02 02
[ 8.319620] psmouse serio1: alps: ALPS: E7=73 03 50, EC=73 02 02
[ 8.319626] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 03 50, EC=73 02 02

xinput:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=12 [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)]
    ↳ Power Button id=8 [slave keyboard (3)]
    ↳ Sleep Button id=9 [slave keyboard (3)]
    ↳ Laptop_Integrated_Webcam_HD id=10 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
    ↳ Dell WMI hotkeys id=13 [slave keyboard (3)]

dkms status:
psmouse, alps-1.3, 3.8.0-17-generic, x86_64: installed

Installing http://dahetral.com/public-download/psmouse-alps-dst-1.2.tbz/view worked for me.

Download into /usr/src, run
./alps.sh dkms_install_symlink
and then
 ./alps.sh dkms_build_alps

Dell latitude e5430, cat /proc/bus/input/devices says I: Bus=0011 Vendor=0002 Product=0008 Version=0000

This is 12.10

lee bondam (libondam-0) wrote :

@Dave

response to #351

Sorry, I missed your documentation in the alps-1.3 directory,
I had just compiled the psmouse module without any script.
After reading, I'll be a while I guess.
Complicated indeed.
Keep you posted.
Thanks.

Lee

Dave Turvene (dturvene) wrote :

Greetings -

I have received a number of emails about running the our dlkms on a 3.5+ kernel. Kevin Cernekee made the required API changes and added it as an attachment to this issue. I have copied his tarball to my public area at:

https://www.dahetral.com/public-download/psmouse-alps-1.3-alt.tbz/view

Dave

Sorry -

Kevin did a lot of work on the driver and then uploaded as an issue
attachment. I just uploaded his tarball to
http://www.dahetral.com/public-download.

No one has reported anything negative about the new driver and it has
been accepted to the linux kernel.

Dave

On 04/19/2013 11:26 AM, Richard Merren wrote:
> When I upgraded my N5110 to the raring ringtail beta last week, the
> touchpad was no longer recognized. I believe I had the 0.4 version
> installed. I uninstalled and removed all of the existing DKMS entries
> and installed the 1.3 version downloaded from http://www.dahetral.com
> /public-download but the touchpad is still not recognized.
>
> Has anyone been successful on an N5110 with this kernel? Any
> suggestions, or any tests I can perform to help resolve this?
>
> Some potentially helpful info:
>
> uname -a:
> Linux rbmlaptop 3.8.0-17-generic #27-Ubuntu SMP Sun Apr 7 19:39:35 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
>
> Some lines from dmesg:
> [ 8.279185] psmouse serio1: alps: E6 report: 00 00 64
> [ 8.298297] psmouse serio1: alps: E7 report: 73 03 50
> [ 8.316631] psmouse serio1: alps: EC report: 73 02 02
> [ 8.319620] psmouse serio1: alps: ALPS: E7=73 03 50, EC=73 02 02
> [ 8.319626] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 03 50, EC=73 02 02
>
> xinput:
> ⎡ Virtual core pointer id=2 [master pointer (3)]
> ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
> ⎜ ↳ PS/2 Generic Mouse id=12 [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)]
> ↳ Power Button id=8 [slave keyboard (3)]
> ↳ Sleep Button id=9 [slave keyboard (3)]
> ↳ Laptop_Integrated_Webcam_HD id=10 [slave keyboard (3)]
> ↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
> ↳ Dell WMI hotkeys id=13 [slave keyboard (3)]
>
> dkms status:
> psmouse, alps-1.3, 3.8.0-17-generic, x86_64: installed
>

The code version from comment #356 fixed my problems mentioned in comment #352. It works with Raring on the 3.8 kernel. I'm very happy because reverting to the supersensitive, nonscrolling touchpad I had before you wrote this driver was pretty unbearable. Thanks again for all of your work on this.

When you say it has been accepted to the linux kernel, do you mean to say that at some point this will work out-of-the-box without installing the driver with DKMS?

riu (stanray) wrote :

On Fujitsu LB AH532, after installing the driver I have both psmouse and ALPS touchpad active. I have only touchpad. Vertical scroll works in very narrow area on the right of the touchpad. Mouse and Touchpad have duplicate settings in the "Mouse and Touchpad" dialog: pointer acceleration and sensitivity. Is it intentional or anything wrong with my system?

xinput --list:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Mouse id=11 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=12 [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)]
    ↳ Power Button id=8 [slave keyboard (3)]
    ↳ FJ Camera id=9 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]

riu (stanray) wrote :

Hardware info on previos comment (comment #358) can be found in Bug #1041916 (“Touchpad of Fujitsu LifeBook AH532 not recognized” : Bugs : “xserver-xorg-input-synaptics” package : Ubuntu).

I have Ubuntu 12.04 with 3.5.0 kernel and xserver-xorg-input-synaptics-lts-quantal.

Masoud Abkenar (mabkenar) wrote :

I am running Ubuntu 13.04 on a Dell Latitude E6430u, and my touchpad is recognized by default. Two-finger scrolling works. Pinch-to-zoom also works in e.g. Eye of GNOME (but not in Firefox/Chromium). It's great that the driver has been backported.

Kevin Cernekee (cernekee) wrote :

Now that Linux 3.9 is making its way into circulation, let's summarize the reported issues to date:

1) No Dolphin V2 support. Still need to borrow hardware to fully understand the report format and make edge scrolling work without excessive pressure. I believe we have a good init sequence.

2) Resync errors:

[1766509.702598] psmouse serio1: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 6
[1766509.712794] psmouse serio1: DualPoint TouchPad at isa0060/serio1/input0 - driver resynced.
[1766509.722987] psmouse serio1: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 6
[1766509.733151] psmouse serio1: DualPoint TouchPad at isa0060/serio1/input0 - driver resynced.
[1766509.743293] psmouse serio1: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 6
[1766509.753533] psmouse serio1: DualPoint TouchPad at isa0060/serio1/input0 - driver resynced.

I see these pop up in dmesg every week or two; they run for maybe a minute or so and then vanish, with no obvious ill effects. Not sure how to reproduce them.

3) Click-and-drag (e.g. selecting text in an xterm) suddenly quits working. I've only seen this happen once. Unloading and reloading psmouse.ko fixed it. This problem mystifies me because when I ran xev, I still saw all of the proper events coming from the input device. So maybe it was caused by something higher in the stack.

4) Tap-to-click is broken on Rushmore[1]. Root cause: when transitioning from Linux 3.8 (touchpad detected as generic PS/2 mouse) to 3.9 (touchpad detected as an ALPS touchpad), tap-to-click in the pointer settings may need to be enabled by hand. If the touchpad is detected as a generic PS/2 mouse, tap-to-click will work regardless of this setting.

5) Pointer jumps all over the screen after suspend/resume on a Rushmore touchpad. Seen once, cannot reproduce.

6) "Noisy" X/Y values on Rushmore[2]. Reporter is investigating whether this shows up on other drivers. Three possibilities include: i) it's noisy everywhere, even in Windows; ii) the input data is noisy, and the driver needs to clean it up; or iii) the other drivers get "clean" report data but we're using a bad init sequence so our report data is sketchy.

Any hints on reproducing #2, #3, or #5 would be appreciated.

[1] http://www.spinics.net/lists/linux-input/msg25813.html
[2] http://www.spinics.net/lists/linux-input/msg25787.html

Chris Diamand (chuis) wrote :

Hi all,

I have a Dell Vostro 3360 with a 'Dolphin V2' touchpad, running linux 3.10-rc1 (latest from git).
I have been using the psmouse-alps-1.3-alt.tbz driver, works fine (touchpad detected, multitouch, not too jumpy) except for edge scrolling (but I don't care about that because two-finger scrolling works).

I had to make a few changes to build it against the latest kernel tree though, and instead of doing the DKMS thing I just copied alps.c into drivers/input/mouse/alps.c then rebuilt the kernel. Attached is a patch which applies the 1.3-alt code to linux 3.10.

Is it possible to get this V2 support mainlined? This patch works fine for me, but I'd be happy to provide any data/have a go at mild hacking required to fix other issues (edge scrolling) if that is needed to get the driver upstream.

The work so far is great, thanks to everyone involved.

Cheers!
Chris

Erno Kuusela (erno-iki) wrote :

On Dells this has been worked on and at bug 1089413, you can find fix status for different Ubuntu versions there.

Chris Diamand (chuis) wrote :

Hi,

It has been fixed for 'Dolphin V1' touchpads - the driver is upstream so they are fine.

The problem is that 'Doplhin V2' touchpads don't yet work - although a driver has been written (it's in the DKMS module and works great), it hasn't yet been pushed to the mainline kernel.

It would be great if 'V2' support was mainlined too.

Apologies, I didn't really say this very clearly in my first comment.

Cheers!

Po-Hsu Lin (cypressyew) wrote :

Also affects:
201205-11042 Dell Precision M6700 (AlpsPS/2 ALPS DualPoint Touchpad)
And it could be solved by updating the system.

Bráulio (brauliobo) wrote :

affects me: dell vostro 3460. following http://askubuntu.com/questions/50491/detect-touchpad-as-touchpad/258513#258513 did made it work.

a package for this is being prepared?

PasKalou (pascal-padilla) wrote :

with Vostro 3360 a have the same pb.

http://askubuntu.com/questions/50491/detect-touchpad-as-touchpad/258513#258513 is good to me too

Anthony Wong (anthonywong) wrote :

Bráulio, which release are you using?

David Bailey (djb211) wrote :

I installed the package on my Fujitsu Lifebook and it is almost unusable - the touchpad fails to detect small touches (i.e. detects only a flat finger, not the fingertip); the x/y values are way off (y movement much faster than x, which is very sluggish). Multitouch features work though and ubuntu detects the touchpad as such.

Karol Szkudlarek, this bug was reported a while ago and there hasn't been any activity in it recently. We were wondering if this is still an issue? If so, could you please test for this with the latest development release of Ubuntu? ISO images are available from http://cdimage.ubuntu.com/daily-live/current/ .

If it remains an issue, could you please run the following command in the development release from a Terminal (Applications->Accessories->Terminal), as it will automatically gather and attach updated debug information to this report:

apport-collect -p linux <replace-with-bug-number>

If reproducible, could you also please test the latest upstream kernel available (not the daily folder) following https://wiki.ubuntu.com/KernelMainlineBuilds ? It will allow additional upstream developers to examine the issue. Once you've tested the upstream kernel, please comment on which kernel version specifically you tested. If this bug is fixed in the mainline kernel, please add the following tags:
kernel-fixed-upstream
kernel-fixed-upstream-VERSION-NUMBER

where VERSION-NUMBER is the version number of the kernel you tested. For example:
kernel-fixed-upstream-v3.13-rc5

This can be done by clicking on the yellow circle with a black pencil icon next to the word Tags located at the bottom of the bug description. As well, please remove the tag:
needs-upstream-testing

If the mainline kernel does not fix this bug, please add the following tags:
kernel-bug-exists-upstream
kernel-bug-exists-upstream-VERSION-NUMBER

As well, please remove the tag:
needs-upstream-testing

Once testing of the upstream kernel is complete, please mark this bug's Status as Confirmed. Please let us know your results. Thank you for your understanding.

Changed in linux (Ubuntu):
milestone: ubuntu-12.04 → ubuntu-14.04-feature-freeze
status: Fix Committed → Incomplete
summary: - synaptic touchpad not recognized on dell latitude e6510 and others
+ synaptic touchpad not recognized on dell latitude e6510
Changed in linux (Ubuntu Quantal):
milestone: ubuntu-12.04 → none
wgroiss (wolfgang-groiss-gmx) wrote :

Thank You, Christopher for reminding!
I had the same problem (see above): For me it's solved since Ubuntu 13.10.
I use now kernel 3.11.0-15.
Touchpad works fine. In settings i can choose between
- Scroll with 2 fingers and
- natural scroll
=> both works!
=> for me the bug is fixed!

Kalle Elmér (kallee) wrote :

I'm using the psmouse driver on a Dell Inspiron 17R SE and it makes the touchpad work as an actual touchpad and not just a mouse. However, I'm experiencing a significant amount of backlash. By this, I mean that when reversing the direction of movement the cursor will remain still for some time before it actually moves again. The behavior is very similar to the mechanical concept of backlash, which is nicely explained in this Wikipedia article:
http://en.wikipedia.org/wiki/Backlash_%28engineering%29

Could this be a flaw in the driver or in some other part of the software system? Is it just a property of my hardware? I have noticed the exact same behavior on a Fujitsu Lifebook with an ALPS touchpad that also works with this driver.

Kalle Elmér, thank you for your comment. So your hardware and problem may be tracked, could you please file a new report with Ubuntu by executing the following in a terminal while booted into a Ubuntu repository kernel (not a mainline one) via:
ubuntu-bug linux

For more on this, please read the official Ubuntu documentation:
Ubuntu Bug Control and Ubuntu Bug Squad: https://wiki.ubuntu.com/Bugs/BestPractices#X.2BAC8-Reporting.Focus_on_One_Issue
Ubuntu Kernel Team: https://wiki.ubuntu.com/KernelTeam/KernelTeamBugPolicies#Filing_Kernel_Bug_reports
Ubuntu Community: https://help.ubuntu.com/community/ReportingBugs#Bug_reporting_etiquette

When opening up the new report, please feel free to subscribe me to it.

Thank you for your understanding.

Helpful bug reporting tips:
https://wiki.ubuntu.com/ReportingBugs

This bug was nominated against a series that is no longer supported, ie quantal. The bug task representing the quantal nomination is being closed as Won't Fix.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu Quantal):
status: Fix Committed → Won't Fix
no longer affects: xserver-xorg-input-synaptics
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.