Escrito por Adrian Ali el 15 de octubre de 2019, usando OpenBSD Release 6.5

contacto: adrianali arroba fortix.com.ar

Crear impresora en OpenBSD usando LPD

Nota: vamos a utilizar el demonio lpd para imprimir, no hace falta tener instalado CUPS a no ser que sea dependencia de otro paquete, habitualmente chrome, en mi OpenBSD por estas dependencias quedo instalado de CUPS los siguientes paquetes:

midesktop ~ # 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
midesktop ~ #

pagina de referencia de como configure lpd:

http://daemonforums.org/showthread.php?t=9226

1. Detectar impresora usb

midesktop ~ # 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
midesktop ~ #

midesktop ~ # 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
midesktop ~ #

midesktop ~ # lsusb | grep -i brother
Bus 001 Device 003: ID 04f9:006a Brother Industries, Ltd
midesktop ~ #

Configuramos los permisos correctos en el dispositivo usb para impresion

midesktop ~ # chmod 666 /dev/ulpt0
midesktop ~ # l /dev/ulpt0
crw-rw-rw-  1 root  wheel   64,   0 Mar  9 15:05 /dev/ulpt0
midesktop ~ #

2. Habilitar que lpd arranque en boot

primero que nada generamos el archivo de log si es que no existe:

midesktop ~ # touch /var/log/lpd-errs
midesktop ~ # chown daemon:daemon /var/log/lpd-errs
midesktop ~ # l /var/log/lpd-errs
-rw-r--r--  1 daemon  daemon  0 Mar  9 16:49 /var/log/lpd-errs
midesktop ~ #

ahora habilitamos lpd en boot:

midesktop ~ # rcctl enable lpd

si no esta cargado:

midesktop ~ # ps xa | grep lpd
13105 p4  S+p     0:00.00 grep lpd
midesktop ~ #

lo cargamos:

midesktop ~ # rcctl start lpd
lpd(ok)
midesktop ~

ahora si esta cargado:

midesktop ~ # 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
midesktop ~ #

3. Instalacion de paquetes necesarios

vamos a trabajar con los drivers provistos por:

http://gimp-print.sourceforge.net/ http://gimp-print.sourceforge.net/

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

instalacion:

midesktop ~ #
midesktop ~ # 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
midesktop ~ #
midesktop ~ # 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
midesktop ~ #

4. Configurar filtro de impresion

creamos directorio:

midesktop ~ # mkdir -p /etc/foomatic/direct/
midesktop ~ # cd /etc/foomatic/direct/
midesktop /etc/foomatic/direct #

buscamos drivers de impresion con el modelo justo o similar si no hay:

midesktop /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 '
midesktop /etc/foomatic/direct #

creamos el ppd:

midesktop /etc/foomatic/direct # foomatic-ppdfile -p Brother-HL-1250 -d hl1250 > Brother-HL-1250.ppd
midesktop /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
midesktop /etc/foomatic/direct #

5. Creamos el directorio de spool

midesktop ~ # mkdir -p /var/spool/output/Brother-HL-1250

le seteamos los permisos:

midesktop ~ # cd /var/spool/
midesktop /var/spool # chmod -R 775 output
midesktop /var/spool #

6. Script de filtro

Vamos a crear el script para filtrar el job de impresión que viene del demonio lpd con el filtro ppd, editamos el archivo:

midesktop ~ # 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 damos los permisos:

midesktop ~ # chmod 755 /etc/foomatic/direct/printconv.sh

7. Creamos el archivo /etc/printcap

editamos:

midesktop ~ # 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.

8. Probar lpr con imagen de puffy

midesktop ~ # lpr openbsd_puffy.jpg