Cómo instalar la impresora HP LaserJet Pro P1102w en Debian 10 Buster (parte I)

Lo que se describe a continuación es el proceso de instalación de la impresora HP Laserjet Professional P1102W en Debian 10. Para instalar esta impresora tenemos dos opciones: o usamos el controlador libre foo2zjs y configuramos desde CUPS, o usamos HPLIP para instalar el plugin propietario de la marca de la impresora. Los dos métodos tienen sus particularidades, por lo que se describirán ambos para que seas tu quien decida qué método usar. En esta primera parte se describe el proceso de instalación del controlador libre.

1) Instalando el controlador libre.

En la página web del programador se encuentra el proceso completamente detallado, por lo que se recomienda visitar el sitio para más información. No obstante, se resume de forma breve el proceso a continuación.

Primero comprobamos si tenemos a CUPS instalado en nuestro sistema. En caso contrario, lo instalamos:

~$ sudo apt install cups

Con CUPS instalado, descargamos la versión más actualizada del controlador libre mediante la línea de comandos:

~$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz

Descomprimimos y nos metemos en la carpeta recién creada:

~$ tar zxf foo2zjs.tar.gz
~$ cd foo2zjs

Compilamos e instalamos el driver:

~$ make

~$ make install (o bien sudo make install)

Si queremos que la impresora pueda funcionar también desde el puerto USB, tenemos que instalar la opción hotplug del controlador:

# make install-hotplug

En mi caso lo hice porque también quería tener este opción disponible. La salida de la orden anterior resultó como se ve a continuación:

# make install-hotplug
# Hotplug Installation Dependencies...
# ... OK!
#
#
# remove HPLIP (proprietary) files and install our version
#
 if [ -d /etc/udev/rules.d ]; then \
     rm -f /etc/udev/rules.d/hpmudlaserjet_1000; \     rm -f /etc/udev/rules.d/hpmudlaserjet_1005; \
     rm -f /etc/udev/rules.d/hpmudlaserjet_1018; \     rm -f /etc/udev/rules.d/hpmudlaserjet_1020; \
     rm -f /etc/udev/rules.d/hpmudlaserjet_p1005; \     rm -f /etc/udev/rules.d/hpmudlaserjet_p1006; \
     rm -f /etc/udev/rules.d/hpmudlaserjet_p1007; \     rm -f /etc/udev/rules.d/hpmudlaserjet_p1008; \
     rm -f /etc/udev/rules.d/hpmudlaserjet_p1505; \     rm -f /etc/udev/rules.d/hpmud_support.rules; \
     rm -f /etc/udev/rules.d/hpmud_plugin.rules; \     rm -f /lib/udev/rules.d/hpmud_support.rules; \
     rm -f /lib/udev/rules.d/hpmud_plugin.rules; \     rm -f /lib/udev/rules.d/-hplj10xx.rules; \
     if [ -x /sbin/udevd ]; then \
     version=/sbin/udevd --version 2>/dev/null; \
     elif [ -x /usr/lib/udev/udevd ]; then \
     version=/usr/lib/udev/udevd --version 2>/dev/null; \
     elif [ -x /lib/systemd/systemd-udevd ]; then \
     version=/lib/systemd/systemd-udevd --version 2>/dev/null; \
     elif [ -x /usr/lib/systemd/systemd-udevd ]; then \
     version=/usr/lib/systemd/systemd-udevd --version 2>/dev/null; \
     fi; \
     if [ "$version" = "" ]; then version=0; fi; \
     echo ""; \     echo " udev version $version"; \
     echo "***"; \
     if [ "$version" -lt 148 ]; then \
     install -c -m 644 hplj10xx.rules.old /etc/udev/rules.d/11-hplj10xx.rules; \
     else \
     install -c -m 644 hplj10xx.rules /etc/udev/rules.d/11-hplj10xx.rules; \
     fi \
 fi
***
***udev version 241
***
if [ -d /etc/devd ]; then \
     install -c -m 644 hplj10xx.conf /etc/devd/; \
 fi
 [ -d /etc/hotplug/usb ] || install -d -m 755 /etc/hotplug/usb/
 install -c -m 755 hplj1000 /etc/hotplug/usb/
 ln -sf /etc/hotplug/usb/hplj1000 /etc/hotplug/usb/hplj1005
 ln -sf /etc/hotplug/usb/hplj1000 /etc/hotplug/usb/hplj1018
 ln -sf /etc/hotplug/usb/hplj1000 /etc/hotplug/usb/hplj1020
 ln -sf /etc/hotplug/usb/hplj1000 /etc/hotplug/usb/hpljP1005
 ln -sf /etc/hotplug/usb/hplj1000 /etc/hotplug/usb/hpljP1006
 ln -sf /etc/hotplug/usb/hplj1000 /etc/hotplug/usb/hpljP1007
 ln -sf /etc/hotplug/usb/hplj1000 /etc/hotplug/usb/hpljP1008
 ln -sf /etc/hotplug/usb/hplj1000 /etc/hotplug/usb/hpljP1505
 /etc/hotplug/usb/hplj1000 install-usermap
 /etc/hotplug/usb/hplj1005 install-usermap
 /etc/hotplug/usb/hplj1018 install-usermap
 /etc/hotplug/usb/hplj1020 install-usermap
 /etc/hotplug/usb/hpljP1005 install-usermap
 /etc/hotplug/usb/hpljP1006 install-usermap
 /etc/hotplug/usb/hpljP1007 install-usermap
 /etc/hotplug/usb/hpljP1008 install-usermap
 /etc/hotplug/usb/hpljP1505 install-usermap
# modprobe usblp
/etc/hotplug/usb/hplj1000 install-usblp

En mi caso, el proceso lanzó un error en el primer intento de compilación debido a que system-config-printer-udev estaba instalado e interfería en el proceso. Desinstalando este programa y volviendo a re-compilar se llega a buen puerto.

Puesto que vamos a usar CUPS para trabajar con la impresora, reiniciamos el demonio cupsd. Podemos hacerlo a mano nosotros mismos si sabemos, o podemos ordenarlo durante el proceso de instalación mediante la siguiente línea de comando:

# make cups

Al final de todo lo que se te indica en pantalla, debe aparecer al mensaje siguiente:

[ ok ] Restarting cups (via systemctl): cups.service.

Con todo ya listo, procedemos a configurar la impresora desde CUPS, y para ello abrimos el navegador de nuestro sistema y tecleamos en la barra de dirección lo siguiente:

localhost:631

lo que nos permitirá conectar con la interfaz web de CUPS para añadir una impresora. Nos vamos a Administration y seleccionamos la opción HP Laserpro P1102W (driverless). Como se ve en la imagen, ya hay varias opciones parecidas que corresponden a instalaciones anteriores de la impresora y que no funcionan, pues se hicieron en versiones anteriores de Debian. Es posible que durante este proceso se nos pida el usuario y contraseña para realizar cambios. En ese caso, DEBEMOS ACTUAR como usuario root con su contraseña. NO VALE ser un usuario normal con privilegio temporal.

Si pulsamos sobre el botón continue, se nos pedirá que rellenemos unos campos del formulario para poder identificar la impresora cuando la necesitemos (imagen de abajo). Yo los he rellenado todos para evitar confundir la impresora nueva con las configuraciones anteriores que no funcionan. La opción de share this printer no la marco, pues no voy a compartir la impresora.

En la siguiente pantalla se nos pedirá que seleccionemos el modelo de impresora, y marcamos la opción driverless/cups-filters. La opción IPP EverywhereTM es la que permite el uso de la impresora sin driver dependiente del vendedor (aún no está completamente soportado, por lo que no se usará en este tutorial). Queda pendiente la instalación de la impresora con IPP EverywhereTM (¿quizá para otro tutorial?).

A continuación, pulsamos en Add printer y ajustamos la configuración por defecto del papel de la impresora si fuera necesario. Pulsamos en Set Default Options y tenemos todo listo para imprimir una hoja de prueba.

Ponemos papel en la impresora si no lo tenemos puesto, vamos a Printers, desplegamos la opción Maintenance y seleccionamos Print Test Page. Y nuestra impresora debería cobrar vida y tragarse una hoja para devolverla impresa a continuación.

Con esto ya estaría lista la impresora para trabajar. Si no te gusta usar el controlador libre, puedes echar un vistazo a la segunda parte de esta entrada. En ella se muestra cómo instalar la impresora con el controlador propietario.

¡Que lo imprimas bien! 😉

Enlaces de interés:

Controlador libre y sus instrucciones de instalación (inglés)

¿Qué es IPP EverwhereTM? (inglés)

Deja un comentario