[Apple] AirPrint für Alle mit Raspberry PI

Mit dem Raspberry Pi könnt Ihr Eure nicht AirPrint-fähigen Drucker jetzt trotzdem AirPrint-fähig machen. Auch Drucker die nicht über eine Netzwerkkarte verfügen können im heimischen Netzwerk verfügbar gemacht werden…

raspi-550

Für relativ kleines Geld kann man seinen alten Drucker (auch ohne Netzwerkkarte) zum Airplay- und Netzwerkfähigen Gerät aufrüsten. Mittels eines Raspberry Pi lässt sich problemlos ein entsprechender Printserver auf CUPS-Basis fürs Heimnetzwerk konstruieren. Bei ca. 1-3 Watt Leistungsaufnahme kann der Raspi auch problemlos 24/7 betrieben werden. Die Stromkosten pro Jahr dürften sich auf ca. 3 – 5 Euro betragen.

Was benötige ich für ein AirPrint-fähiges Raspberry PI

Die Ersteinrichtung des Raspberry Pi findet Ihr in einem gesonderten Tutorial. An dieser Stelle gehen wir davon aus, dass unser Raspi bereits fertig eingerichtet und konfiguriert ist.

Als erstes benötigen wir ein paar Dienste die später unseren Druckserver bilden. Hierzu geben wir im Terminal (hier per SSH-Verbindung) folgendes ein:

pi@raspberrypi ~ $ sudo apt-get install avahi-daemon cups cups-pdf python-cups

nachdem die Pakete installiert sind müssen wir nun per Editor „nano“ einige Änderungen in der Konfigurationsdatei vornehmen:

pi@raspberrypi ~ $ sudo nano /etc/cups/cupsd.conf

die nun geöffnete Datei um die grün markierten Einträge ergänzen:

<Location />
# Allow shared printing…
Order allow,deny
Allow @LOCAL

</Location>

<Location /admin>
Order allow,deny

Allow @Local

</Location>

<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny

Allow @Local

</Location>

Abspeichern könnt ihr mit Strg/Ctrl+o, oder speichern und schließen mit Strg/Ctrl+x  

Nun muss CUPS neu gestartet werden damit die Änderungen übernommen werden:

pi@raspberrypi ~ $ sudo service cups restart

Der Benutzer pi muss nun noch der Gruppe lpadmin hinzugefügt werden:

pi@raspberrypi ~ $ sudo adduser pi lpadmin

Füge Benutzer „pi“ der Gruppe „lpadmin“ hinzu …
Benutzer pi wird zur Gruppe lpadmin hinzugefügt.

 Nun sollte Euer Server unter den Browser unter https://[ip-Adresse des Servers]:631 über Port 631 erreichbar sein. Sollte das noch nicht der Fall sein könnt Ihr in der cupsd.conf folgenden Eintrag ergänzen…. Listen 192.168.178.99:631 (Diese Adresse ist nur als Beispiel zu verstehen und sollte die IP des Raspberry PI sein. Eine statische IP ist  zu empfehlen) Der Eintrag ist ganz oben im Text (bei mir Zeile 3-6) direkt unter

#Allow remote Access
Port 631

vorzunehmen.

Jetzt solltet Ihr Euer Cups Webinterface problemlos über den Browser erreichen können.   Sind wir nun einmal im CUPS Webinterface angelangt, sie das Ganze folgendermaßen aus:  

Cups-interfaceCups-interface

Der nächste Schritt ist nun in der Registerkarte „Verwaltung“ ein Häkchen bei „Freigabe von Druckern aktivieren welche mit diesem System verbunden sind“ setzten

Cups-Verwaltung

Ebenfalls auf der Registerkarte Verwaltung findet Ihr links oben den Button „Drucker hinzufügen“, draufklicken und in der Anmeldeaufforderung mit Benutzer Pi und dem Passwort für Pi anmelden. Standardmäßig verwendet der Raspberry das Passwort „raspberry“, das sollte aber aus Sicherheitsgründen geändert werden.

Wenn da bis hierher alles geklappt hat, solltet Ihr nun die Drucker finden die entweder im Netzwerk oder per USB mit dem Raspi verbunden sind. Die Drucker sollten selbstverständlich vorher eingeschaltet sein.

Cups-Drucker-hinzufügen

Den gewünschten Drucker auswählen und auf weiter klicken. Anschließend sind noch ein paar Angaben zum Namen und Standort des Druckers zu machen, sollte aber im Großen und Ganzen selbsterklärend sein. Wichtig ist beim nächsten Schritt dass Ihr das Häkchen bei „Drucker freigeben“ setzt.

Die Standardeinstellungen können direkt übernommen werden. Der Drucker sollte nun fertig eingerichtet sein. Es empfiehlt sich, eine Testseite zu drucken.

Unser Druckserver ist nun fertig eingerichtet, es fehlt allerdings noch Airplay. Hierfür gibt es ein Python Script das diesen Service generiert. Im Repository des Raspi ist dergleichen nicht enthalten.

Wir legen nun ein Verzeichnis /opt/AirPrint an, und laden das benötigte Script direkt in den neu erstellten Ordner:

pi@raspberrypi / $ sudo mkdir /opt/AirPrint
pi@raspberrypi / $ cd /opt/AirPrint
pi@raspberrypi /opt/AirPrint $ sudo wget -O airprint-generate.py –no-check-certificate https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py
pi@raspberrypi /opt/AirPrint $ sudo chmod +x airprint-generate.py
pi@raspberrypi /opt/AirPrint $ sudo ./airprint-generate.py -d /etc/avahi/services
pi@raspberrypi /opt/AirPrint $

Wird in der Konsole keine Meldung ausgegeben sollte alles geklappt haben. Nun müssen wir noch die beiden Dienste avahi-deamon und CUPS neu starten:

pi@raspberrypi /opt/AirPrint $ sudo service cups restart
[ ok ] Restarting Common Unix Printing System: cupsd.
pi@raspberrypi /opt/AirPrint $ sudo service avahi-daemon restart
[ ok ] Restarting Avahi mDNS/DNS-SD Daemon: avahi-daemon.

Zum Schluss müssen noch zwei Dateien erzeugt werden:

pi@raspberrypi / $ sudo nano /usr/share/cups/mime/airprint.types

folgenden Text eingeben und mit Strg/Ctrl x speichern und schließen:

#
# „$Id: $“
#
# AirPrint type
image/urf urf string(0,UNIRAST<00>)
#
# End of „$Id: $“.
#

und die zweite Datei:

pi@raspberrypi / $ sudo nano /usr/share/cups/mime/airprint.convs

wieder Text eingeben und speichern…

#
# „$Id: $“
#
# AirPrint
# Updated list with minimal set 25 Sept
image/urf application/pdf 100 pdftoraster
#
# End of „$Id: $“.
#

Die beiden Dienste ahavi-deamin und CUPS neu starten….

pi@raspberrypi /opt/AirPrint $ sudo ./airprint-generate.py -d /etc/avahi/services
pi@raspberrypi /opt/AirPrint $ sudo service cups restart
[ ok ] Restarting Common Unix Printing System: cupsd.
pi@raspberrypi /opt/AirPrint $ sudo service avahi-daemon restart
[ ok ] Restarting Avahi mDNS/DNS-SD Daemon: avahi-daemon.

Fertig! Jetzt solltet Ihr Euren Drucker auf dem iOS-Gerät finden und drucken können.

 

Hallo, ich bin Mike und ich hoffe der Artikel hat Dir gefallen. Über ein Feedback würde ich mich sehr freuen.

Mike – who has written posts on Netzerei.


Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.