Blog
Categorías
Calendario
<<
Diciembre 2005 >>
|
L | M | Mi | J | V | S | D |
|
|
|
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | |
Archivos
Sindicación
Apúntate
|
usbmgr a hotplug
19 de Diciembre, 2005, 21:16
Por necesidades que no vienen a cuento ahora he tenido que cambiar de usbmgr a hotplug como gestor de dispositivos. Estos dos sistemas funcionan de forma similar, cuando se conecta un dispositivo (usb, pcmcia, etc.) permiten ejecutar un script con comandos.
¿Para qué es útil esto? Pues yo por ejemplo lo usaba para hacer funcionar mi impresora, una HP Laserjet 1005. Para que funcione es necesario que una vez encendida y antes de imprimir se le cargue un firmware determinado.
Ambos sistemas tienen un funcionamiento similar: un fichero donde a un determinado dispositivo USB se le asigna un script y el propio script.
usbmgr
La forma de asociar el script al dispositivo es creando los siguientes ficheros en /etc/usbmgr/vendor/03f0/1317/ con los contenidos mostrados:
machinilla:/etc/usbmgr/vendor/03f0/1317# cat script lj1005 machinilla:/etc/usbmgr/vendor/03f0/1317# cat module usblp
03f0 es el código del fabricante HP (idVendor) y 1317 es el código del producto (idProduct), en este caso la impresora LJ1005.
El script en sí que tenía para cargar el firmware era:
#!/bin/sh # # LJ 1005 setup script # Se le envia el firmware a la impresora cada vez que # se enciende cupsdisable LJ1005 cat /usr/share/foo2zjs/firmware/sihp1005.dl > /dev/usb/lp0 cupsenable LJ1005
usbmgr comprueba el idVendor y el idProduct del dispositivo conectado y busca si tiene definido un módulo y script para él. Si es así, carga el módulo y ejecuta el script.
hotplug
Con hotplug no es necesario modificar el script pero sí la forma de asociarlo a un dispositivo. Para ello hay que crear un fichero con extensión usermap dentro del directorio /etc/hotplug/usb/. En mi caso el fichero es:
machinilla:/etc/hotplug/usb# cat lj1005.usermap # usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info lj1005 0x0000 0x03f0 0x1317 0x0000 0x0000 0x00 0x00 0x00 0x07 0x01 0x02 0x00000000
Los datos se pueden obtener de:
machinilla:/etc/hotplug/usb# lsusb -v (...) Bus 002 Device 004: ID 03f0:1317 Hewlett-Packard LaserJet 1005 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x03f0 Hewlett-Packard idProduct 0x1317 LaserJet 1005 bcdDevice 1.20 iManufacturer 1 Hewlett-Packard iProduct 2 hp LaserJet 1005 series iSerial 0 bNumConfigurations 1 Configuration Descriptor: (...) Interface Descriptor: (...) bInterfaceClass 7 Printer bInterfaceSubClass 1 Printer bInterfaceProtocol 2 Bidirectional iInterface 0 (...)
Se copia el script tal cual estaba a /etc/hotplug/usb/lj1005 y listo. Cada vez que volvamos a encender la impresora, el LED volverá a parpadear unos segundos en naranja y luego estará lista para funcionar.
|
Blog alojado en ZoomBlog.com
|
|