Posted in Archlinux

Y ahora la impresora

Pediatra, aficionado a la computación, actualmente usuario de GNU/Linux, distribución Archlinux
Y ahora la impresora Posted on 20 octubre, 2011
Pediatra, aficionado a la computación, actualmente usuario de GNU/Linux, distribución Archlinux

Paciencia que sigue el router… 🙂
Vamos a la impresora. Tengo una HP Laserjet P1005 que compré hace un buen tiempo ya, y que se había instalado y configurado lo más bien en Ubuntu, pero en Arch, hay que usar las manitos, así que,manos a la obra.
La impresora en cuestión había sido ya instalada y estaba funcionando de lo más bien, hasta alguna actualización de kernel-cups-vaya uno a saber la dejó inutilizable. El caso es que desde hace algún tiempo nada de nada con el cacho.
Buscando y trasteando en la red, logré encontrar una forma de que esto vaya como yo quiero, es decir, que funcione.
Aparte de instalar lo obvio (cups) hay que tener instalado el paquete foomatic, y descargar el driver desde aquí. No se necesita instalar hplip para esta impresora, que si bien también provee un driver y un método para descargar un firmware, me falló la autentificacion GPG del archivo, así que no funcionó. Se siguen las instrucciones del archivo INSTALL que es bastante simple, (contando con las utilidades necesarias para compilar aplicaciones) para crear el driver y para descargar el firmware que es necesario cargar en la impresora cada vez que esta se inicia, o que el computador arranca, para que ésta funcione.

Esto sería bastante simple si no hubiese además un detalle de importancia. Hay un módulo del sistema usblp que se encarga de gestionar la comunicacion con las impresoras USB, pero… que le molesta a cups (al parecer es un bug no solicionado de cups) y que si está cargado, no reconoce la impresora. Nada más simple, eliminarlo, pero si no está, no se puede cargar el firmware en la impresora. Dilema.

Solución: cargar el módulo, enviar el firmware a la impresora, descargar el módulo de memoria, reiniciar cups. ¡UF!

Todo eso se puede automatizar con el siguiente script que he puesto en /sbin/hp-p1005:


#!/bin/bash
/etc/rc.d/cupsd stop
# load the usblp kernel module:
modprobe usblp
# wait for 5 s for the device node to be created:
sleep 5
# upload the P1005.dl driver to the created /dev/usb/lp0 device node:
cat /usr/share/foo2xqx/firmware/sihpP1005.dl > /dev/usb/lp0
# wait 3 s for the driver to be uploaded:
sleep 5
# unload the usblp kernel module, so that CUPS can work:
rmmod usblp
# start the CUPS daemon:
/etc/rc.d/cupsd start

En escencia, hace lo indicado antes, dando tiempos para que se creen las instancias necesarias para su funcionamiento, tiempo total, poco más de 10 segundos para tener la impresora Ok. Luego lo agregué al archivo /etc/rc.local de modo que se ejecute cada vez que se inicia el sistema. Me enlentece el arranque un poco, pero tengo impresora, y como no estoy a cada rato reiniciando el PC, pues bien.

Pediatra, aficionado a la computación, actualmente usuario de GNU/Linux, distribución Archlinux