Denis A. AltoƩ Falqueto wrote:
I've bought a (el cheapo) midi-usb cable so I can
play my musical
keyboard (also el cheapo... but I'm no professional :)). The thing is
that when I try to use it in my laptop (Gigabyte W566U, ArchLinux 64
bits, up to date), it is not reliable. I play the keys and the midi
events are not delivered correctly. I'm using aseqdump to debug. For
example, I press 5 keys and see 5 key down events, but when I releas
them, only 2 o 3 note up events are shown. And if I play too many
notes, it just stops receiving any events from the device, dmesg show
a strange message "urb status -75" and reconnects the usb device.
Is there also a message when single events are lost?
75 means EOVERFLOW. linux/Documentation/usb/error-codes.txt says:
| -EOVERFLOW (*) The amount of data returned by the endpoint was
| greater than either the max packet size of the
| endpoint or the remaining buffer size. "Babble".
|
| (*) Error codes like -EPROTO, -EILSEQ and -EOVERFLOW normally indicate
| hardware problems such as bad devices (including firmware) or cables.
I tested the same cable on my old desktop (Asus
A7N8X-X motherboard,
nvidia MX440 graphics card, 5 years of intensive e loyal use,
ArchLinux 32 bits) and it works fine. The difference between the two
seems to be the usb module that handles the device. [...]
Does anyone has any suggestions on how can I force ohci_hcd to be
loaded before uhci_hcd? Or is it realy the problem?
ohci_hcd works only with an OHCI controller; uhci_hcd works only with
a UHCI controller. Loading the other one will not have any effect.
If you really want to try a different driver, connect the interface
through a USB 2.0 hub; this will be handled by ehci_hcd. But I guess
this won't make any difference.
What kernel version are you using on each machine?
The ICH8M chip of your laptop isn't known for making USB problems.
This might be a problem with a USB port (try another one) or the
laptop's wiring.
Best regards,
Clemens