Layer 8Ehrlicher Tech-Support
BetriebssystemSchweregrad: Drucker

Linux: Der Druckdienst kennt das Gerät nicht

Kein Drucker in der Liste, kein passender Treiber? Unter Linux fehlt meist nicht das Gerät, sondern die Erkennung im Netz oder die Warteschlange.

Aufwand:
ca. 25 Min.
Voraussetzung:
Terminal, Root-Rechte, Netzwerkzugang zum Drucker
Gilt für:
Linux mit CUPS, Arch Linux, Debian und Ubuntu

Das Symptom

Der Drucker steht da, ist eingeschaltet, hängt am selben Netz oder direkt am USB-Anschluss — und in der Druckerliste ist nichts. Kein Gerät, keine Auswahl, kein passender Treiber. Die Einrichtungsoberfläche zeigt eine leere Liste und schweigt dazu, warum. Und irgendwo öffnet sich in diesem Moment eine Suchmaske mit der Frage nach einem Linux-Treiber für ein Modell, das seit acht Jahren gebaut wird.

Die „Layer 8“-Wahrheit

Die Treibersuche ist der Fehler, nicht die Lösung. Die Handbuchseite des Werkzeugs, mit dem man unter Linux Treiber auflistet, trägt seit einiger Zeit einen bemerkenswerten Zusatz im Namen: abgekündigt. In den Anmerkungen steht es ausbuchstabiert — Druckertreiber und Backends von CUPS werden in einer künftigen Version nicht mehr unterstützt. Wer also nach dem Treiberpaket für sein Modell sucht, sucht nach einem Konzept, das gerade abgebaut wird.

An seine Stelle ist etwas getreten, das im Grunde die Umkehrung ist: Der Drucker beschreibt sich selbst. Das Modell heißt in der Handbuchseite schlicht everywhere, und was dabei passiert, steht dort ebenso schlicht: Es fragt den Drucker unter der angegebenen IPP-Adresse ab. Kein Hersteller, kein Paket, kein Zufallsfund im Netz — ein Befehl, eine Adresse, fertig. Nach Darstellung des ArchWiki können das die meisten Geräte ab etwa 2010.

Damit verschiebt sich die eigentliche Fehlerursache an eine Stelle, an der niemand sie vermutet. Wenn der Drucker in keiner Liste auftaucht, fehlt fast nie ein Treiber. Es fehlt die Diensterkennung: CUPS findet Netzwerkdrucker über DNS-SD, und dafür muss laut ArchWiki der Avahi-Dienst laufen — systemd-resolved genügt an dieser Stelle ausdrücklich nicht. Ein Dienst, der nicht läuft, macht ein vollkommen intaktes Gerät unsichtbar, und die Oberfläche sagt dazu nichts, weil sie nichts zu sagen hat: Sie zeigt eine leere Liste, und leere Listen sind sprachlos.

Das ist der Grund, warum Drucker hier einen eigenen Schweregrad haben. Bei jedem anderen Gerät wäre die Frage „ist es da oder nicht“ beantwortbar. Beim Drucker braucht es dafür drei Befehle, zwei Dienste und die Bereitschaft, ein Protokoll zu lesen.

Die echte, verifizierte Lösung

1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:

  1. 1.

    Erst klären, ob der Druckdienst überhaupt läuft

    Bevor man Geräte sucht, prüft man den Dienst, der sie verwalten soll. Die CUPS-Handbuchseite nennt dafür einen eigenen Schalter, der anzeigt, ob der CUPS-Server läuft. Auf systemd-Systemen heißt die Einheit cups; sie kann alternativ auch über Socket-Aktivierung erst bei Bedarf starten.

    lpstat -r
    systemctl status cups
    
  2. 2.

    Nachsehen, welche Ziele CUPS überhaupt sieht

    Die Handbuchseite beschreibt einen Schalter, der alle verfügbaren Ziele im lokalen Netz anzeigt — das ist die ehrlichste Antwort auf die Frage, ob der Drucker gefunden wird. Erscheint er hier, ist er erreichbar und es fehlt nur die Warteschlange. Erscheint er nicht, ist die Erkennung das Problem und nicht der Treiber.

    lpstat -e
    lpstat -t
    
  3. 3.

    Die Diensterkennung im Netz sicherstellen

    Netzwerkdrucker melden sich über DNS-SD an. Nach der Dokumentation des ArchWiki sollten AirPrint- und IPP-Everywhere-Drucker ohne weitere Konfiguration gefunden werden, sofern avahi-daemon.service läuft; für DNS-SD unterstützt CUPS ausdrücklich kein systemd-resolved. Wer den Avahi-Dienst nicht laufen hat, sucht vergeblich.

    systemctl status avahi-daemon.service
    
  4. 4.

    Die Geräteadresse ermitteln

    Für eine Warteschlange braucht CUPS eine Geräte-URI. Für Netzwerkgeräte ergibt sie sich aus der Erkennung, für USB-Geräte listet lpinfo die angeschlossenen Geräte auf. Achtung, dieser Weg ist abgekündigt: Die Handbuchseite führt lpinfo ausdrücklich als deprecated.

    lpinfo -v
    
  5. 5.

    Die Warteschlange treiberlos anlegen

    Der heute richtige Weg. Die Handbuchseite von lpadmin beschreibt die Schalter genau: -p benennt die Warteschlange, -E gibt sie frei und nimmt Aufträge an, -v setzt die Geräte-URI, -m wählt das Modell. Das Modell everywhere fragt laut Handbuchseite den unter der angegebenen IPP-Adresse erreichbaren Drucker selbst ab und baut die Beschreibung daraus — kein Treiberpaket, keine Suche nach dem passenden PPD.

    sudo lpadmin -p Buero -E -v "ipp://drucker.local/ipp/print" -m everywhere
    lpstat -p Buero
    
  6. 6.

    Die neue Warteschlange zum Standard machen und testen

    Damit Programme sie ohne Nachfrage benutzen, wird sie als Standardziel gesetzt. Anschließend eine Testseite schicken und die Warteschlange kontrollieren — die Handbuchseite von lpstat zeigt mit -d das aktuelle Standardziel und mit -p, ob der Drucker zum Drucken freigegeben ist.

    sudo lpadmin -d Buero
    lpstat -d -p
    
  7. 7.

    Bleibt es dunkel, das Protokoll befragen

    Wenn die Warteschlange steht und trotzdem nichts geschieht, liegt die Antwort im Protokoll. Das ArchWiki empfiehlt dafür, in /etc/cups/cupsd.conf die Zeile LogLevel debug zu setzen und danach /var/log/cups/error_log mitzulesen. Die Zeilen sind vorne gekennzeichnet, D für Debug, E für Error, I für Information — man druckt also einmal und sieht dabei zu.

    sudo tail -n 100 -f /var/log/cups/error_log
    

Häufige Fragen (FAQ)

?Ich finde keinen Treiber für mein Modell. Ist das Gerät verloren?

Eher im Gegenteil — die Treibersuche ist der veraltete Weg. Die Handbuchseite von lpinfo trägt den Zusatz deprecated und stellt in den Anmerkungen klar: Druckertreiber und Backends von CUPS sind abgekündigt und werden in einer künftigen Version nicht mehr unterstützt; Geräte ohne IPP lassen sich stattdessen über Anwendungen wie ippeveprinter unterstützen. Für alles, was AirPrint oder IPP Everywhere spricht — laut ArchWiki die meisten Geräte ab etwa 2010 — braucht man gar keinen Treiber, sondern nur das Modell everywhere.

?Der Drucker taucht in keiner Liste auf, ist aber im selben Netz. Woran liegt das?

Meist an der Diensterkennung, nicht am Drucker. CUPS findet Netzwerkdrucker über DNS-SD, und das ArchWiki hält fest, dass diese Geräte automatisch gefunden werden sollten, sofern avahi-daemon.service läuft — und ausdrücklich, dass CUPS für DNS-SD kein systemd-resolved unterstützt. Läuft der Avahi-Dienst nicht, ist das Netz in Ordnung und der Drucker trotzdem unsichtbar.

?Warum steht in jeder Anleitung lpinfo, wenn es abgekündigt ist?

Weil es funktioniert und weil es lange der einzige Weg war, die Geräte-URI herauszubekommen. Das ArchWiki verweist inzwischen darauf, stattdessen lpstat zu benutzen, und lpstat kennt dafür einen eigenen Schalter, der laut Handbuchseite alle verfügbaren Ziele im lokalen Netz anzeigt. Wer die URI eines per USB angeschlossenen Geräts braucht, kommt an lpinfo derzeit trotzdem noch am schnellsten heran — nur sollte man wissen, dass dieser Weg ein Auslaufmodell ist.

Belege

Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.

Zuletzt geprüft am . Dokumentation altert – ein Datum daneben ist der einzige ehrliche Umgang damit.

Verwandte Fehler

SWDrucker

Drucker druckt Zeichensalat statt Text

Statt des Dokuments kommen Seiten voller kryptischer Zeichen — oft im Dutzend. Der Drucker liest die Daten in der falschen Sprache und merkt es nicht.

SWDrucker

Ausdruck abgeschnitten oder verschoben

Unten fehlt eine Zeile, rechts ist alles abgeschnitten? Meist steht das Papierformat auf Letter statt A4 — oder die Skalierung rechnet dazwischen.

HWDrucker

Drucker streikt bei fast leerer Patrone

Der Drucker verweigert den Dienst, weil eine Patrone fast leer ist. Was der Standard dazu sagt: Fast leer ist eine Warnung, kein Grund zum Anhalten.