[ltp] Re: Hacking the UltraNav USB keyboard

Richard Neill linux-thinkpad@linux-thinkpad.org
Tue, 22 Jan 2008 00:46:44 +0000


Stefan Monnier wrote:
>> 6)This means either:
>>    - I'm looking at the wrong thing
>>    - The sniffer can't capture certain control packets
>>    - There's a bug in SnoopyPro
>>    - There isn't a sensitivity register in the hardware itself, but it's
>>        all done in software.
> 
> Maybe it's like the touchpad: by default it behaves exactly like a PS/2
> mouse using the same protocol, but you can change it to a different mode
> where it then uses a different protocol.  After that, you may get the
> raw data and control the sensitivity directly in software.

That's the interesting thing - if there are two modes, then WinXP is 
already putting the device into the "advanced mode". XP is making 
changes to the sensitivity of the device, but I'm not seeing any packets 
crossing the USB bus when this happens.

> 
> The other part that interests me is the special keys (e.g. to control
> sound volume, screen brightness, ...) which under Linux don't seem to
> send any events.

Sound volume (VolUp, VolDn, Mute) just works - I use xev to check which 
keys do what, and xbindkeys to activate a program.

The Fn + Fx keys don't do anything at all, but I'm normally using this 
keyboard with my desktop machine, so I've never needed to suspend it!
Fortunately, it's easy to work-around - trigger your scripts from a 
different combination, via xbindkeys.

> 
> PS: BTW does any one have a working usb-synaptics driver that can be
> used together with hibernation (the one I've found so far requires
> unload/reload across hibernation, which ends up creating a new device
> afterwards and so requires restarting Xorg before seeing the "new"
> touchpad).
> 

Is this a hibernation-specific issue? Can you unplug/replug while the OS 
is running normally? (To my surprise, WinXP actually lets you do this).
I don't know how you might solve the problem, but would gpm let you do 
it, by using it as some sort of mouse relay device?

Richard