Hi,
sowohl unter 2.6.14.6 als auch unter 2.6.15.1 habe ich masssiv Probleme
große Datensätze (2GByte < x < 4GByte) von und zu meiner USB-Festplatte
mit eben jenem besagten Cipsatz zu transferieren.
( es werden mit "cat" mehrere einzelne Dateien von der USB-Platte zu
einer großen Datei auf der USB-Platte über USB 2.0 (EHCI) zusammengefügt )
Urplötzlich ist der Chipsatz nicht mehr ansprechbar. Da staunt der
Treiber und der Kernel wundert sich....
Im Log steht KEIN segfault und die Kernelpanik bricht auch nicht aus...
Im Netz wird zwar dieses "Phänomen" ( sprich: [CENSORED] Chipsatz )
angesprochen...aber einen Kernelpatch, der das Problem kaschiert,
habe ich bisher nicht finden können. Werden unter Fenster die Fenster-
eigenen oder die vom Hersteller geschriebenen closed-source-Treiber
benutzt, scheint es keine Probleme zu geben. Kein Wunder: Der Hersteller
kennt natürlich die Macken seines Chipsatzes.....
Wenn jemand mit diesem [CENSORED] Chipsatz Erfahrung hat und vielleicht
weiss, wo ich was im Kernel oder /sys oder /proc hacken muss, damit
das ohne Blackout funktioniert, wäre ich für eine Tip sehr dankbar!
Gruß,
mcc
Problem ist dass der Genesys intern nur 64KB RAM hat. Standardmäßig werden jedoch 120 KB übertragen. Diese lassen den Genesys überlaufen. Dann läßt er der die *rote Lampe* blinken.
Beim Kernel 2.4.x kann man in den Kernel-Quellen den Wert für max_sector auf 64 setzen.
### diff
— linux-2.4.24/drivers/usb/storage/scsiglue.c
+++ linux-2.4.24/drivers/usb/storage/scsiglue.c
@@ -395,6 +395,7 @@ Scsi_Host_Template usb_stor_host_templat
this_id: -1,
sg_tablesize: SG_ALL,
+ max_sectors: 64,
cmd_per_lun: 1,
present: 0,
unchecked_isa_dma: FALSE,
===
Bei neuen Kernel (z.B. 2.6.8.1) kann man nach dem anstecken der HDD, aber vor dem mounten den Wert im sysfs ändern:
echo “16” > /sys/block/sda/device/max_sectors
Bei ganz neuen Kenels (2.6.12) habe ich in den Quellen eine spezielle Behandlung von Genesys gesehen. Aber selbst noch nicht probiert.
Henry
[1] http://www.linux-m32r.org/lxr/http/source/drivers/usb/storage/scsiglue.c#L459