Re: PixArt Imaging USB mouse ICs - Linux users cursed forever?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 05, 2019 at 12:43:29PM +0100, Sebastian Parschauer wrote:
> Hi list,
> 
> the ICs for wired USB mice from PixArt Imaging are all around. But they
> have a buffer overflow bug if they are not always polled and disconnect
> + reconnect periodically on VTs without a user-space driver running.
> We add HID_QUIRK_ALWAYS_POLL years after the first bug reports if users
> even understand that they have to report a bug for their presumably dead
> simple mouse device.
> 
> With the PAN3511 it was rather easy as USB vendor and product ID were
> always the same (093a:2510). But with ICs with modifiable USB IDs things
> got really complicated for us to catch the affected devices.
> 
> So my idea was to ask PixArt Imaging for fixing the buffer overflow in
> their chips for future generations but the USB controller part is not in
> their hands. They refer to ODMs (original design manufacturers). So
> basically they integrate IP cores and proprietary firmware from another
> company.
> 
> In my howto I describe the issue and offer help:
> https://github.com/sriemer/fix-linux-mouse
> 
> I think a proper howto is a good way to solve this. And it generated
> patches for three mice already as people were linking to it and I found
> the mice this way.
> 
> So I kindly ask you to promote the howto and to contribute to it.
> 
> Are there maybe other ways to handle this better?
> 
> Enable HID_QUIRK_ALWAYS_POLL automatically if manufacturer information
> is PixArt for USB optical mice?

does this issue affect *all* pixart-based mice or just some?
if all, then it seems like a reasonable solution.

> Enable the gpm service by default?

A trivial hack would be to have a udev rule that checks for the Pixart
string in the device name and starts a custom systemd service that does
nothing but

    fd = open(device node)
    while (true) read(fd, buffer, sizeof(buffer));

This should be enough? or does gpm do anything different?

Cheers,
   Peter




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux