Come disattivare la memorizzazione nella cache per il dispositivo USB quando si scrive su di esso?


8

Ho problemi a trasferire i programmi binari su una scheda prototipo di microcontrollore quando utilizzo Ubuntu / Kubuntu per montare la scheda tramite USB. Con MacOS e Windows non ci sono problemi. Ho scoperto che la scrittura da Ubuntu cambia decisamente il file scritto. Sospetto che il problema sia la scrittura nella cache. Come posso disabilitarlo o qualcos'altro potrebbe essere il problema.

Risposte:


9

Leggi prima questo: http://groups.google.com/group/linux.kernel/msg/8d1591196c0ae15e?pli=1
Non sono sicuro che sia vero o no.

Puoi provare a utilizzare hdparm per disattivare la funzionalità di memorizzazione nella cache in fase di esecuzione. (Probabilmente dovrai eseguirlo dopo ogni avvio o ogni volta che rimuovi e reinserisci il dispositivo)

sudo hdparm -W 0 /dev/devicename

Assicurarsi si conosce il nome del device ( sdb, sdco così via).

Puoi scoprire il nome del dispositivo eseguendo:

sudo fdisk -l

Puoi anche modificare /etc/fstabe aggiungere le opzioni di montaggio, sync,dirsynctuttavia non ho molta familiarità con il /etc/fstabfunzionamento dei dispositivi rimovibili. Penso che abbiano bisogno di un mount point permanente.


1
C'è un modo per impostare le opzioni "fstab" predefinite per i dispositivi rimovibili?
Aaron Franke,

2

complimenti a @NightwishFan per l'interruttore hdparm per impostare la funzione di scrittura nella cache dell'unità.

Si noti che l' syncopzione di montaggio riduce la velocità di una grandezza (oltre 10 volte). flushL'opzione mount assicura una scrittura efficace senza costi di prestazione. Inoltre lo uso senza problemi da alcuni anni su tutti i dispositivi FAT (basati su spinning o memoria flash) che ho usato: in realtà l'intero set di opzioni di mount è noauto,users,noatime,flush,umask=111,dmask=000, impostato manualmente o in / etc / fstab.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.