Extrem langsame Geschwindigkeit von externer Festplatte: Habe ich nur USB 1?

cabriofahrer

Well-Known Member
Seit längerer Zeit (ich glaube, unter 10.x hatte ich das Problem nicht), bekomme ich über USB (der Port ist aber garantiert 2.0) nur eine maximale Geschwindigkeit von 1MB/s auf meiner externen Festplatte oder auf USB-Sticks. Hat das vielleicht etwas damit zu tun, dass es nicht über ehci läuft, der USB 2.0 vorsieht?

Ein dmesg der Festplatte zeigt folgendes:

Code:
ugen0.6: <Western Digital Elements 10B8> at usbus0
umass1 on uhub1
umass1: <Western Digital Elements 10B8, class 0/0, rev 2.10/10.12, addr 6> on usbus0
umass1:  SCSI over Bulk-Only; quirks = 0xc101
umass1:5:1: Attached to scbus5
pass5 at umass-sim1 bus 1 scbus5 target 0 lun 0
pass5: <WD Elements 10B8 1012> Fixed Direct Access SPC-4 SCSI device
pass5: Serial Number 575842314539343059355458
pass5: 1.000MB/s transfers
GEOM: new disk da1
da1 at umass-sim1 bus 1 scbus5 target 0 lun 0
da1: <WD Elements 10B8 1012> Fixed Direct Access SPC-4 SCSI device
da1: Serial Number 575842314539343059355458
da1: 1.000MB/s transfers
da1: 953837MB (1953458176 512 byte sectors)
da1: quirks=0x2<NO_6_BYTE>
da1: Delete methods: <NONE(*),ZERO>

Hier ist also umass im Spiel. Laut umass(4) gilt:

Code:
The umass driver provides support for Mass    Storage    devices    that attach to
     the USB port.

     To    use the    umass driver, usb(4) and one of    uhci(4)    or ohci(4) or ehci(4)
     or    xhci(4)    must be    configured in the kernel.  Additionally, since umass
     uses the SCSI subsystem and sometimes acts    as a SCSI device, it requires
     da(4) and scbus(4)    to be included in the kernel.

M.E. hat nur ehci USB 2.0.
Ist es also so, dass der USB-Controller nicht über ehci angesprochen wird, sondern über ohci oder etwas anderes und deshalb so langsam ist? Wie kann ich das genauer überprüfen? Wie gesagt, das war nicht immer so. Hat sich da seit 10.x etwas geändert?
 
Zwischenbericht: usbconfig sagt folgendes:

Code:
# usbconfig
ugen1.1: <nVidia EHCI root HUB> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.1: <nVidia OHCI root HUB> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE (0mA)
ugen0.2: <SEM USB Keyboard> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (98mA)
ugen0.3: <hp photosmart 7600 series> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (2mA)
ugen0.4: <PixArt Imaging Inc. USB2.0Camera> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA)
ugen0.5: <RAPTOR-GAMING RAPTOR-GAMING LM1> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA)
ugen0.6: <Western Digital Elements 10B8> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA)

Obwohl USB 2.0 offensichtlich möglich ist (Zeile 1, "usbus1"), hängt alles an usbus0, der offensichtlich USB 1.x ist. Sehr merkwürdig.
Vielleicht liegt es an den BIOS-Einstellungen?
 
Hast Du denn kein Handbuch des Motherboards? Da kannst Du doch sehen, welche USB Schnittstellen USB 1 oder USB 2 sind. Bei neueren Rechnern sind unterschiedlichen USB Schnittstellen auch farbig codiert. Hast Du denn an den BIOS Einstellungen was geändert? Wenn nicht, von selber änder die sich doch nicht oder?
 
Ich habe das Problem entdeckt, die Ausgabe von usbconfig machte mich stutzig: USB 2.0 haben anscheinend tatsächlich nur die vier hinten am Rechner zugänglichen USB-Ports. Als ich die Festplatte dort einstöpselte, hatte ich auf einmal eine Geschwindigkeit von 23,5 MB/s trotz NTFS auf der Festplatte. Damit ist auch meine Fragestellung in einem anderen Thread von mir, dass die geringe Geschwindigkeit mit fuse bzw. NTFS zusammenhängen könnte, gelöst.
Das Problem ist, dass bei diesem Mainboard die beiden internen USB-Anschlüsse, die man mit einem Kabel dann an die am Gehäuse oben sitzenden Buchsen anschließen kann, nur USB 1.1 sind. Laut dem Handbuch des Mainboards (MCP61M2M2), das ich mir als PDF aus dem Internet herunterladen konnte, verfügt dieses über 8 USB 2.0 Anschlüsse, was dann offensichtlich gelogen ist.
Auch im BIOS lässt sich da nichts einstellen.
Früher hatte ich ein anderes Mainboard, das kaputt ging und mit dem ich dann am Gehäuse USB 2.0 hatte. Deswegen hätte ich nach dem Tausch da so nicht ganz einfach drauf kommen können.

Tja, wie blöd, jetzt, wo ich es endlich weiß, werde ich wohl meine externe Festplatte und die USB-Sticks immer hinten einstecken müssen, und das Keyboard und die Maus oben am Gehäuse, wie praktisch, es sei denn ich könnte (siehe Ausgabe von usbconfig) mit FreeBSD erreichen, dass usbus0 so wie auch usbus1 mit EHCI läuft und nicht mit OHCI.

Geht das? Vielleicht ist die Information des Handbuchs de Boards doch nicht gelogen, aber aus irgendeinem Grund steuert FreeBSD usbus1 eben mit EHCI an und usbus0 mit OHCI?
 
Ob FreeBSD lügt, weiß ich nicht, glaube es aber eher nicht.
Ich arbeite ja auch mit hinlänglich alter HW und möchte trotzdem gute Performance. Weil ich sehr viel mit Sticks und externen Platten arbeite (inzwischen meist NTFS), ist mir das wichtig. Wichtig genug, dass ich am PC unbedingt USB3 haben möchte!
Es gibt für etwa 15€ - 30€ PCI-Karten, die USB3 können.
Mein Modell kann ein oder zwei "USB3-Kanäle". Ich nenne das mal so. Ob ein oder zwei hängt vom Mainboard ab und von einer zusätzlich zu realisierenden Spannungsversorgung.
Weil ich meine HW inzwischen upgegraded habe, nutze ich es nur noch in meinem Notsystem und nicht mehr aktiv. Es funktionierte aber vollkommen problemlos in FreeBSD.
Dazu gibt es dann einfache USB3-Verlängerungskabel, damit ich "von Hinten nach Vorne komme" und recht günstige USB3-HUBs, mit eigener Spannungsversorgung, die ausreichend Schnittstellen zur Verfügung stellen können, damit ein konsistentes Arbeiten mit USB3 auf alter HW problemlos möglich ist, auch mit FreeBSD.
 
Dazu gibt es dann einfache USB3-Verlängerungskabel, damit ich "von Hinten nach Vorne komme" und recht günstige USB3-HUBs, mit eigener Spannungsversorgung, die ausreichend Schnittstellen zur Verfügung stellen können, damit ein konsistentes Arbeiten mit USB3 auf alter HW problemlos möglich ist, auch mit FreeBSD.
So mach ich es auch. Wer ein Mal den deutlichen Unterschied wegen der gesteigerten Datenübertragungsrate erlebt hat, möchte USB 3 nie mehr missen.
 
So mach ich es auch. Wer ein Mal den deutlichen Unterschied wegen der gesteigerten Datenübertragungsrate erlebt hat, möchte USB 3 nie mehr missen.
Ja, USB3 macht Spaß im Vergleich zu USB2. Allerdings habe ich schon einige Erfahrungen mit verschiedenen USB3-Sticks und USB3-Festplatten gesammelt und nutze fast nur noch USB3-Festplatten. Sie sind mittlerweile auch sehr handlich und deutlich zuverlässiger als Sticks.
Eine mit UFS2 formatierte USB3-Festplatte ist auf meinem Desktop-Rechner an FreeBSD sau schnell, da werden Daten mit knapp 90 MB/s rüber geschaufelt. Sowas bekomme ich mit verschiedenen Sticks nicht hin.
 
Bei Front-Ports muss man auch drauf achten, ob das Frontpanel und die Kabel die höhere Geschwindigkeit überhaupt unterstützen. Also entsprechend geschirmt sind. Ich hab hier zum Beispiel ein älteres Gehäuse, wo an den Front-Ports angeschlossene Geräte mit 40MB/s starten und dann recht schnell auf 10MB/s oder sogar 1MB/s runterstufen.
 
Ob FreeBSD lügt, weiß ich nicht, glaube es aber eher nicht.

Das "gelogen" bezog sich nicht auf FreeBSD, sondern auf die Anleitung des Mainboards. Aber vielleicht ist selbst das nicht gelogen, denn in man ehci steht folgendes:

Code:
EHCI controllers are peculiar in that they can only handle the USB 2.0
     protocol.  This means that they normally have one or more companion
     controllers (i.e., ohci(4) or uhci(4)) handling USB 1.x devices.
     Consequently each USB connector is electrically connected to two USB
     controllers.  The handling of this is totally automatic, but can be
     noticed since USB 1.x and USB 2.0 devices plugged in to the same
     connector appear to connect to different USB buses.

Das ist wahrscheinlich die Erklärung dafür, dass ich usbus0 und usbus1 mit unterschiedlichen Geschwindigkeiten habe (1.1 und 2.0).
In der manpage ist weiter von tunables die Rede, wobei wenn ich das hier richtig verstehe

Code:
hw.usb.ehci.no_hs
             This tunable disables USB devices to attach like HIGH-speed ones
             and will force all attached devices to attach to the FULL- or
             LOW-speed companion controller.  The default value is 0 (off).

kann ich damit nur verhindern, dass devices als High-speed (2.0) erkannt werden und alle devices als FULL- oder LOW (1.1) forciert werden.

Ich hätte es aber gerne umgekehrt, also geht das nicht, oder?

Dazu gibt es dann einfache USB3-Verlängerungskabel, damit ich "von Hinten nach Vorne komme" und recht günstige USB3-HUBs, mit eigener Spannungsversorgung, die ausreichend Schnittstellen zur Verfügung stellen können, damit ein konsistentes Arbeiten mit USB3 auf alter HW problemlos möglich ist, auch mit FreeBSD.

Super Tipp, habe ich noch nie gesehen. Wie heißen die genau und kannst Du einen Beispiellink angeben?

Zu USB 3.0: Es scheint keine Karten mit PCI Schnittstelle zu geben, sondern nur mit PCI-E, und das habe ich nicht, bzw. ist die unterm Graka-Lüfter. In einem anderen Thread hatte mir jemand ein spezielles Kabel aufgezeigt, vielleicht wäre das die Lösung.
Die Performance mit USB 2.0 (jetzt, wo ich es am richtigen Port anschließe), FreeBSD und NTFS halte ich für sehr gut.

Bei Front-Ports muss man auch drauf achten, ob das Frontpanel und die Kabel die höhere Geschwindigkeit überhaupt unterstützen. Also entsprechend geschirmt sind. Ich hab hier zum Beispiel ein älteres Gehäuse, wo an den Front-Ports angeschlossene Geräte mit 40MB/s starten und dann recht schnell auf 10MB/s oder sogar 1MB/s runterstufen.

Das scheint ein ganz wichtiger Punkt zu sein, deshalb Frage an @Yamagi : Nach dem in der manpage von EHCI Gesagten, kann es sein, dass alleine aufgrund der internen Kabel und der Frontports (bei mir oben) diese Anschlüsse automatisch als 1.1 erkannt werden und mit ohci und nicht mit ehci betrieben werden?
 
Zu USB 3.0: Es scheint keine Karten mit PCI Schnittstelle zu geben, sondern nur mit PCI-E,
Da meine schon älter ist, kann es durchaus sein, dass sich die Situation geändert hat. Meine kaufte ich damals im Vorbeigehen bei unserem sehr guten Lieferanten, der aber nun nicht mehr Teile verkauft.
Ich glaube, dass PCI-E in PCI gesteckt werden kann (das Kleine passt ins Große), bin da aber nicht 100% sicher, weil ich nun bei meiner Suche keine passende Information fand. Ich meine, dass ich das aber schon gemacht habe.
 
Das scheint ein ganz wichtiger Punkt zu sein, deshalb Frage an @Yamagi : Nach dem in der manpage von EHCI Gesagten, kann es sein, dass alleine aufgrund der internen Kabel und der Frontports (bei mir oben) diese Anschlüsse automatisch als 1.1 erkannt werden und mit ohci und nicht mit ehci betrieben werden?
Nein, OHCI und EHCI gibt an, wie FreeBSD den Controller erkennt. Wenn er ihn als OHCI erkennt, spielt das Kabel keine Rolle mehr, dann bist du in jedem fall auf USB 1.1 beschränkt. Bei vielen älteren Boards konnte man aber im BIOS einstellen, ob man USB 1 oder 2 will, je nach dem gab sich der Controller als OHCI oder EHCI aus. Vielleicht ist da was bei dir verdreht?
 
Kannst du vielleicht einfach mal ein Linux booten und dort deine Festplatte mal testen? Sollte es dort funktionieren, kann du die Hardware ausschliessen und es liegt an FreeBSD.
 
Kannst du vielleicht einfach mal ein Linux booten und dort deine Festplatte mal testen? Sollte es dort funktionieren, kann du die Hardware ausschliessen und es liegt an FreeBSD.

Und wie wäre das entsprechende Kommando in Linux zu usbconfig, um auch eine genaue Anzeige oder Ausgabe zu bekommen?


Bei vielen älteren Boards konnte man aber im BIOS einstellen, ob man USB 1 oder 2 will

Hatte ich auch vermutet, doch das BIOS (Phoenix - Award) gibt für "ONChip USB" nur die Option "v1.1+v2.0" an oder ganz deaktivieren. Das klingt irgendwie schon danach, als würden zwangsläufig beide Versionen zur Verfügung gestellt.
 
Danke soweit. Könnte mir mal jemand mal eine Linux-Live-Ditsro empfehlen, die auf eine CD passt und mit der ich das am besten testen kann?
 
Zurück
Oben