[glux] Regola udev per chiave usb

Andrea aerdan@inventati.org
Gio 16 Feb 2006 23:28:44 CET


REGOLE UDEV
-------------------------------------------------------------------------------

Documentazione:

    -le man page:
        udev (8)             - Linux configurable dynamic device naming support
        udevd (8)            - udev event serializer daemon and udev event
sender
        udevdsend (8) [udevsend] - udev event serializer daemon and udev event
sender
        udevinfo (8)         - retrieve information from udev
        udevsend (8)         - udev event serializer daemon and udev event
sender
        udevstart (8)        - populate initial device directory
        udevtest (8)         - simulates a udev run to test the configured rules
    -http://www.reactivated.net/writing_udev_rules.html

Per assegnare lo stesso file di dispositivo a  una periferica rimovibile.
Mi assicuro che l'opzione:

    udev_log="yes"

nel file /etc/udev/udev.conf sia impostata a "yes" così che gli eventi che
implicano udev siano loggati in /var/log/syslog.

Collego e attivo la periferica e controllo nel file di log di sistema i messaggi
di udev con:

    # tail /var/log/syslog

Nel mio caso collego una chiave USB tail restituisce:

    Feb 16 22:40:55 localhost kernel: usb 3-3: new high speed USB device using
    address 5
    Feb 16 22:40:55 localhost kernel: scsi1 : SCSI emulation for USB Mass
Storage
    devices
    Feb 16 22:40:55 localhost kernel:   Vendor: VBTM      Model: Store 'n' Go
    Rev: 1.02
    Feb 16 22:40:55 localhost kernel:   Type:   Direct-Access
    ANSI SCSI revision: 02
    Feb 16 22:40:56 localhost kernel: SCSI device sda: 2013184 512-byte hdwr
sectors
    (1031 MB)
    Feb 16 22:40:56 localhost kernel: sda: assuming Write Enabled
    Feb 16 22:40:56 localhost kernel: sda: assuming drive cache: write through
    Feb 16 22:40:56 localhost kernel:  sda: sda1
    Feb 16 22:40:56 localhost kernel: Attached scsi removable disk sda at scsi1,
    channel 0, id 0, lun 0
    Feb 16 22:40:56 localhost kernel: USB Mass Storage device found at 5
    Feb 16 22:40:56 localhost udev[5880]: configured rule in
    '/etc/udev/rules.d/z_hal-plugdev.rules[2]' applied, 'sda' becomes '%k'
    Feb 16 22:40:56 localhost udev[5880]: creating device node '/dev/sda'
    Feb 16 22:40:56 localhost udev[5904]: configured rule in
    '/etc/udev/rules.d/z_hal-plugdev.rules[2]' applied, 'sda1' becomes '%k'
    Feb 16 22:40:56 localhost usb.agent[5908]:      usb-storage: already loaded
    Feb 16 22:40:56 localhost udev[5904]: creating device node '/dev/sda1'
    Feb 16 22:40:56 localhost scsi.agent[5934]:      sd_mod: loaded sucessfully
(for
    disk)
    Feb 16 22:40:56 localhost kernel: EXT2-fs warning: mounting unchecked fs,
    running e2fsck is recommended

Ora so che la chiave viene collegata ad un file di dispositivo sd*, in questo
caso sda1 quindi cerco il percorso in /sys dove cercare informazioni sul
dispositivo:

    # udevinfo -q path -n /dev/sda1
    /block/sda/sda1

Ora elenco le informazioni specifiche del dispositivo:

    # udevinfo -a -p /block/sda/sda1 | less

faccio una pipe con less perchè le informazioni sono moltissime.

Per identificare univocamente il dispositivo utilizzo il numero seriale ed
eventualmente l'identificativo del produttore:

    SYSFS{idVendor}="08ec"
    SYSFS{serial}="0D312B510323092A"

Compongo la regola di udev:

BUS="scsi", KERNEL="sd*", SYSFS{idVendor}="08ec",
SYSFS{serial}="0D312B510323092A", NAME="%k", SYMLINK="cryptohd%n",
GROUP="andrea", OWNER="andrea", MODE="0700"

Sfrutto il symlink per avere la certezza che solo questa chiave utilizzi un
particolare file di dispositivo infatti solo il dispositivo che soddisfa le due
condizioni: idVendor e serial, utilizzerà questa regola, di conseguenzza creerà
il symlink specificato.

a
-- 
ð Gli uomini sono fratelli fra loro. Cessano di esserlo quando
¶ la terra viene divisa da steccati e confini.
ñ
²			Heinmot-Tayala-Ket, Nez Percé
€
¯ KeyID:   5AF81406   2005-01-03   [scadenza: 2015-01-01]
3 KeyFpr:  A4E2 7C7C CFC7 1B1E E405  6443 9E07 AF95 5AF8 1406


Maggiori informazioni sulla lista glux