Montar impresoras en / dev / usb y seguir usando CUPS

12

Debido a una nueva versión de CUPS, de repente perdí la ruta directa a mis impresoras que estaba disponible anteriormente /dev/usb/lpXXX. Utilicé esto para imprimir directamente desde la línea de comando. echo "test" > /dev/usb/lp0.

Después de buscar, encontré una manera de solucionar esto, comentando blacklist usblpen /etc/modprobe.d/blacklist.conf. De hecho, esto funciona, pero si lo hago, CUPS ya no podrá comunicarse con ninguna impresora (y lo necesito). Entonces, ¿cómo puedo tener algún tipo de ruta directa a mi impresora y todavía tener CUPS funcionando?

NOTA: CUPS no reconoce algunas de las impresoras (de recibos), por lprlo que no funcionarán para ellas.

imz - Ivan Zakharyaschev
fuente
Archwiki tiene algunos párrafos sobre este tema , al final recomiendan usar el usblpmódulo para cargar el firmware (por ejemplo cat sihp1020.dl > /dev/usb/lp0) y rmmodluego . (Feo, de hecho.)
Sr_
Para referencia futura, confirmo que DEVICE_URI="usb://HP/LaserJet%20102?serial=XYZ" /usr/lib/cups/backend/usb 1 1 1 1 '' ~/sihp1020.dles una libusbforma práctica de enviar el firmware a una impresora que lo necesita (y que, usando usblp, lo envió a través de cat sihp1020.dl > /dev/usb/lp0antes). Esto también podría usarse para enviar archivos arbitrarios a la impresora USB, por lo que el OP podría intentarlo.
Sr_
Otra cosa para probar, de acuerdo con esto , podría haber una forma de usar CUPS con el usblpmódulo, configurándolo para usar en file:/dev/usb/lp0 lugar de usb:/dev/usb/lp0 .
Sr_

Respuestas:

1

Puedo confirmar que la solución anterior funciona bien para mí. Uso OpenWRT con CUPS para imprimir a través del enrutador (TL-WR1043ND). Yo uso una HP Laserjet P1005. Este necesita un firmware cargado cada vez que se enciende. Puse el firmware /usr/liby usé el siguiente comando:

DEVICE_URI="usb://HP/HP%20LaserJet%20P1005?serial=BB0417Y" /usr/lib/cups/backend/usb 1 1 1 1 '' /usr/lib/sihpP1005.dl

Donde usb://HP/HP%20LaserJet%20P1005?serial=BB0417Ynecesita ser reemplazado con el tuyo. Puede encontrarlo usando el comando / usr / lib / cups / backend / usb.

Bas
fuente
0

¿Cuál es su versión de CUPS y distribución? Desde 1.4.x, CUPS puede usar libusbpara hablar con los nodos del dispositivo USB en lugar de pasar lpusb.

efímero
fuente
0

¿Puede indicar su marca y modelo de impresora, por favor? Además, ¿cuál es su distribución? Además, ¿cuál es su versión CUPS? No estoy claro cuál es el problema descrito en el primer párrafo. Puede configurar la impresión con CUPS a través de USB. (Por lo general) no es un gran problema. ¿Puedes explicar cómo lo configuraste originalmente? Tenga en cuenta que CUPS tiene una lprutilidad, que al menos en Debian está en el cups-bsdpaquete, y se puede utilizar para imprimir desde la línea de comandos, utilizando CUPS como back-end, de la manera habitual, es decir lpr filename.

Normalmente cuando el USB está configurado, /etc/cups/printers.confse verá así. Mi impresora actual está usando USB.

# Printer configuration file for CUPS v1.4.4
# Written by cupsd
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<DefaultPrinter SamsungLaser>
Info SamsungLaser
MakeModel Samsung ML-2850 Series PS
DeviceURI usb://Samsung/ML-2850%20Series
[...]

Esto generalmente se configura con el comando de línea de comandos lpadmin. El comando se ve así:

/usr/sbin/lpadmin -p printer -E -v device -P ppd_file

Ejecute esto como root o como usuario en el lpadmingrupo. En esto el dispositivo es usb://something. Para encontrar el dispositivo USB correspondiente a su impresora, intente

lpinfo -l -v

Por supuesto, debe asegurarse de que esté enchufado y encendido. Alguien sugirió correr /usr/lib/cups/backend/usb, lo que también funcionó para mí. Pero lpinfoes más estándar. ¿Cómo llegaste a usar /dev/usb/lpXXXen primer lugar?

En mi computadora obtengo el siguiente resultado:

/usr/lib/cups/backend/usb

DEBUG: list_devices_libusb
DEBUG: usb_find_busses=2
DEBUG: usb_find_devices=5
direct usb://Samsung/ML-2850%20Series "Samsung ML-2850 Series" "Samsung ML-2850 Series" "MFG:Samsung;CMD:PCL5E,PCL6,POSTSCRIPT;MDL:ML-2850 Series;CLS:PRINTER;STATUS:BUSY;" ""

Puede consultar el Manual del administrador de software de CUPS para obtener más información. Apple ha hecho algo extraño con la documentación para versiones CUPS más recientes, por lo que esto es para CUPS 1.1 pero aún debe ser válido.

Nota: No comenzaría a poner en lista negra los módulos a menos que esté realmente seguro de que ese es el problema.

Faheem Mitha
fuente