Posts Tagged ‘AirPrint’

Freitag, 30. Januar 2026

Einen HP Laser MFP 137fnw in CUPS einbinden

Obwohl es natürlich das altehrwürdige LPR und HP JetDirect (9100) Protokoll gäbe, versuche ich heutzutage wenn immer möglich das Internet Printing Protocol (IPP) zu verwenden. Für HP-Drucker lautet der IPP-Endpunkt /ipp/print, und somit die ganze URL:

ipp://192.168.14.100/ipp/print

Was gleichbedeutend ist wie http://192.168.14.100:631/ipp/print.

Öffnet man diese URL im Browser, erscheint folgende Fehlermeldung:

Invalid Request. Some Error

Den über HPs Website heruntergeladenen Linux Universaltreiber (Treiber-Download-Seite, Direktlink uld-hp_V1.00.39.12_00.15.tar.gz) und das dazugehörende PPD habe ich nicht zum Laufen gekriegt: Im CUPS Web-Interface stand etwas von „Filter failure“, und das Log sah folgendermassen äusserst schizophren aus (eine Mischung aus „alles hat funktioniert“ und „komplettversagen“):

...
D [30/Jan/2026:03:14:45 +0100] [Job 1] PID 2058714 (/usr/lib/cups/backend/http) exited with no errors.
D [30/Jan/2026:03:14:45 +0100] [Job 1] **** Error: Page drawing error occurred.
D [30/Jan/2026:03:14:45 +0100] [Job 1] Could not draw this page at all, page will be missing in the output.
D [30/Jan/2026:03:14:45 +0100] [Job 1] Rendering completed
D [30/Jan/2026:03:14:45 +0100] [Job 1] PID 2058712 (/usr/lib/cups/filter/gstoraster) exited with no errors.
D [30/Jan/2026:03:14:45 +0100] [Job 1] End of messages
...

Leider habe ich es nicht geschafft herauszufinden, woher Could not draw this page at all, page will be missing in the output. konkret stammte, und wie die Fehlermeldung verursacht wird. Meine aktuelle Vermutung: Debian Trixie, die installierte Ghostscript-Version sowie der Treiber können es nicht miteinander.

Exkurs: gstoraster ist im Debian-Paket cups-filters enthalten (Debian Package Search), und gemäss github.com/richud/gstoraster handelt es sich um einen (minimalen?) Ghostscript-Wrapper. Zwischenfrage: Wieso einen Druckauftrag überhaupt auf dem Linux-Druckserver rastern, wenn das der Drucker selber kann?

Item. Man kann die ausführbare Datei aufrufen, und sie gibt folgendes zurück:

$ /usr/lib/cups/filter/gstoraster --help
ERROR: /usr/lib/cups/filter/gstoraster job-id user title copies options [file]

Ausdrucke funktionierten, wenn ich den von CUPS mitgelieferten generischen PCL6-Treiber als Treiber auswählte. Doch eigentlich möchte ich anno domini 2026 Druckaufträge in Form von PDFs direkt an den Drucker senden, und nicht zuerst noch von CUPS nach PCL6 konvertieren.

Die Lösung: Als Druckertreiber wähle man IPP EverywhereTM aus. Damit sollte heutzutage jeder etwas neuere Drucker ansprechbar sein, ohne Treiber- und sonstiges Ghostscript-Gedöns.

Spannend: Ich wusste bis heute nicht, dass dieser generische Standardtreiber aus AirPrint entstanden ist, Apples Lösung um von iPhone und iPad aus zu drucken, ohne auf diesen Geräten irgendwelche Druckertreiber installieren zu müssen. Fantastisch! Danke Apple.

Tags: , , , , , , , , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 23. November 2021

Xerox B215 druckt gelegentlich, aber reproduzierbar Zeichensalat

Seit längerem habe ich das gelegentliche Problem, dass unser neuer Xerox B215 Multifunktionslaserdrucker bei einigen Druckaufträgen unter macOS 11.6 Zeichensalat ausdruckt, und das über dutzende von Seiten.

Gestern war es wieder einmal so weit. Ich hatte eine zu druckende PDF-Datei, die bei jedem Druckauftrag solchen Zeichensalat produzierte.

Nach einigen Recherchen im Netz dann die Lösung: Printing gibberish or random characters in Xerox B215:

I’ve found that most of the problems were due to „Airprint Secure“. I disabled airprint and it seems to have reduced the cases.

Anstelle von (Secure) AirPrint habe ich den Drucker neben AirPrint nun mittels Internet Printing Protocol (IPP, Port 631) eingerichtet. Diesen neuen Drucker ausgewählt, und das PDF druckte auf Anhieb problemlos.

Tags: , , , , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 28. Mai 2014

AirPrint mit einem HP LaserJet 1300 auf einem Linux-Server aktivieren

Heute habe ich den Linux-Server in meinem Heimnetzwerk so konfiguriert, dass der dort per USB angeschlossene HP LaserJet 1300 auch von iOS-Geräten (iPhone und iPad) mittels AirPrint angesteuert werden kann.

Dies stellt sich heutzutage, anno 2014, als ein äusserst simples Unterfangen heraus:

CUPS installieren

Zuerst installiert man auf dem Server CUPS, das Common UNIX Printing System, welches von Apple gehegt und gepflegt wird. In meinem Fall hat dieses Drucksystem lprng ersetzt, welches automatisch deinstalliert wird:

# apt-get install cups

cups Web-Oberfläche freigeben

In /etc/cups/cupsd.conf sind in allen Location-Elementen (merke: CUPS verwendet Apache als Web-Frontend) die IPs des lokalen Netzwerks für erlaubte Zugriffe freizugeben:

...
Listen *:631
...
DefaultAuthType BasicDigest
...
<Location />
  Order allow,deny
  Allow From 10.0.10.0/24
</Location>
...
<Location /admin>
  Order allow,deny
  Allow From 10.0.10.0/24
</Location>
...

DefaultAuthType BasicDigest habe ich von Basic auf Digest umgestellt, damit ich das Passwort meines sudo-befähigten Benutzers nicht im Klartext über das Netzwerk gesendet wird. Damit man sich nach dieser Konfigurationsanpassung einloggen kann, muss man zuerst noch einen entsprechenden Benutzer erstellen:

# lppasswd -a <username>
Enter password: ********
Enter password again: ********

Eigener Benutzer der Gruppe lpadmin hinzufügen

Damit ich CUPS über die Web-Oberfläche administrieren kann, habe ich meinen persönlichen Benutzernamen zusätzlich der lokalen Gruppe lpadmin zugewiesen:

# usermod -aG lpadmin <username>

CUPS LPD-Druckserver einrichten

Obwohl heute IPP das Mass aller (Druck)dinge ist, verwende ich für Mac OS X- und Windows-Clients weiterhin das LPR/LPD-Druckprotokoll, weil es so simpel gestrickt und kaum fehleranfällig ist. Da CUPS aber lprng deinstalliert hat, muss in /etc/inetd.conf folgende Zeile eingefügt werden, welche den CUPS-eigenen LPD-Server aktiviert:

...
printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd -o document-format=application/octet-stream

inetd startet man unter Debian folgendermassen neu:

# /etc/init.d/openbsd-inetd restart

Drucker einrichten und konfigurieren

Über die Web-Oberfläche, welche man unter http://localhost:631 erreicht (respektive über http://10.0.10.10:631) richtet man sich mit dem Installationsassistenten den USB-Drucker ein. Bei mir wurde das Gerät an der USB-Schnittstelle problemlos erkannt und auch entsprechende HP-Treiber angeboten.

WICHTIG: Ich hatte erhebliche Probleme mit dem Postscript-Druckertreiber (der HP LaserJet 1300 kann Postscript 2 emulieren): Jeder zweite Druckauftrag — egal ob von Mac oder vom iPad — blockierte den Drucker entweder oder liess ihn eine fast leere Seite mit der Fehlermeldung „Offending Command“ ausdrucken. Doch sobald ich den Drucker auf den Sample monochrome PCL XL/PCL 6 driver umgestellt hatte, funktionierte die Druckerei tadellos. In diesem Fall ist aber darauf zu achten, dass man unter Mac OS X ebenfalls mit dem PCL-Druckertreiber druckt, damit man dem CUPS-Druckserver die Umwandlung von PostScript zu PCL erspart.

Fertig!

Obwohl ältere AirPrint-Installationsanleitungen im Internet die Sysadmins nun auch noch auffordern, Avahi zu installieren (war bei mir schon vor dieser Neukonfiguration des Drucksystems auf dem Server aktiv) und mittels des Scripts airprint-generate.py einen Bonjour-Service anzukündigen, funktionierte die Anpreisung mit CUPS 1.7.2-3 ohne irgendwelche Konfigurationsanpassungen.

Tags: , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen