Hallo, ich habe ein aehnliches Problem: Externe Festplatte in USB-Gehaeuse (von Gensyslogic). Kernel ist 2.6.5-7.75-default (aus online-update). Das Geraet wird erstmal erkannt und unter /media/usb-storage-odd-Genesyslogic-USBMassStorageDevice:0:0:0p1 ein Verzeichnis angelegt. Aber dann: Das Verzeichnis liess sich nicht lesen. Problem schien erstmal am hotplugging zu liegen. Also: Vorgehen wie unter http://portal.suse.de/sdb/de/2004/05/hmeyer_91_revert_from_subfs.html beschrieben. Von Hand mounten, und damit liess sich die Platte tatsaechlich lesen und schreiben! Leider trat bei groesseren Dateien sehr schnell das Problem auf, dass der Schreibvorgang abgebrochen wurde. /var/log/warn sagt dazu (auszugsweise): Jul 1 18:35:30 stardust kernel: reiserfs: using flush barriers Jul 1 18:35:30 stardust kernel: reiserfs: disabling flush barriers on sda1 [dann erstmal nichts] Jul 1 18:41:09 stardust kernel: SCSI error : <1 0 0 0> return code = 0x50000 Jul 1 18:41:09 stardust kernel: end_request: I/O error, dev sda, sector 4718815 Jul 1 18:41:09 stardust kernel: scsi1 (0:0): rejecting I/O to offline device Jul 1 18:41:09 stardust last message repeated 143 times Jul 1 18:41:09 stardust kernel: SCSI error : <1 0 0 0> return code = 0x70000 Jul 1 18:41:09 stardust kernel: end_request: I/O error, dev sda, sector 4718943 Jul 1 18:41:09 stardust kernel: scsi1 (0:0): rejecting I/O to offline device Jul 1 18:41:09 stardust last message repeated 100 times Jul 1 18:41:09 stardust kernel: printk: 25325 messages suppressed. Jul 1 18:41:09 stardust kernel: Buffer I/O error on device sda1, logical block 607548 Jul 1 18:41:09 stardust kernel: lost page write due to I/O error on sda1 Jul 1 18:41:09 stardust kernel: scsi1 (0:0): rejecting I/O to offline device Jul 1 18:41:09 stardust last message repeated 340 times Jul 1 18:41:09 stardust kernel: scsi1 (0:0): rejecting I/O to dead device Also: Vorgehen wir unter http://lists.suse.com/archive/suse-linux/2004-Jun/4117.html beschrieben. Wenn ich das richtig verstehe, muss nur die Zeile mit "+ udelay(300)" einegfuegt werden, oder? Was ist mit dem Rest, wo muss der hin?? Jedenfalls bricht das schreiben wieder anch einiger Zeit ab, und /var/log/warn sagt (kleiner Auszug aus ca. 700 Zeilen Fehlermeldung): Jul 2 12:10:54 stardust kernel: scsi0 (0:0): rejecting I/O to offline device Jul 2 12:10:55 stardust last message repeated 338 times Jul 2 12:10:55 stardust kernel: buffer layer error at fs/buffer.c:2981 Jul 2 12:10:55 stardust kernel: Call Trace: Jul 2 12:10:55 stardust kernel: [drop_buffers+329/448] drop_buffers+0x149/0x1c 0 Jul 2 12:10:55 stardust kernel: [<c0159799>] drop_buffers+0x149/0x1c0 Jul 2 12:10:55 stardust kernel: [try_to_free_buffers+43/128] try_to_free_buffe rs+0x2b/0x80 [....] Jul 2 12:10:56 stardust kernel: scsi0 (0:0): rejecting I/O to dead device Jul 2 12:10:56 stardust kernel: scsi0 (0:0): rejecting I/O to dead device Was mache ich falsch? Was kann man noch probieren? Wenn es nicht gerade um unsere Backup-Festplatte ginge, wuerde ich das ganze auch etwas gelassener sehen... Vielen Dank schon mal, Mathias -------------------------------------------------------------------
Das hat definitiv geholfen. Auf Basis von 2.6.7-bk13 habe ich den >Hotfix eingebaut und bin derzeit mit Erfolg am Testen. Habe bereits mehrere GB's kopiert ohne Probleme. Was der Hotfix genau macht kann ich auch nicht sagen. Ich vermute mal, dass hier der Platte/dem Controller etwas mehr Zeit gegeben wird die Daten zu verarbeiten bzw. die Daten werden verzögert weitergegeben, um somit der Platte etwas mehr Luft zu verschaffen.
Sollte sich doch noch Probleme einschleichen, werde ich hier nochmal >was reinposten.
Vielen Dank an die Liste,
Gruß Hans
Frank F. T. wrote: Willkommen im Club der USB Festplattenbesitzer. Leider werden einige USB Festplatten noch nicht richtig unterstützt. Ich habe zB. eine mit einem Genesys Logic Controller mit dem Efect das ich ca. 80MB schreiben kann und dann fliegt die Platte aus dem System.
Mit dem Patch sollen einige Erfolg gehabt haben:
===== drivers/usb/storage/usb.c 1.119 vs edited ===== --- 1.119/drivers/usb/storage/usb.c Sun Jun 13 16:09:07 2004 +++ edited/drivers/usb/storage/usb.c Mon Jun 21 10:51:41 2004 @@ -359,6 +359,7 @@ /* we've got a command, let's do it! */ else { US_DEBUG(usb_stor_show_command(us->srb)); + udelay(300); us->proto_handler(us->srb, us); }
Ich bin daraus nicht schlau geworden. Frank F.T.