Montieren Sie die Drucker unter / dev / usb und verwenden Sie weiterhin CUPS

12

Aufgrund einer neuen Version von CUPS verlor ich plötzlich den direkten Pfad zu meinen Druckern, der zuvor unter verfügbar war /dev/usb/lpXXX. Ich habe dies verwendet, um direkt über die Befehlszeile zu drucken. echo "test" > /dev/usb/lp0.

Nach der Suche fand ich einen Weg, dies zu beheben, indem ich blacklist usblpin auskommentierte /etc/modprobe.d/blacklist.conf. Dies funktioniert zwar, aber wenn ich das tue, kann CUPS nicht mehr mit einem Drucker kommunizieren (und das brauche ich). Wie kann ich also einen direkten Pfad zu meinem Drucker haben und trotzdem CUPS arbeiten lassen?

HINWEIS: Einige der (Beleg-) Drucker werden von CUPS nicht erkannt und lprfunktionieren daher nicht.

imz - Ivan Zakharyaschev
quelle
Das Archwiki enthält einige Absätze zu diesem Thema. Am Ende wird empfohlen , das usblpModul zum Laden der Firmware (z. B. cat sihp1020.dl > /dev/usb/lp0) und rmmodanschließend zu verwenden . (In der Tat hässlich.)
sr_
Zum späteren Nachschlagen bestätige ich, dass dies DEVICE_URI="usb://HP/LaserJet%20102?serial=XYZ" /usr/lib/cups/backend/usb 1 1 1 1 '' ~/sihp1020.dleine funktionierende libusbMöglichkeit ist, die Firmware an einen Drucker zu senden, der sie benötigt (und dass sie mithilfe von zuvor usblpan via gesendet wurde cat sihp1020.dl > /dev/usb/lp0). Dies kann auch verwendet werden, um beliebige Dateien an den USB-Drucker zu senden , sodass das OP dies versuchen kann.
sr_
Eine andere Möglichkeit , dies zu versuchen, besteht darin , CUPS mit dem usblpModul zu verwenden, indem es so konfiguriert wird, dass es file:/dev/usb/lp0 anstelle von verwendet wird usb:/dev/usb/lp0 .
sr_

Antworten:

1

Ich kann bestätigen, dass die obige Lösung für mich gut funktioniert. Ich verwende OpenWRT mit CUPS, um über den Router (TL-WR1043ND) zu drucken. Ich benutze einen HP Laserjet P1005. Dieser benötigt eine Firmware, die bei jedem Einschalten hochgeladen wird. Ich habe die Firmware eingegeben /usr/libund den folgenden Befehl verwendet:

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

Wo usb://HP/HP%20LaserJet%20P1005?serial=BB0417Ymuss durch Ihre ersetzt werden. Sie finden es mit dem Befehl / usr / lib / cups / backend / usb.

Bas
quelle
0

Was ist Ihre Version von CUPS und Distribution? Seit 1.4.x kann CUPS verwenden, libusbum mit den USB- Geräteknoten zu kommunizieren, anstatt durchzugehen lpusb.

kurzlebig
quelle
0

Können Sie bitte Ihre Druckermarke und Ihr Druckermodell angeben? Wie ist Ihre Distribution? Was ist Ihre CUPS-Version? Mir ist nicht klar, was das im ersten Absatz beschriebene Problem ist. Sie können das Drucken mit CUPS über USB einrichten. Es ist (normalerweise) keine große Sache. Können Sie näher erläutern, wie Sie es ursprünglich eingerichtet haben? Beachten Sie, dass CUPS über ein lprDienstprogramm verfügt, das zumindest in Debian im cups-bsdPaket enthalten ist und zum Drucken über die Befehlszeile verwendet werden kann, wobei CUPS als Backend auf die übliche Weise verwendet wird, d lpr filename. H.

Normalerweise /etc/cups/printers.confsieht Ihr USB ungefähr so ​​aus, wenn es eingerichtet ist . Mein aktueller Drucker verwendet 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
[...]

Dies wird normalerweise mit dem Befehlszeilenbefehl eingerichtet lpadmin. Der Befehl sieht ungefähr so ​​aus:

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

Führen Sie dies als root oder als Benutzer in der lpadminGruppe aus. In diesem ist das Gerät usb://something. Versuchen Sie es mit dem USB-Gerät, das Ihrem Drucker entspricht

lpinfo -l -v

Natürlich müssen Sie sicherstellen, dass es eingesteckt und eingeschaltet ist. Jemand schlug vor zu rennen /usr/lib/cups/backend/usb, was auch für mich funktionierte. Ist lpinfoaber mehr Standard. Wie sind Sie überhaupt dazu gekommen /dev/usb/lpXXX?

Auf meinem Computer erhalte ich folgende Ausgabe:

/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;" ""

Weitere Informationen finden Sie im CUPS Software Adminstrator-Handbuch . Apple hat mit der Dokumentation für neuere CUPS-Versionen etwas Seltsames gemacht, daher gilt dies für CUPS 1.1, sollte aber weiterhin gültig sein.

Hinweis: Ich würde nicht damit beginnen, Module auf die schwarze Liste zu setzen, es sei denn, Sie sind sich wirklich sicher, dass dies das Problem ist.

Faheem Mitha
quelle