Configuración de los permisos de UDEV para escáner HP ScanJet 5p en Ubuntu

Desde hace bastantes años tengo un escáner HP ScanJet 5p con una tarjeta SCSI PCI que funciona a la perfección en GNU/Linux. El dispositivo es utilizado por todos los usuarios del PC y por tanto necesito que todos tengan permiso para escanear. Sin embargo, el sistema UDEV de Ubuntu asocia automáticamente el escáner a un dispositivo “/dev/sg3” con permisos únicamente para root, por tanto el resto de usuario no pueden utilizarlo.

$ ls -la /dev/sg3
crw-rw----+ 1 root root 21, 2 2009-05-24 14:36 /dev/sg3

Para cambiar este comportamiento, vamos a extraer información sobre el dispositivo que en mi caso corresponde sg3 pero puede variar según la configuración (consultar dmesg):

# udevadm info -a -p /sys/class/scsi_generic/sg3
...
looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:05:02.0/host10/target10:0:2/10:0:2:0':
    KERNELS=="10:0:2:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""
    ATTRS{device_blocked}=="0"
    ATTRS{type}=="3"
    ATTRS{scsi_level}=="3"
    ATTRS{vendor}=="HP      "
    ATTRS{model}=="C5110A          "
    ATTRS{rev}=="3701"
    ATTRS{state}=="running"
    ATTRS{timeout}=="0"
    ATTRS{iocounterbits}=="32"
    ATTRS{iorequest_cnt}=="0x7"
    ATTRS{iodone_cnt}=="0x7"
    ATTRS{ioerr_cnt}=="0x0"
    ATTRS{modalias}=="scsi:t-0x03"
    ATTRS{evt_media_change}=="0"
    ATTRS{queue_depth}=="2"
    ATTRS{queue_type}=="none"
...

A continuación, creamos una nueva regla UDEV en el fichero “/etc/udev/rules.d/99-personalizado.rules”:

# permissions for SCSI scanner
KERNEL=="sg[0-9]*", SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{model}=="C5110A*", NAME="%k", SYMLINK="scanner", MODE="0660", GROUP="scanner"

En la regla estamos indicando que todos los dispositivos sgX (sg1, sg2, etc.), del tipo SCSI y modelo C5110A (información que coincide con el scanner, según el comando udevadm que hemos ejecutado antes) deben tener permisos lectura y escritura para el grupo “scanner”. Adicionalmente, se creará un enlace simbólico “/dev/scanner” apuntando al dispositivo.

A continuación, crearemos el grupo “scanner” y añadiremos todos los usuarios que queremos que utilicen este dispositivo:

groupadd scanner
adduser miusuario scanner

En este punto, ya podemos reiniciar el equipo o recargar el driver del scanner:

rmmod sym53c8xx
modprobe sym53c8xx

Si ha funcionado, nuestro dispositivo tendrá los siguientes permisos:

$ ls -la /dev/sg3
crw-rw----+ 1 root scanner 21, 2 2009-05-24 14:56 /dev/sg3

Finalmente podremos escanear utilizando “Aplicaciones -> Gráficos -> Programa de escaneo de imágenes XSane” o bien directamente desde Gimp.

Leave a Reply

Your email address will not be published.