Noticia Montar automáticamente dispositivos USB en un Raspberry PI

Este artículo ha sido publicado por oyrad en nuestro foro

En el Raspberry si no usas interfaz gráfica, llega a ser molesto estar montando una y otra ves nuestra memoria USB. Además, en el proceso de automatizar esta acción (que es lo que muestro a continuación) se puede aprender un poco sobre como Linux maneja los dispositivos.

Lo primero que vamos a hacer es instalar autofs y udev

sudo apt-get install autofs udev

udev es una herramienta del kernel linux encargado de manejar el directorio /dev que es donde se encuentran todos los dispositivos. Y autofs nos permite, una ves configurado, todo monte y desmonte automáticamente apenas se conecta o se desconecta la usb.

Lo primero que haremos sera conectar nuestra memoria usb (usaré una de marca Kingston) en nuestro computador/Raspberry Pi. Luego ejecutamos:

sudo fdisk -l

tendrán una salida parecida a esta:

Disk /dev/mmcblk0: 15.7 GB...

Device Boot Start End Blocks Id System
/dev/mmcblk0p1 2048 1607421 802687 e W95 FAT16 (LBA)
/dev/mmcblk0p2 1613824 30613503 14499840 85 Linux extended
/dev/mmcblk0p3 30613504 30679039 32768 83 Linux
…..

Disk /dev/sda: 30.9 GB...

Device Boot Start End Blocks Id System
/dev/sda1 2048 60436479 30217216 c W95 FAT32 (LBA)

Mi memoria usb externa tiene 30.9 GB (es decir es /dev/sda1) mientras que la memoria SD que es donde tengo instalado Linux tiene 15.7 GB.

Reglas personalizadas en udev


Ya sabiendo que sda1 es nuestro dispositivo, usaremos udev para extraer información de la memoria, por lo que ejecutamos el siguiente comando:

udevadm info -a -p $(udevadm info -q path -n /dev/sda1)

habrá bloques separados por la frase “looking at parent device ‘/devices/…..”

para facilitar un poco la búsqueda podemos usar grep, así que hago lo siguiente:

udevadm info -a -p $(udevadm info -q path -n /dev/sda1)| grep manufacturer

en mi caso como mi memoria es una Kingston la salida es:

ATTRS{manufacturer}=="Kingston" #1
ATTRS{manufacturer}=="Linux 3.12.28+ dwc_otg_hcd"

o también podemos buscar:

udevadm info -a -p $(udevadm info -q path -n /dev/sda1) | grep model
udevadm info -a -p $(udevadm info -q path -n /dev/sdd1) | grep vendor

me interesa:

ATTRS{manufacturer}=="Kingston"

Como fue la primera coincidencia. En la salida del comando udevadm busco el bloque donde sale por primera ves “ATTRS{manufacturer}”

tomo algunos datos que considere únicos del dispositivo de un bloque, en mi caso:

ATTRS{product}=="xxx"
ATTRS{serial}=="xxxx"
DRIVERS=="usb"

solo falta crear las reglas. Hacemos un archivo terminado en .rules en udev:

sudo nano /etc/udev/rules.d/personal.rules

dentro del archivo ponemos

ATTRS{product}=="xxx",ATTRS{serial}=="xxx",DRIVERS=="usb",SYMLINK+="miusb"

Ahora cuando conecte mi usb quedara un fichero /dev/miusb. Esta fue la parte mas dificil .

Configurando autofs


Ejecutamos:

sudo nano /etc/default/autofs

donde dice “TIMEOUT=” le ponen “TIMEOUT= 1”

Vamos a /etc/auto.master

nano /etc/auto.master

y dentro del fichero ponemos en la ultima línea:

/media /etc/auto.misc

ahora vamos a /etc/auto.misc

nano /etc/auto.master

y en la ultima línea escribimos:

mimemoria -fstype=vfat,users,rw,umask=000 :/dev/miusb

por ultimo hacemos que cargue el modulo de autofs al inicio:

sudo nano /etc/modules

y en la ultima línea escribimos:

autofs4

y listo, reiniciamos el Raspberry. Hay que tener en cuenta que la carpeta no existe en /media pero cuando hacemos un

cd /media/mimemoria

ya estamos dentro. Y si la dejamos de usar desaparece la carpeta pudiendo quitar el dispositivo sin desmontarlo manualmente.


OA5nw-Te6iM


Continúar leyendo...