Breve:debe extraer el archivo ppd del controlador de Linux
largo:
PRIMERO
- Vaya al sitio web de Brothers Driver y busque DCP195:http://support.brother.com
- Descargue la versión deb de Linux del "controlador de impresora CUPSwrapper (paquete deb)"
- Abra el archivo deb con una herramienta de compresión y siga la ruta hasta "dcp195ccupswrapper-1.1.3-1.i386/opt/brother/Printers/dcp195c/cupswrapper"
- Extraiga el archivo "brother_dcp195c_printer_en.ppd"
SEGUNDO
- Abra la interfaz web de cups a través de
https://192.168.1.2:631/admin
[reemplace la ip con pi's] - Haga clic en "Agregar impresora" Seleccione "Brother DCP-195C (Brother DCP-195C)" y presione "continuar"
- Edite la próxima información si es necesario, marque "compartir impresora" y presione "continuar"
- En "O proporcione un archivo PPD", busque el archivo extraído "brother_dcp195c_printer_en.ppd" y cárguelo. Siga los siguientes pasos... Listo
Después de eso, la impresora estuvo disponible, pero con un error:"Archivo "/usr/lib/cups/filter/brlpdwrapperdcp195c" no disponible"Debido a que instalé el controlador en mi computadora portátil Ubuntu, simplemente pude copiar el archivo de mi computadora portátil en / usr/lib/cups/filter/ al pi
Después de esto, mi computadora portátil pudo encontrar la impresora
Puede hacer que el controlador i386 funcione en Raspberry Pi a través de la emulación, aunque tenga un conjunto de instrucciones diferente. Es muy lento y toma minutos hasta que llega la copia impresa, pero funciona.
Encontré la pista en esta publicación del foro:https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=15526&start=25#p708038
Paso 1:Instale el controlador como se indica en la documentación de Brother
Debería tener un directorio como /opt/brother/Printers/dcp195c/lpd
con el filtro binario brdcp195cfilter
. Este binario es llamado por el filterdcp195c
shell script justo al lado en el mismo directorio.
Creo que ahora ofrecen un script de instalación, pero lo hice sin él. Hay instrucciones en alguna parte sobre lo que debe preinstalarse.
Paso 2:Hacer funcionar la emulación i386
Esto es siguiendo los pasos en https://wiki.debian.org/QemuUserEmulation
Al final del paso 2, debería poder ejecutar los binarios i386 como los binarios regulares. En ps ax
, mostrarán
Instalar Qemu
Instale los paquetes qemu
, binfmt-support
y qemu-user-static
.
Ejecutar update-binfmts --display
para ver qué formatos binarios son compatibles. Deberían habilitarse automáticamente en Raspbian y Debian.
Instalar bibliotecas de soporte x86
En Raspbian, agregue una línea como esta a su /etc/apt/sources.list
:
## Debian i386
deb [arch=i386] http://http.debian.net/debian stable main contrib non-free
Otro repositorio de Debian también funcionará.
El repositorio de Raspbian no tiene archivos binarios x86, así que agregue un [arch=armhf]
línea a sus líneas existentes que comienzan con deb
. Las líneas que comienzan con deb-src
se puede mantener como está.
Dígale a Raspbian que desea un sistema multiarquitectura con paquetes i386 y obtenga la libc i386. Para el update
paso a trabajar, deberá importar y confiar en las claves GPG de Debian para la gestión de paquetes.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386
En este punto, debería poder ejecutar el brdcp195cfilter
binario que viene con el controlador:
$ ./brdcp195cfilter
ERROR: ld.so: object '/usr/lib/arm-linux-gnueabihf/libarmmem.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
Error: invalid option !!
Si ve este resultado, funcionó. El Error: invalid option !!
la línea es brdcp195cfilter
quejándose de que deberías haber aprobado los argumentos.
Opcional:Elimina el ld.so
mensaje de error
Raspbian usa /etc/ld.so.preload
para precargar el libarmmem
biblioteca en todos los procesos. La biblioteca reemplaza algunas costosas rutinas de memoria con rutinas más rápidas escritas en ensamblador ARM, pero no es estrictamente necesario para ejecutar Raspbian.
Es seguro ignorar la advertencia, pero también eliminar o comentar esa línea de /etc/ld.so.preload
. La advertencia aparecerá en los registros de errores de CUPS si no está desactivada.
Paso 3:Haz que esto funcione con CUPS
Debe tener una instalación de CUPS siguiendo las instrucciones del sitio web de Brother.
Conexión USB escamosa
En mi Raspberry, el dmesg
log alternaba rápidamente entre estas líneas en algún momento:
[58981.586842] usblp0: removed
[59222.794260] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0222
Lo que me solucionó fue ir a localhost:631
(la interfaz web de CUPS) y modifique la impresora en la sección "Impresoras" para que use el dispositivo USB reconocido por CUPS en lugar del usb://dev/usb/lp0
dispositivo.
Deje que la impresora reciba datos a una velocidad normal
brdcp195cfilter
es un paso en el proceso de impresión que recibe un gran mapa de bits de entrada y lo convierte en algo que luego se canaliza al dispositivo de impresión. Medí un tamaño de entrada de ~90 MB para un mensaje simple de "Hola mundo" en la parte superior de la página.
La emulación en la Raspberry no es lo suficientemente rápida como para seguir alimentando la impresora con datos. La impresión funciona, pero escuché ruidos poco saludables de los motores de la impresora activos mientras esperaban datos.
Para solucionar esto, instale la utilidad sponge
del moreutils
empaquetar y editar filterdcp195c
para que la salida de $BRCONV $BRCONV_OP
(también conocido como brdcp195cfilter
) se canaliza a través de sponge
. Debe haber tres líneas dentro de los casos "PostScript", "PDF" y "*" al final del archivo, terminando en ... | $BRCONV $BRCONV_OP | sponge
.
Lo que esto hace es engullir todos los resultados del proceso de conversión de larga duración y solo enviarlos a la impresora de una sola vez cuando el convertidor haya terminado. De esa forma, la impresión tarda más en comenzar, pero la impresora recibe los datos a un ritmo normal.
(sponge
almacena los datos que almacena en un directorio temporal, por lo que no está limitado por la RAM de Raspberry Pi)