...
Hier werde ich zeigen, wie man einen Drucker mit USB-Port Anschluss über einen Raspberry pi netzwerkfähig macht und ihn dann vom eisfair als Netzwerkdrucker anspricht. Ich habe diese Lösung mit meinem Laserdrucker HL-5140 von Brother im Einsatz und bin sehr zufrieden damit.
Da einige Leute über teilweise recht lange Wartezeiten beim Drucken über samba berichteten, schreibe ich gleich dazu, dass das bei mir nicht auftritt: der Drucker fängt hier praktisch ohne Verzögerung an zu Lärmen, wenn man am Client den Druckauftrag abschickt.
Ich habe einen alten Raspberry pi (vermutlich -1b) im Einsatz - das Modell mit LAN und 2 USB-Ports. Ein Modell-2 mit 4-Kern-CPU ist meines Erachtens völlig überdimensioniert.
...
Wenn der Drucker nicht direkt neben dem eisfair-Server steht, hat man ein Problem: USB-Kabel lassen sich nicht beliebig verlängern - wie kommen also die Daten vom eisfair-Server zum Drucker? Man könnte jetzt einen netzwerkfähigen Drucker kaufen - oder einen Printserver - und ob es WLAN-fähige Printserver gibt, habe ich gar nicht erst recherchiert. Denn ein alter Raspberry pi lag noch in der Schublade, und Eigenbau macht (mir jedenfalls) Spass. Ausserdem ist mein Drucker zwar alt, druckt aber hervorragend und das seit vielen Jahren.
Was brauchen wir?
- einen eisfair-Server
- auf dem eisfair-Server ein eingerichtetes samba-Paket
- auf dem eisfair-Server ein eingerichtetes lprng-Paket
- einen Drucker mit USB-Anschluss
- auf allen Clients einen eingerichteten Druckertreiber
- einen Raspberry pi mit Raspbian und eine Stromversorgung
- auf dem Raspberry pi ein eingerichtetes lprng-Paket
- falls wir über WLAN drucken wollen, einen USB-WLAN-Adapter für den Raspberry pi
Wie oben geschrieben, habe ich dies nur mit meinem HL-5140 getestet - dieser 'spricht' PCL (Printer-Control-Language). Ob das Ganze auch mit den sogenannten GDI-Druckern funktioniert, kann ich nicht beurteilen. Und zu Tintendruckern kann ich auch nichts sagen - einfach ausprobieren.
Da das samba-Paket auf eisfair nur auf einen lokalen lokal (also auch auf dem eisfair-Server) installierten lprng drucken kann, nehmen die Druck-Daten also später folgenden Weg:
...
Ich habe praktisch alle Pakete mit aptitude (Paketmanager im Raspbian) entfernt, bei denen er nicht gemeckert hat, dass die Entfernung ein nicht funktionierendes System verursacht. Nun meldet aptitude mir noch 165 installierte Pakete - diese Zahl nur als Anhaltspunkt. Als sinnvoll erachte ich folgende Konstellation:
- er sollte eine feste IP-Adresse haben (kein dhcp!), damit wir ihn später vom eisfair aus ansprechen können
- er sollte sich - falls man das braucht - selbst mit dem gewünschten WLAN verbinden
- er sollte über ssh ansprechbar sein, denn wir wollen ihn später auch aktualisieren können
- er braucht kein swap
- ein mc (midnight-commander) ist immer praktisch
- sein Dateisystem sollte nur ro (read-only) gemountet sein, dann kann man ihn einfach mit dem Drucker ein- und ausschalten
- für Wartungsarbeiten mountet man das Dateisystem rw - eine Anleitung gibt es unter https://www.mehr4u.de/raspberry-pi-mit-readonly-filesystem.html
...
/etc/printcap erhält folgenden Inhalt (ACHTUNG - zweimal Druckername ersetzen):
Code Block |
---|
HL5140|localprinter:\ :lp=/dev/usb/lp0:\ :sd=/var/spool/lpd/HL5140:\ :mx#0:\ :sh: |
...
/etc/lprng/lpd.perms erhält folgenden Inhalt:
Code Block |
---|
DEFAULT ACCEPT |
...
Nun startet man den lprng neu und wir sind mit dem Raspberry pi fertig:
Code Block |
---|
service lprng restart |