• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[erledigt] Sandisk USB-Stick Problem

Hi!

Ich hab einen neuen 4 GB Stick von Sandisk. Leider funktioniert er bei mir nicht mit USB2. An einem USB1.1 Hub läuft er einwandfrei.

Ich hab Kernel 2.6.24.1 laufen, mit aktivierten USB-Debug Meldungen (auf Opensuse 10.3), und einen Via KT133 Chipsatz.

Ich konnte das Problem schon auf den Treiber ehci_hcd eingrenzen (also den USB2-Treiber). Mit uhci_hcd oder ohci_hcd läuft der Stick, aber eben nur sehr langsam.

Hier mal das Systemlog beim einstecken:

  • Mar 28 21:03:09 jochen kernel: usb usb2: usb resume
    Mar 28 21:03:09 jochen kernel: ehci_hcd 0000:00:10.3: resume root hub
    Mar 28 21:03:09 jochen kernel: hub 2-0:1.0: hub_resume
    Mar 28 21:03:09 jochen kernel: hub 2-0:1.0: state 7 ports 6 chg 0000 evt 0000
    Mar 28 21:03:09 jochen kernel: ehci_hcd 0000:00:10.3: GetStatus port 2 status 001803 POWER sig=j CSC CONNECT
    Mar 28 21:03:09 jochen kernel: hub 2-0:1.0: port 2, status 0501, change 0001, 480 Mb/s
    Mar 28 21:03:09 jochen kernel: hub 2-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x501
    Mar 28 21:03:09 jochen kernel: ehci_hcd 0000:00:10.3: port 2 high speed
    Mar 28 21:03:09 jochen kernel: ehci_hcd 0000:00:10.3: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT
    Mar 28 21:03:09 jochen kernel: usb 2-2: new high speed USB device using ehci_hcd and address 6
    Mar 28 21:03:09 jochen kernel: ehci_hcd 0000:00:10.3: port 2 high speed
    Mar 28 21:03:09 jochen kernel: ehci_hcd 0000:00:10.3: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT
    Mar 28 21:03:09 jochen kernel: usb 2-2: default language 0x0409
    Mar 28 21:03:14 jochen kernel: usb 2-2: khubd timed out on ep0in len=0/255
    Mar 28 21:03:19 jochen kernel: usb 2-2: khubd timed out on ep0in len=0/2
    Mar 28 21:03:19 jochen kernel: usb 2-2: uevent
    Mar 28 21:03:19 jochen kernel: usb 2-2: usb_probe_device
    Mar 28 21:03:19 jochen kernel: usb 2-2: configuration #1 chosen from 1 choice
    Mar 28 21:03:24 jochen kernel: usb 2-2: khubd timed out on ep0out len=0/0
    Mar 28 21:03:24 jochen kernel: usb 2-2: can't set config #1, error -110
    Mar 28 21:03:24 jochen kernel: drivers/usb/core/inode.c: creating file '006'
    Mar 28 21:03:24 jochen kernel: usb 2-2: new device strings: Mfr=1, Product=2, SerialNumber=3
    Mar 28 21:03:24 jochen kernel: usb 2-2: Product: U3 Cruzer Micro
    Mar 28 21:03:24 jochen kernel: usb 2-2: Manufacturer: SanDisk

Meine Suche hat bislang nicht viel ergeben. Das beste Ergebnis war noch das hier:

I needed USB-Mon to debug a flaky USB stick from SanDisk.
I got the error message: can't set config #1, error -110
-110 is a timeout error. Because other sticks work well, it cannot be a kernel problem per se.
After monitoring the traffic with USB-Mon I found out that the Linux driver has difficulty to read the string descriptors from the stick.
Because string descriptors are not necessary for operation, I disabled them in ~/linux-2.6.x/drivers/usb/core/message.c.
Without reading the string descriptors the stick worked.
http://famschmid.net/linuxtutorial.html#usbmon

Allerdings ist mir die Beschreibung jetzt nicht ausfühlich genug, um den Kernel entsprechend anzupassen...


Hat jemand eine Idee, wie ich den Stick mit USB2-Tempo zum laufen bekomme?
 

misiu

Moderator
Teammitglied
Von welchem Hersteller ist die Mutterplatine?
Soweit ich mich erinnern kann haben damalige Chipsätze noch keine
USB 2.0 High-Speed-Controller .
Was sagt:
Code:
lspci -vv

MfG
misiu
 
Hi misiu!

Das Board ist von MSI.

Ist bin mir recht sicher, daß der USB-Port USB 2 kann. Ein alter 0,5GB Stick läuft am gleichen Port mit ca. 6MByte/s. Also 5-6 x schneller als mein neuer Stick, und zu schnell für USB 1.1.


Trotzdem hier die Ausgabe von lspci -vv: http://phpfi.com/306625

00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82) (prog-if 20 [EHCI])
 

whois

Ultimate Guru
Hi

Code:
00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82) (prog-if 20 [EHCI])

Code:
00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) (prog-if 00 [UHCI])
00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) (prog-if 00 [UHCI]



cu
 

misiu

Moderator
Teammitglied
Mit dem USB 2.0-Controller, hab ich schon gesehen, allerdings:
Ich hab Kernel 2.6.24.1 laufen, mit aktivierten USB-Debug Meldungen (auf Opensuse 10.3), und einen Via KT133 Chipsatz.
Dabei, laut deiner lspci-Ausgabe ist es:
VT8366/A/7 [Apollo KT266/A/333]

Dieser Chipsatz (KT266A) hab ich mal auf einer Soltek-Platine gehabt
und ist mit USB 2.0 gelaufen, allerdings mangels schnellerer Geräte
konnte ich damals kaum die Geschwindigkeit prüfen.

Auf deiner Stelle würde ich zuerst den Stick neu formatieren.
Lese dazu:
http://www.linux-club.de/ftopic71294.html
Der Stick sollte auch nicht am USB-Hub , sondern direkt am Rechner angeschlossen sein.
Dann kannst du noch versuchen zuerst den ehci-Treiber vor dem
uhci zu laden:
Lösung: Beim Reboot gleich wieder von CD/DVD booten und
das Rettungssystem starten. Dann auf der Root-Partition die Datei
/etc/sysconfig/kernel editieren und bei "MODULES_LOADED_ON_BOOT"
die Module
Code:
"ehci_hcd ohci_hcd uhci_hcd"
hinzufügen.
Danach kann der reguläre Reboot durchgeführt werden und die USB-Hardware funktioniert.

Modul "ehci" bedient USB 2-Geräte
Module "ohci" "uhci" bedienen USB 1 - Geräte

MfG
misiu
 
Moin!

whois, ich bin nicht sicher was du mir sagen willst.. ;-)
Ist es nicht normal, daß der Chipsatz beide USB-Normen hat?

However, am gleichen USB-Port funktioniert mein alter 0.5 GB-Stick wesentlich schneller (ca. 6 MByte/s). USB2 funktioniert also im Prinzip schon.

Den Tip mit Fat-16 hab ich spaßhalber eben auch mal ausprobiert. Bringt auch nichts. Wundert mich aber auch nicht, da er ja gar nicht erst so weit kommt, sich das Dateisystem anzusehen...

Das mit "MODULES_LOADED_ON_BOOT" hatte ich auch schon probiert. Ist aber unnötig, da er schon den "richtigen" Treiber (ehci) benutzt. Nur der will eben nicht mit meinem Stick warm werden.


Ich werde wohl versuchen müssen, die USB-Treiberentwicker ausfindig zu machen... :(
 

misiu

Moderator
Teammitglied
Ist der Stick denn mit dem Default-Kernel von SuSE gelaufen?
Hast du den Stick schon woanders benutzt?

MfG
misiu
 

whois

Ultimate Guru
Jochen-of-Borg schrieb:
Ist es nicht normal, daß der Chipsatz beide USB-Normen hat?
Doch mich hatte das UHCI stutzig gemacht da ich nachgesehen habe und bei mir nur OHCI und EHCI lief.
Ich bin aber gerade eines besseren belehrt worden durch Google und misiu.

http://www.linux-usb.org/devices.html
 
Ich glaube, es liegt doch nicht an Linux...

Eben hab ich den Stick nochmal unter Windows getestet. Da hat er auch rumgezickt (vorher hatte ich ihn nur am USB1.1-Hub getestet).

Ist also wohl ein Hardware-Problem... :(

Aber Danke für eure Mühe!
 
Oben