Das Symptom
Auf dem Display steht, dass eine Patrone bald leer ist. Nicht leer — bald leer.
Der Ausdruck vorhin war tadellos, kein Streifen, kein blasses Feld. Trotzdem
nimmt das Gerät ab sofort keinen Auftrag mehr an. Die Warteschlange füllt sich,
der Drucker blinkt vorwurfsvoll, und die einzige angebotene Handlung heißt:
Verbrauchsmaterial ersetzen. Sie haben ein Gerät gekauft, das nun selbst
entscheidet, wann Sie einkaufen gehen.
Die „Layer 8“-Wahrheit
Für diesen Fall gibt es einen Standardtext, und er ist überraschend eindeutig.
Das Internet Printing Protocol, festgeschrieben in RFC 8011, lässt jeden Drucker
seinen Zustand in einer festen Liste von Gründen melden. Zwei davon sind hier
relevant. Der eine heißt marker-supply-low und bedeutet im Wortlaut: Das Gerät
ist knapp bei mindestens einem Verbrauchsmaterial — Toner, Tinte, Farbband. Der
andere heißt marker-supply-empty und bedeutet: Das Gerät ist aus. Das sind nicht
zwei Stufen derselben Meldung, sondern zwei verschiedene Dinge.
Denn RFC 8011 lässt an jeden dieser Gründe eine Schwere anhängen. Es gibt
Berichte, Warnungen und Fehler, und der Standard definiert die Stufen streng.
Über Warnungen schreibt er wörtlich, dass sie nichts enthalten dürfen, was den
Abschluss eines Auftrags verhindert — die Ausgabe darf schlechter werden, aber
der Auftrag muss durchlaufen. Über Fehler schreibt er das Gegenteil: Enthält die
Zustandsliste einen Fehler, muss der Drucker im Zustand stopped sein. Fehlt der
Zusatz, gilt eine Faustregel, die der Standard ausdrücklich formuliert: Steht der
Drucker, ist es ein Fehler, sonst eine Warnung.
Und damit ist gesagt, was hier passiert: Ein Gerät, das bei „fast leer“ den
Dienst einstellt, hat diesen Zustand für sich zum Fehler erklärt — obwohl er
inhaltlich nichts weiter besagt, als dass ein Vorrat zur Neige geht. Formal ist
das zulässig, denn wie ein Hersteller seine Zustände einstuft, schreibt das
Protokoll ihm nicht vor. Verlangt hat es aber auch niemand: Nirgends im Standard
steht, dass ein knapper Vorrat ein Grund zum Anhalten wäre. Warum ein Hersteller
es trotzdem so baut, beantwortet weder ein Standard noch eine Handbuchseite noch
ein Protokollmitschnitt — und deshalb steht hier auch keine Antwort, sondern nur
die Feststellung, dass die Belegbarkeit an dieser Stelle endet. Alles Weitere
wäre Vermutung, und Vermutungen gehören nicht in eine Anleitung.
Was Sie tun können, teilt sich sauber in zwei Bereiche. Auf der Rechnerseite ist
alles dokumentiert und beeinflussbar: Die Warteschlange lässt sich wieder
freigeben, die Auswertung der Füllstände lässt sich abschalten, der gemeldete
Zustand lässt sich im Klartext lesen. Auf der Geräteseite gilt das Handbuch Ihres
Modells und sonst nichts. Und die dritte Möglichkeit ist die, die der Hersteller
im Sinn hatte, als er das so gebaut hat. Sie wissen schon, welche.
Die echte, verifizierte Lösung
1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:
1.Den gemeldeten Zustand im Klartext ansehen
Bevor man dem Gerät glaubt, fragt man es. Die CUPS-Handbuchseite beschreibt den einen Schalter als ausführliche Auflistung der Drucker und den anderen als Anzeige der Drucker samt der Information, ob sie zum Drucken freigegeben sind. In dieser Ausgabe steht der Grund, aus dem die Warteschlange steht — und zwar in der Sprache des Standards, also etwa als marker-supply-low oder marker-supply-empty.
lpstat -l -p
2.Warnung von Fehler unterscheiden
Jetzt wird es entscheidend. RFC 8011 hängt an jeden Zustandsgrund optional eine Schwere an: report, warning oder error. Für Warnungen gilt laut Standard ausdrücklich, dass sie nichts enthalten dürfen, was den Abschluss eines Auftrags verhindert. Steht in der Ausgabe eine Warnung und das Gerät druckt trotzdem nicht, liegt das nicht am Protokoll. Fehlt der Zusatz ganz, gibt der Standard eine Faustregel vor: Ist der Drucker im Zustand stopped, ist es ein Fehler, sonst eine Warnung.
3.Prüfen, ob die Warteschlange selbst blockiert
Manchmal steht nicht das Gerät, sondern der Rechner davor: Die Warteschlange wurde nach dem letzten Fehler angehalten und nie wieder freigegeben. Der eine Schalter zeigt laut Handbuch den Annahmezustand der Warteschlangen, der andere, ob der Drucker zum Drucken freigegeben ist. Sind Annahme und Freigabe beide in Ordnung und es passiert trotzdem nichts, sitzt die Blockade im Gerät.
lpstat -a
lpstat -p
4.Die Warteschlange wieder in Betrieb nehmen
Steht die Warteschlange, hilft das Gegenstück zum Anhalten. Die Handbuchseite ist knapp und eindeutig: cupsenable startet die genannten Drucker oder Klassen, cupsdisable stoppt sie. Nimmt der Drucker keine Aufträge mehr an, weist cupsaccept das Drucksystem an, Aufträge für dieses Ziel wieder anzunehmen. Beides braucht Verwaltungsrechte.
sudo cupsenable Drucker
sudo cupsaccept Drucker
5.Die Füllstandsmeldung auf der Rechnerseite abschalten
Wenn die Meldung selbst das Problem ist — etwa weil sie bei einer nachgefüllten oder fremden Patrone dauerhaft falsch steht —, lässt sich ihre Auswertung auf der Rechnerseite abstellen. Die CUPS-Verwaltung kennt dafür zwei Schalter: einen, der laut Handbuch festlegt, ob IPP-Füllstandswerte gemeldet werden, und einen für die Füllstände nach RFC 3805 über SNMP. Das schaltet die Anzeige ab, nicht das Verhalten des Geräts — der Unterschied ist wichtig.
sudo lpadmin -p Drucker -o cupsSNMPSupplies=false
sudo lpadmin -p Drucker -o cupsIPPSupplies=false
6.Am Gerät selbst quittieren — und die Grenze anerkennen
Bleibt das Gerät stur, führt kein dokumentierter Weg mehr daran vorbei. Ob ein Drucker eine Fast-leer-Meldung überhaupt quittieren lässt, mit welcher Tastenkombination und ob er danach weiterdruckt, steht ausschließlich im Handbuch des jeweiligen Modells. Es gibt dafür keinen Standard, keine allgemeine Tastenfolge und keinen Befehl — wer Ihnen etwas anderes verspricht, rät. An dieser Stelle hört die belegbare Anleitung auf und fängt das Handbuch Ihres Herstellers an.