Von CUPS nach `lpr', wie?

Einrichten des Druckers und des Drucksystems, Scannerkonfiguration und Software zum Scannen und Faxen.
Antworten
Benutzeravatar
Meillo
Moderator
Beiträge: 9338
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Von CUPS nach `lpr', wie?

Beitrag von Meillo » 31.01.2008 16:23:48

Ich habe einen Printserver (Edimax PS-3207U) an dem ein Drucker hängt.
Inzwischen habe ich ihn (mit viel Ausprobiererei) zum Laufen gebracht *Juhuu*.

Die funktionierende Konfiguration basiert auf CUPS.

Nun hat cosmac mir `lpr' in diesem Thread so richtig schön schmackhaft gemacht:
cosmac hat geschrieben:solche Netzwerkdrucker laufen auch ganz ohne CUPS. Stattdessen
braucht man das Paket lpr. Dann braucht der Drucker einen Namen,
z.B. "olsen" ¹. Der passende Eintrag in /etc/printcap heisst dann:

Code: Alles auswählen

olsen|Haus 2, Zimmer 242:\
        :rm=172.29.xxx.xxx:\
        :rp=lp:\
        :sd=/var/spool/lpd/olsen:\
        :lf=/var/spool/lpd/olsen/log:\
        :af=/var/spool/lpd/olsen/acct:\
        :bk:sh:mx#0:
wichtig ist, dass am Zeilenende nach dem \ kein Leerzeichen steht.

Drucken kann man dann in der Konsole mit

Code: Alles auswählen

lpr -P olsen datei.ps
enscript -P olsen datei.txt
und aus z.B. Iceweasel heraus, indem man den Druckbefehl unter
Drucker-Eigenschaften einträgt:

Code: Alles auswählen

lpr -P olsen
Da ich sowieso nur mit `lp' oder `lpr' aus der Kommandozeile drucke würde ich jetzt natürlich gerne das komplette CUPS weglassen.

Was muss ich in die /etc/printcap reinschreiben, damit es funktioniert?


Der Drucker in der printers.conf von CUPS:

Code: Alles auswählen

<Printer network-e320>
Info network-e320
Location network
DeviceURI lpd://192.168.0.10/lpt2
State Idle
StateTime 1201791729
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
Use ed once in a while!

cosmac
Beiträge: 4581
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 31.01.2008 17:38:14

hi,

leider gibt's da einen klitzekleinen Haken: der HP2015 von Lötpaste
versteht Postscript -- mit so einem Netzwerkdrucker geht das, weil
der keinen Treiber braucht. Theoretisch kann man auch im printcap
einen Treiber eintragen (Option of= oder if=), aber das hab' ich
noch nie probiert.

Der Rest ist trivial: mit den Daten aus dieser Zeile

Code: Alles auswählen

DeviceURI lpd://192.168.0.10/lpt2
sieht das Beispiel-Eintrag in /etc/printcap so aus:

Code: Alles auswählen

olsen|Haus 2, Zimmer 242:\
        :rm=192.168.0.10:\
        :rp=lpt2:\
        :sd=/var/spool/lpd/olsen:\
        :lf=/var/spool/lpd/olsen/log:\
        :af=/var/spool/lpd/olsen/acct:\
        :bk:sh:mx#0:
die IP-Adresse ist ja klar, d.h. die einzige Änderung ist rp=lpt2.
Evt. geht auch die allgemeine Form rp=lp. Wenn du einen internen
Nameserver hast, solltest du den Hostname des Printservers statt
der Adresse eintragen.

Dann braucht man noch ein Spool-Verzeichnis mit dem Namen
des Druckers. Das erzeugt man am einfachsten als root:

Code: Alles auswählen

# cd /var/spool/lpd
# cp -a lp olsen
Beware of programmers who carry screwdrivers.

Benutzeravatar
Meillo
Moderator
Beiträge: 9338
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Beitrag von Meillo » 31.01.2008 17:51:52

cosmac hat geschrieben:leider gibt's da einen klitzekleinen Haken: der HP2015 von Lötpaste
versteht Postscript -- mit so einem Netzwerkdrucker geht das, weil
der keinen Treiber braucht.
Ahh okay, hab davon gehört.
Theoretisch kann man auch im printcap
einen Treiber eintragen (Option of= oder if=), aber das hab' ich
noch nie probiert.
Werd's mir mal merken ... und bei Gelegenheit mal rumprobieren ...
die einzige Änderung ist rp=lpt2.
Ja, das war der entscheidende Schritt, den ich nicht geschafft habe ;-)

So angepasst zeigt der Drucker zwar an, dass Daten gesendet werden, aber er bricht dann mit einem Fehler ab. Oder er druckt nur den PDF-"Quelltext" oder ähnliches. (Was eben daran liegt, dass er kein PS kann).


trotzdem: vielen Dank für die Hilfe!
Use ed once in a while!

Antworten