Newsgroup: it.comp.os.linux.iniziare
Titolo: Trasferimento usb lento

Ciao a tutti,
vi scrivo da un notebook non molto recente (con ubuntu 8.04), con porte 
usb 1.
Il trasferimento di file da pc a chiave usb risulta molto lento e poco 
costante, nel senso che alterna brevi picchi a 3-5MB/s a momenti molto 
più lunghi con trasferimenti a velocità di 200-700KB/s e momenti di 
stallo.
Ciò rende molto lungo il trasferimento anche di poche centinaia di MB.
Ho letto in giro che questo problema è dato dal metodo di scrittura su 
FAT adottato di default in ubuntu (e non solo), il quale prevede 
l'aggiornamento della tabella FAT alla scrittura di ogni blocco; questa 
cosa sembra tra l'altro risultare dannosa per i dispositivi usb, in 
quanto ne limita la vita.
Ho trovato in rete una possibile soluzione che ho provato ad applicare:
- creare la diretory /usr/share/hal/fdi/policy/95userpolicy
- creare il file nosync.fdi con il seguente contenuto:
	<?xml version="1.0" encoding="ISO-8859-1"?>
	<deviceinfo version="0.2">
	<device>
	<match key="block.is_volume" bool="true">
	<match key="volume.fsusage" string="filesystem">
	<match key="@info.parent:storage.bus" string="usb">
	<merge key="volume.policy.mount_option.sync"
	type="bool">false</merge>
	</match>
	</match>
	</match>
	</device>
	</deviceinfo>
- dare il comando "rchal restart"
Questa soluzione però sembra non avermi dato alcun risultato, inoltre 
quando do rchal restart, il terminale mi risponde "bash: rchal: command 
not found".
Qualcuno ha avuto a che fare con questo problema ed è riuscito a 
risolvere?
Grazie e ciao,
S.

 risolvere?
E' un limite dell'hardware. Non c'è soluzione a meno che non ti compri un 
controller USB2 su PCMCIA.
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

 un controller USB2 su PCMCIA.
Ecco, da qui potrebbe nascere un nuovo thread ;)
Ne ho uno, se lo inserisco viene riconosciuto (dmesg mi elenca le nuove 
porte), ma all'inserimento di una chiave usb viene errore...cmq ora 
googlo un po per a pcmcia, al limite mi faccio risentire.
Ciao e grazie,
S.

 porte), ma all'inserimento di una chiave usb viene errore...
CHE errore?


 CHE errore?
Praticamente la chiave viene rilevata e poi disconnessa, questo è un 
pezzo dell'output di dmesg, è chiaramente un loop infinito:
[20213.029345] usb 4-4: new high speed USB device using ehci_hcd and 
address 34
[20213.164136] usb 4-4: configuration #1 chosen from 1 choice
[20213.187817] scsi31 : SCSI emulation for USB Mass Storage devices
[20213.192085] usb-storage: device found at 34
[20213.192097] usb-storage: waiting for device to settle before scanning
[20218.177538] usb-storage: device scan complete
[20218.178334] usb 4-4: USB disconnect, address 34
[20218.452931] usb 4-4: new high speed USB device using ehci_hcd and 
address 35
[20218.587571] usb 4-4: configuration #1 chosen from 1 choice
[20218.614593] scsi32 : SCSI emulation for USB Mass Storage devices
[20218.618720] usb-storage: device found at 35
[20218.618753] usb-storage: waiting for device to settle before scanning
[20223.605560] usb-storage: device scan complete
[20223.606384] usb 4-4: USB disconnect, address 35
Ho trovato su forum messaggi relativi a un possibile bug con il modulo 
ehci_hcd e consigliavano di toglierlo in questi casi. In questo modo 
dicono che la porta usb riprende a funzionare, ma come usb 1 invece che 2.
Per curiosità ho dato "sudo modprobe -r ehci_hcd", non è stato risolto 
niente, però il problema è cambiato.
Guarda il nuovo output di dmesg:
[23180.407724] usb 3-1: new full speed USB device using uhci_hcd and 
address 38
[23180.578255] usb 3-1: configuration #1 chosen from 1 choice
[23180.600449] scsi92 : SCSI emulation for USB Mass Storage devices
[23180.604507] usb-storage: device found at 38
[23180.604522] usb-storage: waiting for device to settle before scanning
[23185.878378] usb-storage: device scan complete
[23185.881329] scsi 92:0:0:0: Direct-Access     USB      Flash Disk       
1100 PQ: 0 ANSI: 0 CCS
[23185.897262] sd 92:0:0:0: [sda] 7831552 512-byte hardware sectors (4010 
MB)
[23185.900256] sd 92:0:0:0: [sda] Write Protect is off
[23185.900268] sd 92:0:0:0: [sda] Mode Sense: 43 00 00 00
[23185.900273] sd 92:0:0:0: [sda] Assuming drive cache: write through
[23185.913310] sd 92:0:0:0: [sda] 7831552 512-byte hardware sectors (4010 
MB)
[23185.916264] sd 92:0:0:0: [sda] Write Protect is off
[23185.916281] sd 92:0:0:0: [sda] Mode Sense: 43 00 00 00
[23185.916286] sd 92:0:0:0: [sda] Assuming drive cache: write through
[23185.916300]  sda: sda1
[23185.923482] sd 92:0:0:0: [sda] Attached SCSI removable disk
[23185.923577] sd 92:0:0:0: Attached scsi generic sg0 type 0
[13743.671461] usb 3-1: USB disconnect, address 38
[13743.672133] scsi 92:0:0:0: [sda] Result: hostbyte=DID_NO_CONNECT 
driverbyte=DRIVER_OK,SUGGEST_OK
[13743.672141] end_request: I/O error, dev sda, sector 32
[13743.672146] printk: 26 messages suppressed.
[13743.672150] Buffer I/O error on device sda, logical block 4
[13743.672185] scsi 92:0:0:0: [sda] Result: hostbyte=DID_NO_CONNECT 
driverbyte=DRIVER_OK,SUGGEST_OK
[13743.672189] end_request: I/O error, dev sda, sector 40
[23187.547708] usb 3-1: new full speed USB device using uhci_hcd and 
address 39
[23187.720110] usb 3-1: configuration #1 chosen from 1 choice
[23187.741861] scsi93 : SCSI emulation for USB Mass Storage devices
[23187.747617] usb-storage: device found at 39
[23187.747631] usb-storage: waiting for device to settle before scanning
[23190.420108] usb 3-1: USB disconnect, address 39
[23202.056801] usb 3-1: new full speed USB device using uhci_hcd and 
address 40
Nel log qui sopra la chiave usb ha addirittura funzionato per un attimo! 
Poi è arrivato quel I/O error ed è sparita nuovamente...
Ciao,
S.

 Poi riprovi il trasferimento come sopra.
Sempre valori incredibili:
10+0 registrazioni dentro
10+0 registrazioni fuori
10485760 byte (10 MB) copiati, 0,133356 s, 78,6 MB/s

 Direi che o c'è qualcosa che non va
Certo: c'è che non è questo il test che ti è stato suggerito. :)
Questa è un'operazione propedeutica al test.
Rileggi meglio.
-- 
Bye, Lem
Ceterum censeo ISLAM esse delendum
____________________________________________________________________________
Non sprecare i cicli idle della tua CPU: 
http://boinc.berkeley.edu/index.php

 sproporzionalmente veloci.
Non quadra. O non hai acceduto alla chiavetta o è USB2 o ha copiato il file 
come sparse. Riprova con un file da 100MB (è più indicativo).
Modifica i comandi come segue:
# dd if=/dev/zero of=/tmp/test bs=1024k count=100
# sync ; time (cp --sparse=never /tmp/test /media/XXXXXX ; sync)


 Certo: c'è che non è questo il test che ti è stato suggerito. :)
LOL !!! non me n'ero accorto nemmeno io :D


 --sparse=never /tmp/test /media/XXXXXX ; sync)
100+0 registrazioni dentro
100+0 registrazioni fuori
104857600 byte (105 MB) copiati, 9,12687 s, 11,5 MB/s
Resta comunque troppo alto come velocità...
I tempi non cambiano da sync ad async, ogni volta che do il comando il 
risultato cambia di parecchio, a volte arriva addirittura a 10MB/s sempre 
con sparse=never...ma alla fine mi dovrei trovare il file "test" su 
chiave usb? Perchè io non lo vedo...
Ma anche a te con quel comando hai risultati così variabili?
E comunque quelle velocità di trasferimento non le vedo quando devo 
mettere un file su chiave...mah!
Comunque ora ho effettuato un altro test, ho preso un file a caso, da 
37MB, chiave montata con opzione sync:
time (cp --sparse=never GoogleSketchUpWIT.exe  /media/disk ;  sync)
real    7m14.906s
user    0m0.040s
sys     0m4.656s
Facendo due conti, sono 37888kB in 435s, risultano 87kB/s.
Poi con opzione async, risultano 806kB/s.
Ho provato anche a trasferire un file da 260MB, mi risultano 850kB/s.
Concludo che ai fini della velocità media meglio l'asicrono...la velocità 
non è ottima ma in effetti pensavo peggio.
Quindi niente, aspetto se arriva qualche consiglio per la pcmcia :)
Ciao,
S.

 vedo...
Scusate, volevo dire arriva a 20MB/s...


il dd serve per creare il file in /tmp.
E' la riga dopo, quella del "time ( cp ecc.ecc." che fa la copia.


 "time ( cp ecc.ecc." che fa la copia.
Si questo l'avevo intuito, ma alla fine dovrei trovarmi un file chiamato 
"test" sulla chiave usb no?

 "test" sulla chiave usb no?
yep.
