Print-Server mit CUPS und AirPrint auf dem Raspberry Pi einrichten

ELektronik-KOmpendium.de
Online

Preis auf Anfrage
Vergleichen Sie diesen Kurs mit ähnlichen Kursen
Mehr ansehen

Wichtige informationen

  • Kurs
  • Online
Beschreibung

Print-Server mit CUPS und AirPrint auf dem Raspberry Pi einrichten CUPS (Common Unix Printing System) ist ein auf mehreren Standards basierendes Open-Source-Drucksystem, welches für Unix-artige Betriebssysteme entwickelt wurde und von Apple für das Betriebssystem Mac OS X unterstützt wird.
Mit CUPS kann man einen Drucker-Server (Print-Server) im Netzwerk betreiben, an dem einer oder mehrere USB-Drucker angeschlossen und somit im Netzwerk erreichbar sind. Dafür eignet sich ein stromsparender Raspberry Pi besonders gut. CUPS berücksichtigt dabei auch die Besonderheiten von Windows- und Apple-Netzwerken. So ist zum Beispiel auch Apples AirPrint in CUPS integriert und funktioniert automatisch. Dadurch können auch iPhones und iPads im Netzwerk drucken. Für Windows-Clients wird ein Samba-Client verwendet. Fast alle Drucker werden von CUPS unterstützt. Für die Modelle, die nicht unterstützt werden, gibt es generische Treiber, die Grundfunktionen zur Verfügung stellen. Nur spezielle Funktionen benötigen einen Treiber des Herstellers.
Da Hewlett Packard ein eigenes Open-Source-Projekt betreibt, werden HP-Drucker besonders gut von CUPS unterstützt.

Wichtige informationen

Themenkreis

Aufgaben
  1. Installieren Sie CUPS und richten es anschließend ein.
  2. Installieren Sie den Drucker-Treiber, falls notwendig.
  3. Richten Sie den Drucker unter CUPS ein.
  4. Drucken Sie eine Datei auf der Kommandozeile aus.
Lösung: Installation und Einrichtung von CUPS

Zuerst führen wir ein Update der Paketlisten und ein Upgrade des Systems durch.

sudo apt-get update sudo apt-get upgrade

Dann installieren wir CUPS.

sudo apt-get install cups

Je nach System kann der Installationsprozess mehrere Pakete mit über 100 MByte umfassen. So werden neben CUPS auch Teile von Samba, Avahi, Perl und verschiedene Bibliotheken installiert. Bis alles herunterladen und anschließend installiert ist, kann es einige Zeit dauern.

Nach dem alles installiert ist, müssen an der CUPS-Konfigurationsdatei einige Änderungen vorgenommen werden.

sudo nano /etc/cups/cupsd.conf

CUPS lauscht standardmäßig auf Port 631, allerdings nur auf dem Localhost. Wenn man über das Netzwerk darauf zugreifen möchte, muss man das zuerst freigeben.

Die Zeile:

Listen localhost:631

ändern in:

Port 631

Dann soll der Print-Server alle angeschlossenen Drucker im Netzwerk bekannt machen. Dazu fügen wir noch folgende Zeile ein:

BrowseAddress @LOCAL

Der Wert "BrowseAddress" gibt an, an welche Hosts Druckerinformationen "gebroadcastet" werden. "@LOCAL" steht in dem Fall für "alle" Hosts im lokal angeschlossenen Netzwerk.

Dann suchen Sie nach folgenden Zeilen und fügen jeweils ein "Allow @Local" ein.

# Restrict access to the server... <Location /> Order allow,deny Allow @LOCAL </Location>
# Restrict access to the admin pages... <Location /admin> Order allow,deny Allow @LOCAL </Location>
# Restrict access to configuration files... <Location /admin/conf> AuthType Default Require user @SYSTEM Order allow,deny Allow @LOCAL </Location>

"@LOCAL" steht für alle lokal am Druckserver angeschlossenen Netze. Davon ausgenommen sind Dial-Up-Verbindungen.

Nach den Änderungen muss man die Datei speichern und schließen: Strg + O, Return, Strg + X.

Dann müssen wir noch einen Benutzer der Benutzergruppe "lpadmin" hinzufügen. Das kann der Standard-Benutzer "pi" sein. Man kann dafür auch einen neuen Benutzer anlegen, sofern man das möchte. Das ist aber nicht zwingend erforderlich.

sudo usermod -aG lpadmin pi

Danach ist ein Restart des CUPS-Servers notwendig.

sudo service cups restart

Das ist immer dann notwendig, wenn die Konfigurationsdatei von CUPS geändert wurde.

Lösung: Drucker-Treiber installieren

Je nach Hersteller und Drucker-Modell ist die Installation von Drucker-Treibern mal mehr oder weniger einfach. Für gängige Modelle bringt CUPS bereits Drucker-Treiber mit. Aber eben nicht für alle. Am besten funktioniert es immer noch mit HP-Druckern. Ohne Werbung zu machen, HP stellt für seine Drucker Open-Source-Drucker-Treiber zur Verfügung. Das heißt, einen HP-Drucker bekommt man mit CUPS in der Regel immer zum Laufen. Andere Hersteller sind hier nicht so freigiebig, weshalb man hier mehr Aufwand hat. Manchmal kommt man um das Kompilieren des Treibers nicht herum.

Für HP-Drucker gibt es eine große Auswahl an Drucker-Treibern, die sich leicht installieren lässt.

sudo apt-get install hplip

Für manche Samsung-Modelle gibt es offene Drucker-Treiber, die in einem Paket zusammengefasst sind.

sudo apt-get install splix

Das Herunterladen und die Installation der Pakete kann etwas länger dauern. Also hier etwas Geduld mitbringen.

Bei anderen Herstellern bedarf es anderer Vorgehensweisen, die sich von Modell zu Modell unterscheiden. Es empfiehlt sich für das entsprechende Drucker-Modell den richtigen Weg zu suchen.

Nachdem man Pakete oder Drucker-Treiber installiert hat, empfiehlt sich ein Restart von CUPS.

sudo service cups restart

Manchmal ist auch ein Reboot des Systems erforderlich.

Lösung: Drucker unter CUPS einrichten und verwalten

Hinweis: Man tut sich beim Einrichten von Druckern unter CUPS leichter, wenn die notwendigen Drucker-Treiber installiert sind.

Jetzt geht es darum, Drucker unter CUPS einzurichten. Dazu muss man den oder die Drucker am USB des Raspberry Pi jetzt anschließen.
Anschließend konfigurieren wir CUPS. Zu diesem Zweck bringt CUPS seinen eigenen Webserver mit und lässt sich bequem über ein Web-Interface konfigurieren. Dazu benötigen wir die IP-Adresse des Raspberry Pi, die zusammen mit der Portnummer "631" in die Browser-Adresszeile eingegeben werden muss.

https://192.168.1.2:631

Es erwartet einen das Web-Interface. Für die Einrichtung eines Druckers geht man wie folgt vor:

Unter dem Menüpunkt "Verwaltung" klickt man auf den Button "Drucker hinzufügen". In der Regel wird man nach Benutzername und Passwort gefragt. Und zwar von dem Benutzer, den man der Gruppe "lpadmin" hinzugefügt hat.

Drucker hinzufügen (Schritt 1/5)

Danach werden die angeschlossenen und erkannten Drucker aufgelistet (Lokale Drucker), aus der man den Drucker auswählt, den man einrichten möchte.
Achtung, hier werden alle erkannten Drucker aufgelistet, auch die, die man schon eingerichtet hat.

Drucker hinzufügen (Schritt 3/5)

Hier kann man den Drucker-Namen und die Beschreibung den eigenen Wünschen anpassen. Das muss man aber nicht. Im Prinzip kann man die Vorgabe so lassen, weil diese Bezeichnung meist korrekt ist und später auch auf den Client-Systemen verwendet wird.
Wichtig ist hier nur, einen Haken unter "Freigabe" zu setzen. Denn nur so wird dieser Drucker im Netzwerk verfügbar gemacht. Ist der Haken nicht gesetzt, dann ist der Drucker nur lokal nutzbar.

Drucker hinzufügen (Schritt 5/5)

Hier muss man den Hersteller bzw. die Marke auswählen und anschließend möglichst genau die Modellbezeichnung.
An dieser Stelle ist es hilfreich, wenn der Druckertreiber vorher installiert wurde. Wenn nicht, dann kann man das jetzt tun, CUPS neu starten und den Hersteller erneut auswählen. Dann wird die Liste mit den Modell-Bezeichnungen aktualisiert.

Nach dem wir das richtige Modell ausgewählt haben, müssen noch die Standard-Einstellungen festgelegt werden. Wobei man da in der Regel nichts ändern muss. Die Vorgaben sind zum Drucker-Modell schon passend vorausgewählt.

Nach dem der Drucker eingerichtet ist, kann man noch eine Testseite drucken. Dazu wählt man im Feld "Wartung" einfach "Testseite drucken" aus. Der Testdruck startet dann automatisch.

Lösung: Netzwerkdrucker auf einem Client einrichten

Grundsätzlich stehen die eingerichteten Drucker per AirPrint zum Beispiel für Mac OS, auf dem iPhone und iPad zur Verfügung. Unter Linux und Windows muss man die Drucker jeweils noch als Netzwerk-Drucker einrichten. Die Einrichtungsdialoge sind hier meist selbsterklärend.

Lösung: Drucken von der Konsole

Grundsätzlich kann man auch direkt von der Konsole aus einen Druckauftrag abschicken. Dafür braucht man den Druckernamen. Wenn man das nicht auswendig weiß, dann kann man in der Druckerliste nachsehen.

lpstat -a

Dort wählen wir für das folgende Kommando den Druckernamen aus und geben noch den Pfad einer Text-Datei an, die ausgedruckt werden soll.

lp –d <Druckernamen> </Pfad/zur/Textdatei>

Den Status für den aktuellen Druckauftrag, sofern das Dokument noch nicht fertig gedruckt ist, bekommt man so:

lpstat -p Troubleshooting

Das Einrichten eines Druckers gelingt in der Regel ohne Probleme. Doch manchmal, je nach Hersteller und Druckermodell, hakt es dann doch. Um das Problem zu lösen empfiehlt sich eine Schritt-für-Schritt-Vorgehensweise, auch wenn das Problem vielleicht irgendwo dazwischen liegt.

Zuerst klären wir, ob der oder die Drucker überhaupt am USB erkannt werden. Dazu benötigen wir die "usbutils", die eventuell nachinstalliert werden müssen.

sudo apt-get install usbutils

Ist das Paket "usbutils" installiert, dann prüfen wir, ob der oder die Drucker am USB erkannt wurden.

lsusb

Dieses Kommando ist mal mehr, mal weniger auskunftsfreudig. Typischerweise werden die Drucker mit dem Hersteller-Namen, vielleicht sogar mit der Modell-Bezeichnung ausgewiesen.
Es ist ein gutes Zeichen, wenn der oder die Drucker am USB erkannt werden. Wenn nicht, dann gibt es andere systembedingte Probleme. Eventuell hilft ein Blick in "dmesg".

dmesg

Die dort verzeichneten Fehlermeldung deuten auf Probleme hin, die Einzelfälle sind. Die können wir hier leider nicht auflösen. Eventuell hilft die Suche mit der Fehlermeldung bei der bevorzugten Suchmaschine.

Weitere verwandte Themen:
  • Schritt für Schritt den Raspberry Pi als Server einrichten
  • Raspberry Pi als Server im Dauerbetrieb (24/7, headless)
  • File-Server auf dem Raspberry Pi einrichten
  • NFS-Server auf dem Raspberry Pi einrichten
  • Samba-Server auf dem Raspberry Pi einrichten

Hinweis: Dieses Tutorial ist Teil einer Aufgaben und Übungen mit dem Raspberry Pi-Reihe, die für Lern- und Ausbildungszwecke erstellt wurde. Die dargestellte Lösung ist Teil einer konkreten Aufgabenstellung, die Schüler, Auszubildende und Studenten, lösen sollen. Deshalb muss der hier aufgezeigte Weg nicht der Optimalfall sein.


Vergleichen Sie diesen Kurs mit ähnlichen Kursen
Mehr ansehen