mercoledì 19 agosto 2009

Personalizzare penne USB su Ubuntu

Non spaventatevi: l'immagine a fianco non c'entra nulla con questo post, solo che era molto simpatica!

Quello che intendo fare è spiegarvi come si può cambiare il "nome" ai dispositivi usb, come penne, chiavette o dischi su Ubuntu 9.04 (o versioni precedenti).
L'unica utilità di questa cosa è di avere i nomi sul desktop tutti diversi, perché il solito Supporto da tot Gb è noioso.
Allora iniziamo!

Per prima cosa digitiamo questo comando da terminale:
tail -f /var/log/messages che ci mostra gli ultimi messaggi di sistema disponibili continuando ad aggiornarli. Quindi inseriamo la nostra chiavetta e aspettiamo i nuovi messaggi. Dobbiamo individuare la sigla del dispositivo che identifica la chiavetta.
Nell'immagine seguente è sdb (nella righa sottolineata in rosso)

Adesso dobbiamo rilevare il codice seriale del nostro dispositivo con il comando:

# per Ubuntu 9.04
$ udevadm info --attribute --path /sys/block/sdb | grep ATTRS{serial}
# per versioni precedenti
$ udevinfo -a -p /sys/block/sdb | grep ATTRS{serial}

(cambiate sdb con il codice trovato precedentemente)
Otterremo un output simile a questo:

ATTRS{serial}=="0000060502078209"
ATTRS{serial}=="0000:00:1d.7"

Ci interessa la prima linea, quindi copiamola da qualche parte.
ATTENZIONE: su alcuni dispositivi non è presente il primo codice seriale quindi bisogna ricorrere a questo comando con relativo output:

$ udevadm info --attribute --path /sys/block/sdb | grep ATTRS{model}
ATTRS{model}=="U3 Cruzer Micro "

Fatto questo dobbiamo riservare una directory personalizzata sull'hard disk per la nostra chiavetta aprendo da root il file /etc/udev/rules.d/50-chiave-usb.rules (o creandolo se non è presente) e ci aggiungiamo la linea:

KERNEL=="sd*", ATTRS{serial}=="metti qui il seriale", SYMLINK+="nome_che_vogliamo"

per chi non ha il seriale ed ha dovuto usare il comando alternativo:

KERNEL=="sd*", ATTRS{model}=="nome del modello ", SYMLINK+="nome_che_vogliamo"

salviamo e passiamo ad editare il file /etc/fstab (sempre da root) aggiungendo in fondo la riga:

/dev/nome_scelto_prima /media/nome_scelto_prima auto defaults,user,noauto 0 0

IMPORTANTE: mai usare degli spazi nei nomi dei file perché potrebbero generare errori.
Ora creiamo la cartella /media/nome_scelto_prima con

$ sudo mkdir /media/nome_scelto_prima


Ora abbiamo dato il nome alla nostra pennetta, ma dobbiamo ancora dire ad HAL che deve usare quello. Per farlo dobbiamo avere l'UUID che identifica la chiavetta (in realtà è un codice esadecimale che identifica la partizione, quindi 2partizioni=2UUID) ed allora digitiamo il comando:

$ ls -l /dev/disk/by-uuid/ | grep sdb

che darà in output qualcosa di simile:

lrwxrwxrwx 1 root root 10 2009-08-19 15:40 3873-DEA4 -> ../../sdb1

quello che ci interessa è la parte contrassegnata in blu (ovviamente sul terminale non verrà colorata)
quindi diamo questi comandi (il primo solo se la directory non esiste):

$ sudo mkdir /usr/share/hal/fdi/information/90media
$ sudo gedit /usr/share/hal/fdi/information/90media/90-chiave.fdi

ed aggiungiamo nel file il contenuto seguente, sostituendo il necessario (quello in blu)

< ?xml version="1.0" encoding="UTF-8"?>
< deviceinfo version="2.0">
< device>
< match key="info.category" string="volume">
< match key="volume.uuid" string="nostro_uuid">
< merge key="volume.label" type="string">nome_della_chiavetta< /merge>
< /match>
< /match>
< /device>
< /deviceinfo>

(la prima riga con < ?xml... solo se il file è vuoto)
Scusate ma ho dovuto inserire uno spazio tra < ed il secondo carattere di tag xml, altrimenti il blog li interpretava come comandi a lui. Voi toglieteli.

Ora smontiamo la penna, la riconnettiamo al pc e possiamo subito notare come sul desktop appaia l'icona con il nome che abbiamo scelto ;)
Può sembrare lungo e complicato ma in realtà è molto semplice e per di più utile se abbiamo connessi due dispositivi simili contemporaneamente e non riuscendo a riconoscerle apriamo sempre quella sbagliata!

P.S. Nel codice postato quello preceduto da # sono commenti aggiuntivi, quello con $ sono comandi da impartire al terminale (con copiate il $) quello con niente sono output.

Nessun commento:

Posta un commento