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

USB 2.0, hohe schreib, niedrige Lesegeschwindigkeit

Hallo alle,

leider hab ich, wie ich finde, ein komisches Problem.

Meine externe Festplatte weist zwar eine normale Schreibgewschindigkeit auf, die Leserate dümpelt aber bei 4mb/s herum.
Unter windows XP läuft sie ganz normal bis perfekt :D ^^.

Mein system:

opensuse 11.1 (gnome)
Samsung R70-Aura Despina
Externe Platte: Toshiba MK2035GSS in ner AC Ryan Alubox ( gehäuse)


Code:
 dmesg | grep speed
usb 3-2: new high speed USB device using ehci_hcd and address 2
usb 5-1: new low speed USB device using uhci_hcd and address 2
usb 6-2: new full speed USB device using uhci_hcd and address 2
usb 7-1: new high speed USB device using ehci_hcd and address 4

Code:
 dmesg | grep usb
[...]
usb 7-1: new high speed USB device using ehci_hcd and address 4
usb 7-1: configuration #1 chosen from 1 choice
usb 7-1: New USB device found, idVendor=152d, idProduct=2338
usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
usb 7-1: Product: USB to ATA/ATAPI Bridge
usb 7-1: Manufacturer: JMicron
[...]
usb 7-1: SerialNumber: 222575540684

Also vom System her wird die Platte anscheinend als HighSpeed erkannt. Aber die Leserate is so niedrig und ich versteh nicht warum.
Hab es auch schon mit ner Live-CD von ubuntu 8.10 versucht. Selbes Phänomen. Kann es sein, dass sich irgendwas von meiner Hardware nicht mit dem Kernel verträgt ? Ich bin ein Noob, helft mir hier raus.

Bitte und schon mal danke, wenn jemand ne Idee hat das zu beheben oder herauszufinden woran es liegt.

gruß

christoph
 
A

Anonymous

Gast
christophWi schrieb:
Externe Platte: Toshiba MK2035GSS in ner AC Ryan Alubox ( gehäuse)
Wenn ich jetzt das richtige gefunden habe:
  • # Serial ATA mit 150 MBit/sec
    # 2 Platten, 4 Köpfe, 95.040 Zylinder
    # Mittlere Zugriffszeit 12 ms, Spur-zu-Spur-Suchzeit 2 ms
    # Drehzahl 4.200 U/min
    # 8,192 kByte Cache

Also eine auf minimalen Stromverbrauch optimierte Festplatte, angeschlossen über USB und erkannt wird dann ein
christophWi schrieb:
usb 7-1: New USB device found, idVendor=152d, idProduct=2338
usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
usb 7-1: Product: USB to ATA/ATAPI Bridge
usb 7-1: Manufacturer: JMicron
also nicht mal die "JM20337 Hi-Speed USB to SATA & PATA Combo Bridge", da müsste dann also zwischen dieser Kontroller-Brücke im Gehäuse auch noch ein Adapter zur Umwandlung von ATA/ATAPI auf SATA zu finden sein :???: :???: :???: :???:
Wenn ich mir mal überlege durch wieviel Treiber das schon mal im Kernel geht, und dann über welche Protokolle das dann auch noch Hardwareseitig geschleift wird, bis da mal was auf der (auch noch langsamen) Platte ankommt :???: :???: :???: also "HighSpeed" wird das nie und nimmer.

Ein bisschen mehr als das die traurigen 4MB/s die du angibst sollte zumindestens im sequentiellen Zugriff jedoch immer möglich sein.
gib mal als root folgende Ausgaben (wobei du immer anstatt sd? natürlich das richtige Device setzen müsstest. im Zweifelsfall noch mal mit
"fdisk -l | grep Disk" schauen welche Platte/Device es denn sein müsste )
Code:
 hdparm -tT /dev/sd?
Keine Ahnung bei dem Protokollwirrwarr, über welches Protokoll sich im Laufwerk jetzt überhaupt irgendwas abfragen oder gar steuern lässt.
versuchen wir mal was mit IDE/ATA Protokoll abzufragen
Code:
hdparm /dev/sd?
oder doch über die SCSI-Protokollschicht
Code:
scsiinfo -a /dev/sd?
und zeig mal welche Kernel-Module da bei dir jetzt geladen sind, wenn die Platte angeschlossen ist.
Code:
lsmod

Mal sehen, ob wir da überhaupt irgend wo was sehen, und erkennen können über welche Treiber Linux jetzt überhaupt mit der Platte arbeitet.

robi
 

misiu

Moderator
Teammitglied
Geschwindigkeit ist abhängig von dem eingesetztem Dateisystem. Welches ist drauf?

MfG
misiu
 
OP
C

christophWi

Newbie
schon mal danke für die antworten.


@ robi

Wenn ich jetzt das richtige gefunden habe:

# Serial ATA mit 150 MBit/sec

soweit richtig , aber hier eher Mb/s statt Mbit.

OK also



Code:
hdparm -tT /dev/sdb1

/dev/sdb1:
 Timing cached reads:   4430 MB in  1.99 seconds = 2223.46 MB/sec
 Timing buffered disk reads:   16 MB in  3.14 seconds =   5.10 MB/sec

Code:
hdparm /dev/sdb1

/dev/sdb1:
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 24321/255/63, sectors = 390700737, start = 63


Code:
scsiinfo -a /dev/sdb1
bash: scsiinfo: command not found
:D


Was das folgende alles bedeutet : Keine Ahnung, deswegen hab ichs mal ungekürzt reingestellt.
Code:
lsmod
Module                  Size  Used by
st                     39068  0 
ide_disk               14664  0 
ide_cd_mod             33952  0 
usb_storage           105744  1 
nls_iso8859_1           5352  1 
nls_cp437               7064  1 
vfat                   11752  1 
fat                    53592  1 vfat
nls_utf8                2160  1 
ip6t_LOG                7180  7 
xt_tcpudp               3608  2 
xt_pkttype              2152  3 
ipt_LOG                 6812  8 
xt_limit                3180  15 
xt_physdev              2832  2 
af_packet              20232  4 
sco                    11932  2 
bridge                 56920  1 
stp                     3020  1 bridge
rfcomm                 40904  4 
bnep                   14568  2 
l2cap                  22792  16 rfcomm,bnep
snd_pcm_oss            48528  0 
binfmt_misc            10084  1 
snd_mixer_oss          16808  1 snd_pcm_oss
snd_seq                61504  0 
snd_seq_device          8604  1 snd_seq
ip6t_REJECT             6024  3 
nf_conntrack_ipv6      24696  4 
ip6table_raw            2456  1 
xt_NOTRACK              2152  4 
ipt_REJECT              3480  3 
xt_state                2568  8 
iptable_raw             2760  1 
iptable_filter          3400  1 
cpufreq_conservative     8384  0 
cpufreq_userspace       4204  0 
ip6table_mangle         3128  0 
nf_conntrack_netbios_ns     2840  0 
cpufreq_powersave       2248  0 
nf_conntrack_ipv4      12792  4 
nf_conntrack           80496  5 nf_conntrack_ipv6,xt_NOTRACK,xt_state,nf_conntrack_netbios_ns,nf_conntrack_ipv4
acpi_cpufreq            8120  0 
ip_tables              19464  2 iptable_raw,iptable_filter
ip6table_filter         3240  1 
ip6_tables             21048  4 ip6t_LOG,ip6table_raw,ip6table_mangle,ip6table_filter
x_tables               23376  12 ip6t_LOG,xt_tcpudp,xt_pkttype,ipt_LOG,xt_limit,xt_physdev,ip6t_REJECT,xt_NOTRACK,ipt_REJECT,xt_state,ip_tables,ip6_tables
ipv6                  292328  25 ip6t_REJECT,nf_conntrack_ipv6,ip6table_mangle
fuse                   57840  7 
loop                   16660  0 
dm_mod                 73952  0 
arc4                    2216  2 
ecb                     3464  2 
crypto_blkcipher       19372  1 ecb
iwlagn                 98988  0 
mmc_block              10992  2 
iwlcore                95284  1 iwlagn
rtc_cmos               13000  0 
pcmcia                 38288  0 
hci_usb                13168  0 
wmi                     8160  0 
uvcvideo               56384  0 
sr_mod                 15940  1 
rfkill                 10948  2 iwlcore
snd_hda_intel         548980  3 
btusb                  13248  3 
yenta_socket           26404  1 
sdhci_pci               9144  0 
rtc_core               21396  1 rtc_cmos
snd_pcm                91984  2 snd_pcm_oss,snd_hda_intel
rsrc_nonstatic         10920  1 yenta_socket
led_class               5008  1 iwlcore
cdrom                  36184  2 ide_cd_mod,sr_mod
rtc_lib                 3560  1 rtc_core
snd_timer              24968  2 snd_seq,snd_pcm
sg                     35376  0 
iTCO_wdt               12416  0 
pcmcia_core            39140  3 pcmcia,yenta_socket,rsrc_nonstatic
sdhci                  20252  1 sdhci_pci
snd_page_alloc          9800  2 snd_hda_intel,snd_pcm
video                  24316  6 
joydev                 11392  0 
i2c_i801               12756  0 
compat_ioctl32          8504  1 uvcvideo
iTCO_vendor_support     4268  1 iTCO_wdt
ricoh_mmc               4504  0 
mmc_core               64992  2 mmc_block,sdhci
serio_raw               6412  0 
pcspkr                  3064  0 
bluetooth              60836  12 sco,rfcomm,bnep,l2cap,hci_usb,btusb
output                  3672  1 video
mac80211              241184  2 iwlagn,iwlcore
videodev               35328  2 uvcvideo,compat_ioctl32
snd_hwdep               9072  1 snd_hda_intel
nvidia               8147304  33 
snd                    73560  14 snd_pcm_oss,snd_mixer_oss,snd_seq,snd_seq_device,snd_hda_intel,snd_pcm,snd_timer,snd_hwdep
button                  8328  0 
battery                13856  0 
ac                      5776  0 
sky2                   50396  0 
v4l1_compat            14220  2 uvcvideo,videodev
i2c_core               35312  2 i2c_i801,nvidia
intel_agp              30048  0 
cfg80211               28136  3 iwlagn,iwlcore,mac80211
soundcore               8368  1 snd
usbhid                 52512  0 
hid                    41136  1 usbhid
ff_memless              8752  1 usbhid
uhci_hcd               26840  0 
ehci_hcd               54164  0 
sd_mod                 35272  7 
crc_t10dif              2152  1 sd_mod
usbcore               195712  8 usb_storage,hci_usb,uvcvideo,btusb,usbhid,uhci_hcd,ehci_hcd
edd                    10272  0 
ext3                  140696  2 
mbcache                 9484  1 ext3
jbd                    61688  1 ext3
fan                     6016  0 
ide_pci_generic         4652  0 
ide_core              115068  3 ide_disk,ide_cd_mod,ide_pci_generic
ata_generic             6044  0 
ata_piix               21996  5 
libata                183184  2 ata_generic,ata_piix
scsi_mod              178632  6 st,usb_storage,sr_mod,sg,sd_mod,libata
dock                   14164  1 libata
thermal                24408  0 
processor              49104  4 acpi_cpufreq,thermal
thermal_sys            14368  4 video,fan,thermal,processor
hwmon                   3720  1 thermal_sys


@misiu

Am Anfang hatte ich die Platt mit ext3 formatiert. Hier war das Problem ursprünglich vorhanden. Um dann mal zu testen obs an Linux liegt hab ich die Platte jetzt mit NTFS formatiert, damit ich sie auch mit Windows benutzen kann. Windows flott, Linux ... nicht so.

Was mich halt wundert is der Unterschied von Schreib- zu Leserate.

mfg
christoph
 

misiu

Moderator
Teammitglied
Was mich halt wundert is der Unterschied von Schreib- zu Leserate.

Ist auch komisch , normalerweise ist das Lesen viel schneller, als schreiben. Geschriebene Daten
werden zusätzlich geprüft, was Zeit kostet. Ich würde mal die USB 1.1-Module entladen
und dann die USB-Platte anschließen, vielleicht liegt es daran, dass sich die Module
gegenseitig stören und beim Lesen uhci_hcd statt ehci_hcd verwendet wird.

Mach es so:
Als root (su + passwort):

modprobe -r ehci-hcd

( entfernen des USB 2.0 - Moduls )

modprobe ehci-hcd

( laden des USB 2.0 - Moduls ) Danach evtl.:

rchal restart

danach Platte anschließen und nochmal prüfen.

MfG
misiu
 
A

Anonymous

Gast
Generell sollte die USB to ATA/ATAPi Bridge in den meisten Fallen problemlos funktieren, wenn man dem hier trauen kann
http://hardware4linux.info/component/18616/

Allerdings wie immer und überall gibt es auch Probleme mit diesen Chips hier mal der Link mitten ins "Wespennest" und dort gleich auf ähnliche Lesetests mit ähnlichen Ergebnissen. http://bugzilla.kernel.org/show_bug.cgi?id=9638#c42

Allerdings bin ich so fitt in Entwickler-Latein nun auch nicht ;) , um mich da in wenigen Minuten durch solche umfangreichen Probleme durch kämpfen zu können. Eventuell hast du oder irgend jemand anders mehr Zeit für solche Recherchen. Irgendwie habe ich da beim Überfliegen auch einen Patch gesehen, aber wahrscheinlich noch sehr jung, das er somit in den Suse-Kernel derzeit noch nicht drin sein kann.

robi
 
OP
C

christophWi

Newbie
hehe, das ganze mal durchgelesen, und iwie sind die ja auch nicht zu nem ergebnis gekommen.

Da gibt es aber einen Patch. Jetzt gibt es zwei wichtige Fragen für mich:

1. kann ich mir irgendetwas zerschießen wenn ich versuch den einzuspielen ? Wär bitter, läuft alles grad so schön bis auf USB Lesen ^^
2. wie spiel ich das teil ein, bekomm da nur text.


Richtig verstehen was die genau meinen bei Ihrem gelaaber tu ich aber ned. Is hier vielleicht jemand der das genauer versteht und die Güte hat mir das zu erklären.
Zumindest anreissen ob ich was machen kann oder ob ichs akzeptieren muss.

Sonst bleibt mir wohl nur die Notlösung, wenn ich was von der Platte brauch, es immer über das parallel installierte Windows zu machen. :(
Was dauerhaft halt auch nicht sein kann...

Hier nochmal der Wespennest-Link von Robi :D : http://bugzilla.kernel.org/show_bug.cgi?id=9638#c42
mfg

christoph


P.S: danke schon mal an robi und misiu
 
A

Anonymous

Gast
christophWi schrieb:
Is hier vielleicht jemand der das genauer versteht und die Güte hat mir das zu erklären.
Zumindest anreissen ob ich was machen kann oder ob ichs akzeptieren muss.

Also das Ganze läuft über mehrere Protokolle
Daten -> SCSI -> USB -> PATA -> SATA -> Patte
Stell dir das bildlich vor wie "Stille Post" mit dem 90 jährigen Opa in der Mitte ;) ;) ;) ;)

Ich versuch mal zu erklären was ich da glaube verstanden zu haben.

Bei der Umwandlung von USB in PATA in diesem Chip scheint es Takt oder Timingprobleme zu geben, die sowohl in Windows als auch in Linux auftreten und deren Fehlerbilder auch dort nachzuweisen sind. Linux ist hier im USB-Bereich etwas restriktiver, oder aggressiver oder keine Ahnung, jedenfalls anders als Windows und dadurch treten hier die Problem viel stärker auf. Problemeauswirkungen und deren Fehlerbilder sind insgesamt 3 oder 4 zu unterscheiden und betreffen sowohl lesen, schreiben als auch andere Komandos und reichen von unvollständigen Datenblöcken bis hin zum kompletten Verbindungsabbruch, in anderen Fällen (hatte ich irgend wo anders im Netz gesehen) sogar zur Datenverfälschung. Das Problem ist, im SCSI-Protokoll sind solche fehlerhafte unvollständige Blöcke nicht als solche mit den entsprechenden Fehlerflags markiert. Was dazu führt, das SCSI zB beim Lesen wegen unvollständiger Blöcke ins straucheln oder stottern kommt.

Was die Jungs dort versucht haben ist, mit winzig-kleinen geziehlten Pausen auf bestimmte Situationen zu reagieren. Sie haben sozusagen eine kleine Bremse eingebaut. Das ist mit Sicherheit nicht der Weisheit aller letzter Schluss, scheint aber eine gewisse Verbesserung zu bringen. Bei einen Chip haben sie mittlerweile im Kernel ein Inquiry Problem umgangen, diesen Patch habe ich in neuen Kerneln auch schon gesehen, betrifft aber nicht deinen Chip direkt
+/* Reported by Alexandre Oliva <oliva@lsd.ic.unicamp.br>
+ * JMicron responds to USN and several other SCSI ioctls with a
+ * residue that causes subsequent I/O requests to fail. */
+UNUSUAL_DEV( 0x152d, 0x2329, 0x0000, 0x9999,
+ "JMicron",
+ "USB to ATA/ATAPI Bridge",
+ US_SC_DEVICE, US_PR_DEVICE, NULL,
+ US_FL_IGNORE_RESIDUE ),
+
Der andere Patch oder etwas was speziell auf deinen Chip hinweisen würde, ist auch im aktuellen Kernel nicht zu finden. Ob da noch von anderer Seite an diesem Problem gearbeitet wurde, ist mir jetzt zu mühsam herauszufinden.

Was du tun kannst? meiner Meinung nach
  • entweder 1. Damit leben

    oder 2. Dich etwas mit Kernel selbst kompilation zu beschäftigen oder dich im entsprechende Forum hier etwas umsehen, und dann mal einen aktuellen Kernel runterladen und selbst bauen (tagesaktuell sollte wohl dieser hier sein) und diesen parallel zu deinem zu installieren und schauen ob der besser geht. Diesen Kernel, wenn er denn sonst keine Verbesserung bringt, könnst du dann mit dem besagten "Bremserpatch" versehen (hier würde er auch reinpassen) und dann so mal testen was dann dabei herauskommt. Diesen Patch in einen normalen Susekernel, (je nach dem welche Version du nutzt) wirst du eventuell nur mit mehr oder weniger "zarter" Gewalt hineinbringen da sich in einem Teil der betroffenen Dateien mit der Zeit viel geändert hat. Ist also in älteren Kerneln ohne programmiertechnisches Verständnis von dem was dort an den gepatchten Stellen geschieht absolut davon abzuraten, wenn der Kernel hinterher auch noch funktionen soll.

    oder 3. für 100 Euro eine vernünftige 1TB USB-Platte zu besorgen.

robi
 
OP
C

christophWi

Newbie
hmm.. ok. Da würd ich dann möglichkeit 1. wählen :D

aber mir fällt noch ne 4. ein. Da wollt ich aber erst nochmal nachfragen ob ihr denkt, dass das Problem damit aus der Welt ist. Mehr oder weniger.

Das Gehäuse hat auch nen eSATA anschluss, somit könnt ich ein paar euro in ne eSATA PCMCIA karte investieren und dann geschwindigkeitstechnisch voll abgehen. Oder hilft mir das gar nichts weil ich mit der Post trotzdem am Opa vorbei muss, der alles ausbremst?
 
A

Anonymous

Gast
christophWi schrieb:
Das Gehäuse hat auch nen eSATA anschluss, somit könnt ich ein paar euro in ne eSATA PCMCIA karte investieren und dann geschwindigkeitstechnisch voll abgehen. Oder hilft mir das gar nichts weil ich mit der Post trotzdem am Opa vorbei muss, der alles ausbremst?

Möglich , eventuell findest du Hinweise wenn du mal nach dem Gehäuse selbst suchst. Wenn du irgendwo die Möglichkeit siehst, dann mal für 2 Tage irgendwo ausleihen und mal selbst testen bevor du kaufst. Manche Händler lassen auch mit sich reden, so das du es problemlos wieder zurückgeben kannst, wenn es denn nicht richtig funktionieren sollte.

robi
 

misiu

Moderator
Teammitglied
Wenn ich mir die Daten anschaue, könnte das sogar sinn haben:
http://www.chip.de/preisvergleich/75192/Datenblatt-Toshiba-MK2035GSS-200GB.html
http://www.technic3d.com/article-524,3-a.c.-ryan-alubox-ryan-aus-alu.htm

"esata" selbst sollte seit Opensuse 10.3 funktionieren. Ob auch mit "Hotplug" weiss ich leider nicht.
Ist der Controller Hotswap-fähig , dann müsste es gehen, im Prinzip, wie bei USB.
Beim Kauf auf Linux-Kompatibilität der PCMCIA-Karte achten, z.B:
http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=E77;GROUPID=3840;ARTICLE=78835;START=0;SORT=artnr;OFFSET=16;SID=25CN28qKwQARkAAHIDQAUda6ab8378e801af0021d2ac70e8385be
Auch auf PCMCIA-Version achten, muss zu deinem Laptop passen!

MfG
misiu
 
OP
C

christophWi

Newbie
hmm. Hallo nochmal ,


es hat sich jetzt was anderes ergeben. Was das Problem irgendwie verändert, und irgendwie auch nicht.

Hatte jetzt das Vergnügen das ganz mit 2 anderen externen Festplatten und 2 USB-Sticks zu testen. Wiederum, Windows super, Linux überall, bei jedem Gerät ne Leserate von maximal 5mb/s. Schreiben überall ca 25 mb/s. Was mich darauf schließen lässt, dass das Prob bei mir eben generell bei jedem USB-Teil besteht.

Also liegts wohl nicht an dem Gehäuse sondern eher dass meine USB-Hardware mit Linux unverträglich ist. Kann man da vlt irgendwie was rausfinden oder helfen da nur andere Kernel.

Gruß
Christoph
 
Moin,
Danke für das Thema, da brauche ich nicht weiterzubasteln. Hier bei mir die selben Sympthome.
Opensuse 11.1 auf Intel® PC-Mainboard DP43TF. SATA-Platten auf USB2 mit JMicron Controller.
Ganze 5MB Lesegeschwindigkeit :-( und das reicht leider nichtmal mehr für HDTV-wiedergabe.

Mit dem uralt-Board, Semperon 1600 und Suse 10.x hat es mit den selben Platten wunderbar funktioniert, DualCore 2.5Ghz, Intel-Board und neustes Linux versagen.

Ganz schön armselig, das gerade USB mein neues System unbrauchbar macht.....

Achim
 
Oben