Bug Description

Ubuntu 10.10, Samsung NP-QX410. Trackpad settings not available. Can use trackpad, can use left and right click, but no options available to adjust settings. Personally having issue of rubbing trackpad while I type and it is very annoying.

The trackpad is recognized as a "PS/2 Logitech Wheel Mouse". No side scrolling, no disabling tap-to-click (annoying!) and no other trackpad settings available.

Thank you for taking the time to report this bug and helping to make Ubuntu better. Please execute the following command in a terminal after reproducing the issue, and it it will automatically gather debugging information needed for this bug:

The Samsung QX410 uses an Elantech trackpad. The psmouse driver includes support for some Elantech pads, but this particular one isn't recognized because it returns a different result when queried via the "magic knock" (function elantech_detect in elantech.c). This happens before the force_elantech module parameter comes into effect (which forces use of elantech when the firmware version is not recognized, but AFTER the magic knock has returned the expected result).

I forced the elantech driver to continue initializing the pad despite the unexpected reply to magic knock, and this is what I got (dmesg output):

If the system is rebooted with the modified psmouse driver, the device gets properly reported as a touchpad and all the relevant controls appear in the mouse control panel. However since data received from the pad is apparently not decoded properly by the psmouse driver (different encoding schema maybe), nothing really works: there's no pointer movement and the only thing that generates events (as read by evtest) are the left and right buttons (and then, not consistently).

I'm attaching output from evtest (keep in mind I was sliding my finger across the pad and clicking buttons, all that registers are the button clicks) and from dmesg, showing loss of sync and subsequent reconnection from the driver.

I hope this helps with this bug, I guess a lot of newer computers will start using these newer Elantech pads and it'd be great to have support out of the box.

Since this is a hardware detection issue, shouldn't it be reassigned to kernel so that the right people see it? Who can do that? It doesn't seem to me that this has anything to do with xorg-video-intel.

For my NF210, I also tested against Fedora kernel to determine if this was an Ubuntu thing or a more general kernel problem. Same issue. So I reported to bugzilla.kernel.org. Feel free to add comments to that bug if you have the same problem.

I too have a samsung nf-210 and am also affected by this bug. This is indeed a kernel bug and not related to xserver-xorg-video-intel :)
Most likely the new protocol has to be reversed so a new patch for the psmouse driver can be written. Is there actually anyone working on this bug atm?

Tried patch from #113 on 2.6.38.11-generic on my Samsung RC512 and it gives me two-finger scrolling (finally!), a two-finger tap anywhere on touchpad will bring up the right-click menu, and double-tap-and-drag. As noted above, there is a bit of wobble. If there is middle-click emulation in this patch, I'm not able to do it.

I simply rmmoded the old psmouse driver, then modprobed the old one on the fly and things started working. . Mouse pointer functionality, two finger scroll and double-tap-for-right-click are what I tested, all seem to work just as with the previous patch (I was using the dkms version of the elantech-v6 patch).

This is on Natty with a just-installed 2.6.38-11 kernel, running on a Samsung QX410.

himegoto: First, please run 'sudo modprobe psmouse' (which I'm expecting will fail), then 'dmesg > dmesg-psmouse-elantech-dkms.txt'. Please provide the output from modprobe and the dmesg-psmouse-elantech-dkms.txt file here. After that you can remove the package by running 'sudo dpkg -r psmouse-elantech-dkms'. Then running 'sudo modprobe psmouse' should get your touchpad working again.

EricDP: Your problem is due to configuration differences between i386 and amd64 kernels in conjunction with how I created the dkms package. I've uploaded a new package which should fix this. Please give it a try.

Hi Seth, thanks for your support with this. I have a Samsung SF310 and am running ubuntu natty (whatever the default kernel is). I have installed your patch from post #123. Most things work but I cant click and drag with 2 fingers (i.e. click left mouse button and drag with the other finger). is this a known issue or is it supposed to work? It was working fine with the patch from post #63 but its no longer working correctly. Can you advise on what I need to do?

v0.2 seems to be working on my nf210 with the 32-bit fix. I didn't test everything, but being able to disable tap-to-click and have two-finger scroll working is good enough for me. And having a DKMS package so I'm not building from scratch is a definite bonus. Thanks!

I applied the patch at comment 64 to my Samsung NC210 netbook running 64 bit Ubuntu 11.04 (kernel 2.6.38.11) and after a reboot the touchpad is recognised (previously it had been detected as a psmouse. Mouse preferences now has a touchpad tab which allows me to turn off mouse-clicks on the touchpad, and activate two finger scrolling. This is fine for me.

Patch on post 132 worked perfectly for me. Trackpad, two-finger touch for right click and two-finger scroll function as they should.

It'd be nice to see some support from elantech on this, though, to get the full range of features working properly. It really is a cool trackpad... even though I'd kill for a regular synaptics after this enormous hassle getting it working.

On Sat, Oct 15, 2011 at 12:51:08AM -0000, Craig wrote:
> I have just upgraded to oneiric and I am still unable to properly use my
> trackpad. Here are some details:
>
> Samsung QX410-J01

Craig: We have some successful testing with the QX410, but it appears
that there may be more than one variant of this model. Please open a new
bug for your issue by running 'ubuntu-bug linux' in a terminal. Thanks!

I have a QX 410 running ubuntu 11.04 and the trackpad issue is as follows. The Elantec Trackpad or "Magicpad" is misdetected as a generic ps2 mouse so scroll functions aer not available also Trackpad doesn't disable while typing! I hav also tried installing the new Ubuntu 11.10 and the problem is worse in 11.10 the left and right trackpad button both do a left click so context menus and right click options don't work either!

On Sun, Jan 01, 2012 at 03:47:40PM -0000, CDR Services wrote:
> I have a QX 410 running ubuntu 11.04 and the trackpad issue is as
> follows. The Elantec Trackpad or "Magicpad" is misdetected as a generic
> ps2 mouse so scroll functions aer not available also Trackpad doesn't
> disable while typing! I hav also tried installing the new Ubuntu 11.10
> and the problem is worse in 11.10 the left and right trackpad button
> both do a left click so context menus and right click options don't work
> either!

Please file a new bug for your issue by running 'ubuntu-bug linux' in a
terminal. Thanks!

thanks for helping me detect my mouse.
Here are my xinput, lspci, dmesg, here is what i'm now unsure of, how do I get the touchpad window under mouse options so I can set two finger scrolling or other multitouch functions. when I try synclient, I get the following error.

This driver is broken on official kernel 3.8. In linux/drivers/input/mouse/input-mt.c:
function input_mt_init_slots now requires 3 args, with the new arg being flags. I set flags to 0 in synaptics.c:699 in this patch and it re-compiled fine. I have no clue as to what that will break, but I saw in the mainline kernel synaptics.c that's what it was set to.

/**
* input_mt_init_slots() - initialize MT input slots
* @dev: input device supporting MT events and finger tracking
* @num_slots: number of slots used by the device
* @flags: mt tasks to handle in core
*
* This function allocates all necessary memory for MT slot handling
* in the input device, prepares the ABS_MT_SLOT and
* ABS_MT_TRACKING_ID events for use and sets up appropriate buffers.
* Depending on the flags set, it also performs pointer emulation and
* frame synchronization.
*
* May be called repeatedly. Returns -EINVAL if attempting to
* reinitialize with a different number of slots.
*/
int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots, unsigned int flags)