Ich war schon drauf und dran, meinen Schrotthaufen von Drucker (ein HP Laserjet P1102w) auf den Werstoffhof zu schleppen: die WLAN-Konfiguration verursacht körperliche Schmerzen und seit einiger Zeit verschluckt sich die Kiste regelmäßig an Druckaufträgen. Das hat zur Folge, dass der Drucker scheinbar ein Eigenleben entwickelt und 10 bis 100 Minuten nach dem Einschalten aus dem Nichts anspringt und eine halbe Seite mit irgendeinem alten Druckauftrag füllt.
Das Gerät auf Werkseinstellungen zurückzusetzen half nur kurz (zumal man sich anschließend wieder durch die WLAN-Konfiguration quälen muss). Also sollte das Ding mit halbvollem Toner auf den Schrott gehen … bis dann doch die Vernunft siegte. Nicht ganz unschuldig war übrigens eine recht augenöffnende Doku auf dem NDR. Porträtiert wird unter anderem der Inhaber der Blitzblume Ingelheim, ein echtes Original
Klar ist: der Drucker als solches funktioniert nach wie vor klasse. Nur der integrierte Rechenknecht, der den Druckerserver im Netwerk bereitstellt, taugt offenbar nichts. Aber den Teil kann doch ein oller Raspberry Pi mindestens genauso gut erledigen. Gesagt, getan!
Rasperry Pi als Drucker-Server
Die folgenden Punkte dienen wie immer auch als Merkzettel für mich. Nachmachen und bei Bedarf optimieren ist natürlich erlaubt!
Vorüberlegungen
Den „smarten“ Drucker machen wir dümmer, indem wir sämtliche Wifi-Funktionen deaktivieren. Anschlossen wird das Gerät stattdessen per USB an einem preiswerten Einplatinenrechner. Dieser wiederum hängt am Netzwerk und stellt eine Druckerfreigabe bereit. Ein Drucker, der von sich aus überhaupt keine Netzwerkfunktionalität mit sich bringt, lässt sich natürlich auf dieselbe Weise verwenden. Ob der Drucker mit CUPS kompatibel ist, sollte vorab unter OpenPrinting.org nachgeschlagen werden.
Konkret hab ich mich für einen Raspberry Pi Zero WH entschieden, der ist mit Zubehör momentan für rund 20 Tacken zu haben (Preisvergleich) – jeder andere Einplatinenrechner mit USB-Anschluss und Netzwerkfähigkeit eignet sich genau so.
Der rechner läuft headless, also ohne angeschlossene Eingabegeräte oder Bildschirme. Auch die Konfiguration soll bitteschön ohne Adapter erfolgen. Die Druckerverwaltung übernimmt CUPS, Linux-Anwender kennen das vermutlich schon.
Einkauf
Folgendes wird benötigt (gibt's in einschlägigen Shops auch als Set):
- Einplatinenrechner (hier: Raspberry Pi Zero WH)
- Netzteil mit genügend Power und passendem Kabel (hier: Micro-USB)
- Micro-SD-Karte (mindestens 4 GB, je nach Anwendungszweck lieber gleich mehr)
- Um den Drucker anzuschließen, einen Adapter von USB-A (weiblich) auf Micro-USB (männlich) – oder gleich ein Kabel von USB-B auf Micro-USB
Optional darf im Warenkorb landen:
- Gehäuse für den Raspberry Pi
- HDMI-Adapter, um doch mal einen Monitor anzuschließen
- USB-Hub, falls noch mehr Geräte angeschlossen werden sollen (z.B. Tastatur, Maus)
Setup
Ich gehe im Folgenden davon aus, dass ein Linux-System zur Vorbereitung verwendet wird. Anleitungen für Windows-Nutzer finden sich aber problemlos im Netz.
Wer schonmal einen Raspi eingerichtet hat und sich unter Linux halbwegs zuhause fühlt, braucht vielleicht eine Stunde für alle folgenden Schritte. Einsteiger legen lieber noch eine Stunde drauf.
Den Raspberry Pi vorbereiten
- Betriebsystem-Image runterladen (die Lite-Variante wählen)
- Wer einen anderen Einplatinenrechner verwendet, kann beispielsweise auf Armbian zurückgreifen. Die folgenden Schritte lassen sich weitgehend übernehmen.
- Image auf SD-Karte übertragen
- SD-Karte in deinen Rechner oder Laptop stecken und Device-Namen im Terminal ausgeben lassen, z.B. mit
blkid
. Wir suchen den Eintrag/dev/mmcblkX
, wobeiX
für eine Ziffer steht. - Das Image wird mit folgendem Befehl übertragen (
X
entsprechend ersetzen) (aufgepasst: Der Befehldd
stellt keine Rückfragen und du kannst ohne Weiteres die falsche Partition überschreiben):$ sudo dd if=/pfad/zum/image/raspios-buster-armhf-lite.img of=/dev/mmcblkX bs=1M conv=fsync status=progress
- SD-Karte in deinen Rechner oder Laptop stecken und Device-Namen im Terminal ausgeben lassen, z.B. mit
- WiFi vorbereiten (überspringen, wenn dein Raspi per Ethernet-Kabel am Router angeschlossen wird)
- SD-Karte noch nicht entnehmen und auf der frisch angelegten boot-Partition die Datei
wpa_supplicant.conf
mit folgendem Inhalt anlegen (Details finden sich in der Dokumentation):ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1
network={
ssid="MeinWLAN"
psk="meinpasswort123"
key_mgmt=WPA-PSK
}
- SD-Karte noch nicht entnehmen und auf der frisch angelegten boot-Partition die Datei
Der erste Start
- SD-Karte in den Raspi stecken und booten
- Der Raspberry Pi sollte hochfahren, sobald er ans Netzteil angeschlossen wird
- Während der Rechner bootet, ins Admin-Panel des Routers einloggen und in der Netzwerkübersicht den Rasperry Pi suchen. IP-Adresse merken (und idealerweise gleich in den DHCP-Einstellungen festsetzen, damit er immer dieselbe kriegt)
- Ein Terminal öffnen und mit dem Raspberry Pi verbinden (hier kommt die IP-Adresse zum tragen – IPv6 geht natürlich auch) – das Passwort lautet
raspberry
:$ ssh pi@192.168.178.xyz
- First things first: rufe mit Root-Rechten das bordeigene Konfigurationsprogramm auf (das Passwort lautet wieder
raspberry
):$ sudo raspi-config
- Passwort ändern unter 1. System Options → S3 Password
- Speicher erweitern unter 6. Advanced Options → A1 Expand Filesystem (nach dem Übertragen des Images auf die SD-Karte steht noch nicht der gesamte Speicherplatz zu Verfügung. Dieser Befehl schafft Abhilfe.):
- System auf den neuesten Stand bringen unter 8. Update
- Optionale Schritte:
- System-Sprache und/oder Tastaturlayout anpassen unter 5. Localisation Options
- Wenn du keinen DHCP verwendest oder aus anderen Gründen die IP fest in den Netzwerkeinstellungen verankern willst:
$ sudoedit /etc/dhcpcd.conf
Netzwerkkonfiguration nach folgendem Muster eintragen (der korrekte Interface-Name lässt sich per
ip link
rauskriegen):interface wlan0 static ip_address=192.168.0.4/24 static routers=192.168.0.254 static domain_name_servers=192.168.0.254 8.8.8.8
- Je nachdem wie umfangreich das erste System-Upgrade verlief, ist jetzt ein guter Zeitpunkt für einen Neustart:
$ sudo reboot
Drucker-Server installieren und einrichten
- CUPS installieren und einrichten
- … wer einen HP-Drucker hat, installiert
hplip
gleich mit. Die Ubuntu-Users haben unter anderem auch Anleitungen für Brother und Canon, die sich mit hoher Wahrscheinlich ebenfalls fürs Debian-basierte Raspian OS eignen.$ sudo apt update && sudo apt install cups $ # oder für HP-Drucker: $ sudo apt update && sudo apt install cups hplip
- Benutzer
pi
zur Gruppelpadmin
hinzufügen:$ sudo sudo usermod -aG lpadmin pi
- CUPS-Konfiguration über das Netzwerk ermöglichen
$ sudo cupsctl --remote-admin $ sudo cupsctl --remote-any
- CUPS neustarten
$ sudo systemctl restart cups
- Wer einen HP-Drucker hat, sollte jetzt den proprietären Treiber für sein Gerät installieren. Der folgende Befehl startet einen Assistenten, der durch den Download und die Installation führt (mit Benutzerrechten ausführen):
$ hp-plugin -i
- … wer einen HP-Drucker hat, installiert
- Drucker anschließen und konfigurieren
- Drucker und Raspi mit USB-Kabel verbinden
- Auf dem PC einen Browser öffnen und das CUPS-Web-Interface unter der Adresse
http://192.168.178.xyz:631
aufrufen - Unter Verwaltung den Drucker hinzufügen
- Spätestens jetzt wirst du aufgefordert, per Mausklick von
http
aufhttps
zu wechseln. Anschließend wird dich dein Browser vor einer potentiellen Sicherheitsbedrohung warnen. Die kannst du in diesem Fall ignorieren. - Wenn du dich authentifizieren sollst, gib
pi
als Benutzernamen und dein Passwort aus Schritt 5.1 ein
- Spätestens jetzt wirst du aufgefordert, per Mausklick von
- Dein Drucker sollte unter Lokale Drucker auftauchen. Auswählen und Weiter klicken
- Das passende Modell aus der Liste wählen und im letzten Schritt den Drucker im Netzwerk freigeben
- Falls gewünscht kannst du zum Ausprobieren jetzt eine Testseite drucken
Fertig!
- Drucker benutzen
- Der Drucker sollte von jedem Rechner oder Smartphone innerhalb des Netzwerks gefunden und ohne große zusätzliche Konfiguration benutzt werden können.
- Wer noch nicht genug hat, kann über weitere Anwendungen des Raspberry Pi nachdenken. Netzwerkweit Werbung blocken als Pi-Hole bietet sich da etwa an.
Quellen und weiterführende Links
- Offizielle Raspi-Dokumentation
- Anleitung für Headless-Installation (mit Fokus auf Windows)
- FAQ auf Raspberry.tips
(Titelfoto von Jeff Loucks auf Unsplash)