Asignando nombres fijos a Dispositivos.
Un problema con los dispositivos removibles, es que cuando se poseen varios, al enchufarlos, van tomando nombres secuenciales.
Para no trabajar con analogias, voy a tomar un ejemplo real:
- 1 pendriveh
- 1 mouse con memoria flash
Cada uno va tomando nombres (/dev/sd[az][1-9]), y mi idea es que tomen nombres fijos, para ello utilizaremos: udev
La idea es que se asignen nombres dev a dispositivos, cuando coinicida la información provista por sysfs con las reglas que cree.
sysfs es administrado por el kernel, y su propósito es exportar información acerca de los dispositivos conectados en el sistema. udev utiliza esta información para crear nodos de dispositivos al hardware.
Recomiendo navegar un momento por /sys/.
las reglas por defecto de udev se encuentran en /etc/udev/rules.d/ y es muy importante que nuestras reglas se ejecuten ANTES de las reglas por defecto. Dentro de este directorio, las reglas se van tomando de los archivos en orden alfabetico, por lo tanto, vamos a crear el archivo 1.mis.reglas.rules
Creando las reglas
Las reglas se componen de claves. las claves se separan por comas. Cada vez que se cree una regla, se debe ejecutar udevstart
Conectando el flash:
#tail -f /var/log/messages
usb 1-2: new high speed USB device using ehci_hcd and address 9
usb 1-2: Product: USB 2.0 Flash Drive
usb 1-2: Manufacturer: Super Talent Flash
usb 1-2: SerialNumber: 66000000000000003672
usb 1-2: configuration #1 chosen from 1 choice
scsi4 : SCSI emulation for USB Mass Storage devices
Vendor: Flash/SM Model: Super Talent 2.0 Rev: 2040
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sdb: 506880 512-byte hdwr sectors (260 MB)
sdb: Write Protect is off
SCSI device sdb: 506880 512-byte hdwr sectors (260 MB)
sdb: Write Protect is off
sdb:<7>usb-storage: queuecommand called
sd 4:0:0:0: Attached scsi removable disk sdb
sd 4:0:0:0: Attached scsi generic sg1 type 0
vamos a tomar como referencia, el numero de serie (66000000000000003672) y asignarle el nodo /dev/pendriveX
en /etc/udev/rules.d/1.mis.reglas.rules
agregamos la regla:
#Pendrive, detectado por Numero de serie
SYSFS{serial}=="66000000000000003672", NAME="pendrive%n", GROUP="users"
en /etc/fstab
/dev/pendrive1 /mnt/pendrive auto noauto,owner,users 0 0
Conectando el Mouse
#tail -f /var/log/messages
usb 3-1.2: Product: Combo Mouse
usb 3-1.2: Manufacturer: ACROX
usb 3-1.2: configuration #1 chosen from 1 choice
input: ACROX Combo Mouse as /class/input/input4
input: USB HID v1.00 Mouse [ACROX Combo Mouse] on usb-0000:00:1d.1-1.2
Vendor: OTi Model: Flash Disk Rev: 1.11
Type: Direct-Access ANSI SCSI revision: 02
SCSI device sda: 129024 512-byte hdwr sectors (66 MB)
sda: Write Protect is off
SCSI device sda: 129024 512-byte hdwr sectors (66 MB)
sda: Write Protect is off
sda:<7>usb-storage: queuecommand called
sd 4:0:0:0: Attached scsi removable disk sda
sd 4:0:0:0: Attached scsi generic sg0 type 0
vamos a tomar como referencia, el nombre del fabricante (OTi) y asignarle el nodo /dev/mouseflashX
en /etc/udev/rules.d/1.mis.reglas.rules
agregamos la regla:
#Mouse, detectado por Fabricante
SYSFS{vendor}=="OTi", NAME="mouseflash%n", GROUP="users"
en /etc/fstab
/dev/mouseflash1 /mnt/mouseflash auto noauto,owner,users 0 0
Listo, cada vez que se conecten estos dispositivos, udev ejecuta las reglas, y asocia el node con un nombre de dev.
Por: Jorge Mestre