Ich habe eine Variscite VAR-SOM-MX6 mit einem Linux 3.0.35 Kernel, mit zwei USB-Ports. Der erste Port ist ein OTG-Port, der an eine externe Mini-OTG-Buchse angeschlossen ist. Der zweite ist ein interner Host-Port, der zu einem Hub-Chip und dann zu einigen anderen Geräten geht. Wenn ich ein OTG-Kabel an den ersten Port angeschlossen habe und es als Host deklariere, funktioniert alles einwandfrei. Wenn ich ein normales Kabel oder überhaupt kein Kabel angeschlossen habe, wird der zweite Host-Port nicht ordnungsgemäß aufgelistet. Es muss nichts am anderen Ende des Kabels sein, also ist dies ein Fehler, der nur darauf bezogen ist, ob die OTG versucht, ein Host oder ein Gerät zu sein. Zum Beispiel, wenn ich ein OTG-Kabel einstecken und neu starten, enthält das Kernel-Protokoll die folgenden Zeilen.Linux OTG-Port vermasselt meinen anderen Host-Port
usb 2-1: new high speed USB device number 2 using fsl-ehci
usb 2-1: New USB device found, idVendor=0424, idProduct=2534
usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
hub 2-1:1.0: USB hub found
hub 2-1:1.0: 4 ports detected
usb 2-1.1: new high speed USB device number 3 using fsl-ehci
usb 2-1.1: New USB device found, idVendor=0424, idProduct=9e00
usb 2-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
usb 2-1.2: new high speed USB device number 4 using fsl-ehci
usb 2-1.2: New USB device found, idVendor=0403, idProduct=6011
usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-1.2: Product: Quad RS232-HS
usb 2-1.2: Manufacturer: FTDI
Wenn ich dann die OTG-Kabel vom Port 1 zerren, trennt sie alles auf Port 2:
usb 2-1: USB disconnect, device number 2
usb 2-1.1: USB disconnect, device number 3
usb 2-1.2: USB disconnect, device number 4
und dann versucht, alles neu zu auflisten, aber scheitert kläglich:
usb 2-1: new high speed USB device number 5 using fsl-ehci
usb 2-1: new high speed USB device number 6 using fsl-ehci
usb 2-1: new high speed USB device number 7 using fsl-ehci
usb 2-1: device not accepting address 7, error -71
usb 2-1: new high speed USB device number 8 using fsl-ehci
usb 2-1: device not accepting address 8, error -71
hub 2-0:1.0: unable to enumerate USB device on port 1
Ich vermute, dass ein Code die physischen Portnummern 1 und 2 verwendet, unabhängig davon, ob ein Port ein Host oder ein Gerät ist, während anderer Code nur die tatsächlichen Hostports betrachtet und die Portnummern verwirrt väterlicherseits. Hat jemand diesen Fehler schon einmal gesehen? Googeln hat nichts ausgemacht. Oder gibt es ein spezielleres Forum, wo ich diese Frage stellen sollte?