Configurar impresora en OpenBSD usando LPD
Configurar impresora en OpenBSD usando LPD
Escrito por Adrian Ali el 15 de octubre de 2019, usando OpenBSD Release 6.5 contacto: adrianali arroba fortix.com.ar
Índice
1. Introducción
2. Detectar impresora USB
3. Configurar al demonio LPD para que arranque en boottime
4. Instalacion de paquetes necesarios
5. Configurar filtro de impresión
6. Creamos el directorio de spool
7. Creamos el script de filtro
8. Creamos el archivo /etc/printcap
9. Probar impresión de una imagen de Puffy
10. Referencias
1. Introducción
Voy a explicar como configurar una impresora en OpenBSD usando el demonio LPD (Line Printer Daemon). Una ventaja de usar LPD es que ya viene en la base del sistema, por consiguente no vamos a necesitar del demonio CUPS. Quizas si consultamos los paquetes instalados veamos alguna dependencia de CUPS, en mi caso es una dependencia que viene del navegador chrome:
puffy ~ # pkg_info -a | grep -i cups
cups-libs-2.2.8p0 CUPS libraries and headers
gtk+3-cups-3.22.30p0 gtk+3 CUPS print backend
puffy ~ #
2. Detectar impresora USB
Consultamos los mensajes del kernel con el comando dmesg para mirar si se detecta que esta enchufada la impresora USB:
puffy ~ # dmesg | grep ulpt
ulpt0 at uhub3 port 2 configuration 1 interface 0 "Brother HL-1210W series" rev 2.00/1.00 addr 3
ulpt0: using bi-directional mode
puffy ~ #
con otro comando consultamos de forma similar:
puffy ~ # usbdevs -d /dev/usb1
Controller /dev/usb1:
addr 01: 8086:0000 Intel, EHCI root hub
addr 02: 8087:0024 Intel, Rate Matching Hub
addr 03: 04f9:006a Brother, HL-1210W series
addr 04: 090c:37c0 vendor 0x090c, USB Video Device
puffy ~ #
y otro comando más:
puffy ~ # lsusb | grep -i brother
Bus 001 Device 003: ID 04f9:006a Brother Industries, Ltd
puffy ~ #
Configuramos los permisos correctos en el dispositivo USB usado para imprimir:
puffy ~ # chmod 666 /dev/ulpt0
puffy ~ # ls -la /dev/ulpt0
crw-rw-rw- 1 root wheel 64, 0 Mar 9 15:05 /dev/ulpt0
puffy ~ #
3. Configurar al demonio LPD para que arranque en boottime
Generamos el archivo de log si es que no existe:
puffy ~ # touch /var/log/lpd-errs
puffy ~ # chown daemon:daemon /var/log/lpd-errs
puffy ~ # ls -la /var/log/lpd-errs
-rw-r--r-- 1 daemon daemon 0 Mar 9 16:49 /var/log/lpd-errs
puffy ~ #
ahora configurar que el demonio LPD arranque en el boottime:
puffy ~ # rcctl enable lpd
verificar si esta cargado:
puffy ~ # ps xa | grep lpd
13105 p4 S+p 0:00.00 grep lpd
puffy ~ #
si no lo esta lo iniciamos:
puffy ~ # rcctl start lpd
lpd(ok)
puffy ~
comprobamos si cargo:
puffy ~ # ps xau | grep lpd
daemon 20813 0.0 0.0 752 1376 ?? S 7:58AM 0:00.07 /usr/sbin/lpd
root 74336 0.0 0.0 192 728 p7 R+/1 9:49AM 0:00.00 grep lpd
puffy ~ #
4. Instalación de paquetes necesarios
Vamos a configurar la impresora con los drivers provistos por:
Gimp-Print tambien llamado Gutenprint es una colección de controladores de impresora de software libre para usar con los sistemas de cola de impresión UNIX, como CUPS, lpr y LPRng.
Primero instalamos:
puffy ~ #
puffy ~ # pkg_add -mv gutenprint
quirks-3.16 signed on 2018-10-12T15:26:25Z
File /etc/cups/cups-browsed.conf could not be installed:
No such file or directory
gutenprint-5.2.14:cups-filters-1.21.3: ok
File /etc/cups/command.types could not be installed:
No such file or directory
gutenprint-5.2.14: ok
The following new rcscripts were installed: /etc/rc.d/cups_browsed
See rcctl(8) for details.
New and changed readme(s):
/usr/local/share/doc/pkg-readmes/cups-filters
puffy ~ #
Ahora instalamos:
puffy ~ #
puffy ~ # pkg_add -mv a2ps
quirks-3.16 signed on 2018-10-12T15:26:25Z
a2ps-4.14p14: ok
New and changed readme(s):
/usr/local/share/doc/pkg-readmes/a2ps
puffy ~ #
5. Configurar filtro de impresión
Creamos directorio:
puffy ~ # mkdir -p /etc/foomatic/direct/
puffy ~ # cd /etc/foomatic/direct/
puffy /etc/foomatic/direct #
buscamos drivers de impresión, si no hay uno del modelo justo de la impresora con uno similar debería funcionar:
puffy /etc/foomatic/direct # foomatic-ppdfile -P HL-1250
Brother HL-1250 Id='Brother-HL-1250' Driver='hl1250' CompatibleDrivers='gutenprint hpijs-pcl5e lj4dith lj5gray ljet4 omni hl1250 pxlmono '
puffy /etc/foomatic/direct #
Creamos el archivo ppd:
puffy /etc/foomatic/direct # foomatic-ppdfile -p Brother-HL-1250 -d hl1250 > Brother-HL-1250.ppd
puffy /etc/foomatic/direct # l
total 36
drwxr-xr-x 2 root wheel 512 Mar 9 16:41 .
drwxr-xr-x 3 root wheel 512 Mar 9 16:38 ..
-rw-r--r-- 1 root wheel 13158 Mar 9 16:41 Brother-HL-1250.ppd
puffy /etc/foomatic/direct #
6. Creamos el directorio de spool
puffy ~ # mkdir -p /var/spool/output/Brother-HL-1250
le seteamos los permisos correctos:
puffy ~ # cd /var/spool/
puffy /var/spool # chmod -R 775 output
puffy /var/spool #
7. Creamos el script de filtro
Vamos a crear un script para filtrar el job de impresión que viene del demonio LPD con ayuda del filtro ppd, creamos el archivo:
puffy ~ # vi /etc/foomatic/direct/printconv.sh
con el siguiente contenido:
#!/bin/sh
/usr/local/bin/a2ps -BRq --columns=1 -o - | /usr/local/bin/foomatic-rip -P Brother-HL-1250 --ppd /etc/foomatic/direct/Brother-HL-1250.ppd
le configuramos los permisos correctos:
puffy ~ # chmod 755 /etc/foomatic/direct/printconv.sh
8. Creamos el archivo /etc/printcap
Si es que no existe creamos el nuevo archivo:
puffy ~ # vi /etc/printcap
con el siguiente contenido:
lp|lp1|Brother-HL-1250:\
:lp=/dev/ulpt0:\
:if=/etc/foomatic/direct/printconv.sh:\
:sd=/var/spool/output/Brother-HL-1250:\
:lf=/var/log/lpd-errs:\
:sh:
NOTA: Recordar dejar al final del archivo una linea en blanco.
9. Probar impresión de una imagen de Puffy
Con el comando lpr mandamos a imprimir un archivo de imagen jpg:
puffy ~ # lpr openbsd_puffy.jpg