All of lore.kernel.org
 help / color / mirror / Atom feed
From: dturvene <dturvene@dahetral.com>
To: Ben Gamari <bgamari.foss@gmail.com>
Cc: Seth Forshee <seth.forshee@canonical.com>,
	opensource@dell.com, linux-input@vger.kernel.org,
	Andrew Skalski <askalski@gmail.com>,
	Jiri Kosina <jkosina@suse.cz>, Vojtech Pavlik <vojtech@suse.cz>,
	Peter Osterlund <pekero2@telia.com>,
	Laura Dietz <dietz@cs.umass.edu>
Subject: Re: New Alps protocol in the wild?
Date: Fri, 27 Jul 2012 15:15:10 -0400	[thread overview]
Message-ID: <5012E8BE.1080803@dahetral.com> (raw)
In-Reply-To: <87zk6lunsf.fsf@gmail.com>

Coming late the discussion, responses inline - Dave

On 07/27/2012 01:17 PM, Ben Gamari wrote:
> Seth Forshee <seth.forshee@canonical.com> writes:
>
>> On Fri, Jul 27, 2012 at 12:18:51PM -0400, Ben Gamari wrote:
>>> Recently I took shipment of a Dell Latitude E6430 (supposedly
>>> "certified" by Canonical). Sadly, out of the box the multitouch-capable
>>> Alps Dualpoint mouse is detected as a generic PS/2 device (bug filed
>>> here[1]). After a bit of poking around I figured out the signature
>>> ({0x73, 0x03, 0x0a}) and command_mode_resp (0x1d) of the device.
>>>
>>> Based on the other recent Dell models listed in alps_model_data, I tried
>>> configuring the device as a protocol v3 device. While in appearance the
>>> driver succeeded in configuring the device, it was clear that it was
>>> still operating in bare PS/2 mode (only bare PS/2 reports were received
>>> and 0x04 register was read to be 0x00 --- assuming the register read
>>> command is correct).  This is supported by Seth's alps-reg-dump tool[2],
>>> which declares that the device is "Not a v3 ALPS touchpad".  Trying to
>>> configure the device with protocol v4 resulted in the driver to fail
>>> during configuration (failing to enter absolute mode).  Given this
>>> evidence, it seems fairly clear that this device differs appreciably
>>> from any device currently supported by alps.c.
>> That's likely. It's known that there's at least one ALPS protocol
>> version that isn't supported.
>>
> I suspected that was the case.
I have a Dell I15R N5110 running Ubuntu 12.04 with the same signature 
and behavior.

Vbox with sforshee patch running Vista shows only ps/2 packets.  I 
hypothesized that the Vista driver didn't recognize the device either, 
but handled keyboard/touchpad event separation better.

I wrote a small serio_raw program to test the device.  Alps command mode 
works, but the GETINFO response when entering command mode is: 0x73, 
0x01, 0x0d, which fails the 0x88, 0x07 check in the alps.c code.  Once 
in command mode, the v3 logic (PSMOUSE_CMD_RESET_WRAP) works and I get 
the register number and value back from PSMOUSE_CMD_GETINFO.  v4 logic 
returns garbage.

>>> I've tried to collect PS/2 traces from a Windows 7 installation running
>>> under a patched Qemu[3]. Unfortunately, while Windows running on bare
>>> hardware configures the device perfectly, an installation from the same
>>> media seems to treat the device as a bare PS/2 device when running under
>>> virtualization. The PS/2 trace produced clearly shows the driver probing
>>> the device as an Intellimouse and failing that falls back to generic
>>> PS/2 reports. Can anyone think of what might have changed between the bare
>>> metal and the virtualized environment?
>> I'm thinking that when I was looking at the initialization from Windows
>> drivers it would first initialize it like a normal PS/2 mouse then later
>> the ALPS initialization would show up, almost like the default driver
>> ran through it's initialization first before the ALPS driver did. Did
>> you look further down in the logs to see if anything similar to the ALPS
>> initialization is happening later?
>>
> Sadly no. The driver comes with a configuration tool which when launched
> appears to trigger a reconfiguration.
>
>> Otherwise I don't have any ideas off the top of my head. This approach
>> generally worked fine with the machines/drivers I worked with.
>>
> Hmmm, that is truly unfortunate. I guess given this I'll just have to
> try piecing together a filter driver and collect the initialization
> process on bare metal. Hopefully at that point I'll be able to do the
> reversing of the data format over serio.
Yeah, unfortunate.  I may just use a usb mouse if it comes to that...
>
>>> I would love to take a stab at reversing this protocol variant, but
>>> the inability to get a trace from a virtualized working configuration is
>>> a real blocker. I suppose I could try writing a Windows filter driver
>>> but the virtualization approach seems orders of magnitude more
>>> convenient. Any ideas would be greatly appreciated.
>>>
>>> As a final note, I have read various places that ALPS had intended on
>>> releasing a closed source driver for some of their devices. Has anything
>>> happened on this front? Perhaps it would be easier to get a trace from a
>>> closed-source driver running on Linux than a closed-source driver
>>> running on Windows.
>> I've heard that such a driver exists, but I don't know where you can get
>> it. I _think_ some factory preinstalled Linux systems might ship with
>> it, so it's possible that it's something ALPS provides to its customers
>> but doesn't make publicly available.
>>
> Naturally. I never would have suspected that such a despicable company
> could be found in making something as innocuous as touchpads. Sheesh.
>
> Given the difficulty of the reverse engineering process and the
> proliferation of incompatible hardware variants, it seems a major
> customer really needs to step up and demand some sanity from these
> people. My understanding is that Dell currently does not have access to
> Alps specifications but given the volume they move it seems they are in
> a fairly unique position to exert pressure. Being a Dell partner, has
> Canonical taken any steps to start this dialogue?
>
> On that note, Canonical's certification certificate for the E6430 is
> currently incorrect. The desktop program guidelines clearly state that
> vertical scroll is on the grey list yet, as far as I can tell, the
> certificate makes no mention of the lacking support of the input
> hardware of this model.

My I15R was certified also, and currently incorrect.  I posted a query 
to Dell about Alps support but haven't heard anything back.  I suspect 
Alps and Dell are wary of offending Microsoft.

>
> Cheers,
>
> - Ben
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>


  reply	other threads:[~2012-07-27 20:16 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-27 16:18 New Alps protocol in the wild? Ben Gamari
2012-07-27 16:52 ` Seth Forshee
2012-07-27 17:17   ` Ben Gamari
2012-07-27 19:15     ` dturvene [this message]
2012-07-30  8:43       ` Jiri Kosina
2012-07-30 16:19 ` Ben Gamari
2012-07-31  5:19   ` Ben Gamari
2012-07-31  6:01     ` Dmitry Torokhov
2012-07-31 20:50       ` Ben Gamari
2012-07-31 19:17     ` Ben Gamari
2012-08-14 10:35     ` James
2012-08-14 16:01       ` Ben Gamari
2012-08-14 16:15         ` Seth Forshee
2012-08-15  5:49       ` Ben Gamari
2012-08-16  5:04         ` Ben Gamari
2012-08-17 16:46           ` dturvene
2012-08-17 17:04             ` Ben Gamari
2012-09-08 12:51               ` dturvene
2012-09-10 20:35                 ` Ben Gamari
2012-09-15 20:49                 ` dturvene
     [not found]                   ` <CAPtp-N_PbGABwC7PtNtEe7bitc=yg1oV2M6cK6Wb1PkVq6wa9A@mail.gmail.com>
2012-09-30 17:33                     ` dturvene

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5012E8BE.1080803@dahetral.com \
    --to=dturvene@dahetral.com \
    --cc=askalski@gmail.com \
    --cc=bgamari.foss@gmail.com \
    --cc=dietz@cs.umass.edu \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    --cc=opensource@dell.com \
    --cc=pekero2@telia.com \
    --cc=seth.forshee@canonical.com \
    --cc=vojtech@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.