Robots y modelos

Notas sobre pruebas, modelado y aventuras en Java y Android

Experiencias con Canon LiDE 25

leave a comment »

El otro día tuve que comprarme un escáner (cosas de la vida hoy en día y su insana afición a los papelajos), y estuve buscando modelos y modelos. De entre los que tenía mi tienda de confianza, estuve mirando y curiosamente el más barato (un Canon LiDE 25) es el que salió mejor parado con un soporte “bueno” (que no completo) por la gente de la base de datos de SANE.

Dicho y hecho, en cuanto llegué a casa sólo tuve que conectarlo por el cable USB y SANE lo reconoció sin más problemas. Acostumbrado a los problemas de mi antiguo (y tanto) Primax Colorado 1200p, la verdad es que fue una maravilla. Ya quisieran los de Windows tener una experiencia de instalación como esta: ni CD de instalación ni chorradas. Por supuesto, no gracias a Canon: resulta que este escáner utiliza el chipset Plustek, revendido por la compañía del mismo nombre a otras compañías, como Epson o HP.

Pero claro, me resultaba algo molesto tener que tirar de SANE o abrir el Gimp manualmente cada vez que quisiera usarlo, si tenía esos tres botoncitos de una sola pulsación. No me esperaba gran cosa, pero recibí una grata sorpresa cuando me enteré de que precisamente hay un proyecto para este tipo de cosas: scanbuttond es un demonio que se queda en segundo plano y pregunta varias veces por segundo mediante libusb por el estado de esos botones, y ejecuta un shell script cuando detecta una pulsación, pasándole el nombre del dispositivo y el número del botón.

En mi Ubuntu Hardy 8.04.1 tuve que instalar los paquetes scanbuttond, tiff2ps y netpbm y seguir las instrucciones (adaptando los guiones un poco) presentados en este howto de la gentuza de Gentoo, ¡y listo! Más o menos esto fueron los cambios que hice:

  • Quité de sbd-print.sh las opciones de scanimage específicas al escáner HP que tenía el autor del howto. Para ello, lo mejor es conseguir el nombre del dispositivo de nuestro escáner con “scanimage –list-devices”, y luego mirar con “scanimage –help -d <dispositivo>”.
  • Cambié el cliente de correo en sbd-mail.sh de Thunderbird a GNOME Evolution. Basta con esto: “sudo -u <usuario> evolution “mailto:foo@bar?attach=${TMPFILE}.jpeg”
  • Añadí la opción “-a” a la invocación de GIMP, con lo que la imagen escaneada se abre en una ventana nueva en vez de abrir otra instancia completa de GIMP. También fue útil añadir “&” al final para que se ejecutara en segundo plano (o si no, no podría escanear otra imagen hasta que cerrara esa instancia de GIMP).

Con eso ya bastaría, pero tendríamos que ejecutar nosotros scanbuttond en nuestra sesión de usuario. Lo cual tampoco está mal, pero prefiero que ese tipo de cosas queden como servicios y estén disponibles aunque no haya X. Así que me hice un guión chapucerillo de /etc/init.d a partir del de winbind (start es “scanbuttond” y stop es “killall scanbuttond”, en fin…), y pensaba que con eso estaría listo, pero no: resulta que, claro, de esa forma se intenta ejecutar Evolution y GIMP desde root, y root no tiene permiso para conectarse a las X. Tampoco quería dejar las X abiertas a cualquiera. En este artículo mencionan algunas alternativas, pero al final me decidí por añadir simplemente estas dos líneas antes del “case” de buttonpressed.sh:

export XAUTHORITY=~misuaurio/.Xauthority
export DISPLAY=":0.0"

Y con esto ya va sin más problemas: tengo así botones para fotocopiar, abrir en el GIMP y enviar por correo, que no está mal. Los resultados del escaneo tampoco son estelares, pero qué vas a pedir de un escáner de 50 euros😀.

Actualización (27/5/09): sigue funcionando en Jaunty sin problemas. Empezó a hacerme ruidos y demás. lsusb lo mostraba, pero sane-find-scanner y scanimage -L no lo detectaban bien (sane-find-scanner decía que había un escáner, pero no sabía el modelo). Buscando un poco, encontré una orden a partir de la cual sacar bastante información:

sudo SANE_DEBUG_PLUSTEK=12 SANE_DEBUG_DLL=12 SANE_DEBUG_SANEI_USB=255 scanimage -L 2>&1 | tee salida.log | less

Mirando, encontré una línea del estilo de “sanei_usb_open: lisbusb complained: Broken pipe” cerca de donde libusb empezaba a sacar información en serio del escáner, una vez el backend plustek de SANE lo hubo detectado, y bastantes mensajes sobre ioctl y demás. Según parece, la forma más sencilla de interpretar este mensaje es un problema de conexión pura y dura. Sospechaba de mi hub/stand de portátil “made in china”, así que cambié el cable a uno de los puertos USB del portátil, y funciona perfectamente😀.

Actualización (14/12/09): en Karmic sigue funcionando, pero hay una interacción muy fea con VirtualBox. VirtualBox instala en /etc/udev/rules.d una serie de reglas que permite a su módulo del kernel acceder a todos los dispositivos USB, pero en el proceso le quita al usuario saned (que es el que ejecuta por defecto el demonio scanbuttond si se usa el guión /etc/init.d/scanbuttond, como solía hacer) los permisos para acceder al escáner. Se puede arreglar sin mucho problema tocando /etc/udev/rules.d, pero al final es más engorroso todavía, ya que entonces tenemos que poner la estructura de permisos necesaria para que saned pueda ejecutar GIMP como el usuario conectado al terminar la digitalización de la imagen. Al final, lo más sencillo es añadir scanbuttond como una aplicación al inicio, en “Sistema → Preferencias → Aplicaciones al inicio”. Mejor aún: podemos crear un lanzador (fichero .desktop) de /usr/bin/scanbuttond y copiarlo en /usr/share/gnome/autostart, para que se inicie así para todos los usuarios que entren en GNOME.

Written by bluezio

26 de septiembre de 2008 a 15:43

Publicado en Uncategorized

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: