mercoledì 11 maggio 2011

20 - linux - Pendrive USB su linux

Pendrive USB su linux

 
La procedura qui descritta è stata sperimentata su Redhat Linux 7.3 con kernel 2.4.18-5 e potrebbe non avere alcun interesse sulle distribuzioni più recenti che hanno meccanismi di riconoscimento e mounting automatico delle periferiche di massa, ma la riporto ugualmente, al solo scopo di evidenziare i moduli necessari per utilizzare le famose “chiavette” anche in distribuzioni non recenti, le quali, ad ogni modo, potrebbero tornare molto utili per rivitalizzare PC ormai obsoleti dotati di processore pentium III che windows XP ha inesorabilmente mandato in cantina.
Caricamento dei moduli. I driver per la gestione delle porte USB sono UHCI o OHCI (che implementano l’ USB 1.1), il driver EHCI (per l’USB 2.0 non è presente in questa distribuzione). Uso il comando ‘modprobe’ per caricare i driver come moduli (una volta sperimentati come moduli i driver potrebbero essere conglobati nel kernel in modo statico ricompilandolo), in quanto permette di aggiustare automaticamente le dipendenze, contrariamente a ‘insmod’ che carica il modulo brutalmente senza fare altro. Bisogna includere anche altri elementi nel kernel:
  • usb-storage per la gestione delle periferiche USB
  • sd_mod lo SCSI Disk support, in quanto i dispositivi di memorizzazione di massa sulle USB sono gestiti come device SCSI.
Da notare che con il kernel 2.6 non è più necessario utilizzare lo strato di emulazione ide-scsi per averne accesso. Quindi i comandi da dare (come root) sono i seguenti:
  • modprobe uhci
  • modprobe sd_mod
  • modprobe usb-storage
a questo punto inseriamo la pendrive e notiamo che inizia a lampeggiare il led; come ulteriore verifica possiamo dare il comando ‘dmesg’ per vedere se è stata riconosciuta correttamente dal kernel, dmesg, ci rivela, tra l’altro, con quale device il dispositivo è stato mappato: ad esempio come “/dev/sda”. Nel mio caso la pendrive è stata mappata come “/dev/sda1″ quindi per raggiungere il contenuto del dispositivo, do i comandi:
  • cd /mnt
  • mkdir pendrive
  • mount /dev/sda1 pendrive
Rimozione del dispositivo. Prima della rimozione della chiavetta è necessario forzare la scrittura dei dati, rimasti nei buffer, sui rispettivi device; a tal scopo si può usare il comando ‘sync’ anche se il successivo comando di umount, sarebbe sufficiente per chiudere i file: – umount pendrive Una piccola nota: chi è abituato a usare Windows XP avrà notato che la procedura di “rimozione sicura” su una pendrive USB fa spegnere il led. In Linux anche se è sufficiente eseguire l’umount per poter rimuovere la chiavetta, a seguito di tale operazione il led non si spegne; in effetti il kernel mantiene una comunicazione con il dispositivo mediante il modulo UHCI; la rimozione di questo modulo determina lo spegnimento del led.

Nessun commento:

Posta un commento