Code: Alles auswählen
[ 2973.920042] usb 5-2: new low speed USB device using uhci_hcd and address 9
[ 2974.092726] usb 5-2: configuration #1 chosen from 1 choice
[ 2976.392016] usb 5-1: new low speed USB device using uhci_hcd and address 10
[ 2976.550363] usb 5-1: config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt
[ 2976.550366] usb 5-1: config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt
[ 2976.572165] usb 5-1: configuration #1 chosen from 1 choice
[ 2976.574545] cdc_acm 5-1:1.0: ttyACM1: USB ACM device
Code: Alles auswählen
1. in /usr/src/linux/drivers/usb/host/uhci-q.c:
[Column ~1050]
static int uhci_submit_bulk(struct uhci_hcd *uhci, struct urb *urb, struct uhci_qh *qh)
{
int ret;
/* Can't have low-speed bulk transfers */
// if (urb->dev->speed == USB_SPEED_LOW)
// return -EINVAL;
if (qh->state != QH_STATE_ACTIVE)
// qh->skel = SKEL_BULK;
qh->skel = (urb->dev->speed == USB_SPEED_LOW ? SKEL_LS_CONTROL : SKEL_BULK);
ret = uhci_submit_common(uhci, urb, qh);
// if (ret == 0)
if (ret == 0 && urb->dev->speed != USB_SPEED_LOW)
uhci_add_fsbr(uhci, urb);
return ret;
}
2. in /usr/src/linux/drivers/usb/core/config.c in der Funktion usb_parse_endpoint(...):
[Column ~140]
/* Some buggy low-speed devices have Bulk endpoints, which is
* explicitly forbidden by the USB spec. In an attempt to make
* them usable, we will try treating them as Interrupt endpoints.
*/
if (to_usb_device(ddev)->speed == USB_SPEED_LOW &&
usb_endpoint_xfer_bulk(d)) {
dev_warn(ddev, "config %d interface %d altsetting %d "
"endpoint 0x%X is Bulk; this violates USB spec for "
"low speed devices.\n",
cfgno, inum, asnum, d->bEndpointAddress);
// dev_warn(ddev, "config %d interface %d altsetting %d "
// "endpoint 0x%X is Bulk; changing to Interrupt\n",
// cfgno, inum, asnum, d->bEndpointAddress);
// endpoint->desc.bmAttributes = USB_ENDPOINT_XFER_INT;
// endpoint->desc.bInterval = 1;
// if (le16_to_cpu(endpoint->desc.wMaxPacketSize) > 8)
// endpoint->desc.wMaxPacketSize = cpu_to_le16(8);
}
Nein, und daran wird sich wohl auch nichts mehr ändern - schätze ich.Benji hat geschrieben: ich wollte mal fragen, ob es zu dem Thema was neues gibt? Der Betrag ist ja schon fast ein Jahr alt.
Wirklich? Osamu verwendet auch V-USB in einer früheren Version. Seine Implementierung ist nicht fehlerhaft, sondern die verwendete "Übertragungsart" funktioniert in neuen BS ganz absichtlich nicht mehr. (Unter Windows mit seinem Treiber ja doch noch) V-USB kann man aber auch auf andere Weise verwenden, nur bekommt man eben keinen virtuellen COM-Port und muss eine eigene Anwendung gegen z.B. LIBusb Programmieren.Benji hat geschrieben:Ich habe mich mal bei dem V-USB Link umgesehen. Kann man denn nicht deren Version einer USB Implementierung benutzen. Ich habe dort keine Hinweise gefunden, dass sie auch solche Probleme haben.