Raspberry PI als AirPrint Server

Eigentlich bin ich recht zufrieden mit meinem Drucker, sei es von der Qualität oder auch von der Ausstattung. Es handelt sich um ein sogenanntes Multifunktionsgerät, das sogar über eine integrierte Netzwerkkarte verfügt, so dass bequem über das LAN darauf zugreifen. Selbst auf de Scanner kann über ein Webinterface zugegriffen werden. Aber dennoch merkt man, dass er in die Jahre gekommen ist; AirPrint unterstützt er nicht.

Aber das lässt sich dank Raspberry PI ändern.

Zuerst wie immer wenn man etwas neues installiert sudo apt-get update und sudo apt-get upgrade ausführen, damit alles auf dem neuesten Stand ist.

Danach müssen ein paar Pakete installiert werden:

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

CUPS lauscht standardmäßig auf Port 631, allerdings nur auf dem Localhost. Dies soll er aber LAN übergreifend tun, dazu muss Zeile 20 wie folgt geändert werden:

Dann die Markierten Zeilen einfügen:

Damit die Änderungen übernommen werden, muss CUPS neugestartet werden:

Um Änderungen an CUPS vornehmen zu können, muss nun der Benutzer pi, oder irgend ein anderer Nutzer, in die Gruppe lpadmin aufgenommen werden (sudo funktioniert hier nicht):

Danach erfolgt der Zugriff auf das Web-Interface von CUPS, durch Eingabe von https://[PI-IP-Adress]:631:

Die Option „Freigeben von Druckern welche mit diesem System verbunden sind“ aktivieren und „Einstellungen Ändern“ drücken.

Es erscheint eine Anmeldeaufforderung, an der man sich mit pi und dem Passwort für pi (sofern noch nicht geändert raspberry) anmeldet. Der CUPS-Server wird neu gestartet.

Jetzt gibt es zwei Möglichkeiten:

  • Der Drucker wird über den USB-Port direkt an den Raspberry PI angeschlossen. Dann sollte er nun angeschlossen und angeschaltet sein.
  • Der Drucker ist bereits im Netzwerk, über seine integrierte Netzwerkschnittstelle, innerhalb des LANs verfügbar (keine Druckerfreigabe am PC). Er sollt auch eingeschaltet sein.

Welche Möglichkeit gewählt wurde ist für das weitere vorgehen egal, es muss aber eine erfüllt sein. Auf „Verfügbare Drucker auflisten“ klicken und „diesen Drucker hinzufügen“ wählen.

In meinem Fall ist das ein „HP Photosmart C5180 All-in-One“ der über seine Netzwerkschnittstelle im LAN vorhanden ist. Nun entsprechend die Beschreibung und den Ort anpasse, „Diesen Drucker freigeben“ aktivieren und weiter drücken.

Danach muss der Drucker Hersteller und das Modell angegeben werden, da dieser nun für jeden Hersteller und Modell verschieden ist, verzichte ich auf ein Beispiel. Die Standardeinstellungen können eigentlich einfach übernommen werden. Der Drucker ist nun eingerichtet, es empfiehlt sich noch eine Testseite zu drucken.

Nun zum Eigentlichen AirPrint.

Update: AirPrint ist mittlerweile in CUPS integriert und ab hier funktioniert es auch schon!

Es gibt hierfür nichts in der Regulären Raspbian Repository, allerdings gibt es in GitHub ein Python Skript das diesen Service erzeugt. Da es sich hierbei nicht um ein Teil des Regulären Raspbian handelt lege ich es in das Verzeichnis „/opt/AirPrint“ (kann sein, dass es zu einem späteren Zeitpunkt noch benötigt wird). Der Download und die Installation wird wie folgt durchgeführt:

Wurde nichts in der Konsole ausgegeben (wie oben beschreiben), hat alles funktioniert und der Drucker steht zur Verfügung, sobald avahi-daemon und cups neu gestartet wurden.

Ist die Konsolenausgabe jedoch wie folgt:

Müssen noch zwei Dateien erzeugt und das Python Script erneut ausgeführt werden. Die erste Datei erzeugen:

Und den folgenden Inhalt eintragen:

Danach die zweite Datei erzeugen:

Und diesen Inhalt hinzufügen:

Das Script erneut ausführen und avahi-daemon und cups neu starten:

Nun sollte der Drucker verfügbar sein.

Comments

  • Moin, also hat alles geklappt und vom Win8 drucken klappt auch, allerdings findet mein iPad (ios8) , mein iPhone 6(ios8.1) sowie ein iphone 5c(ios7.1) keine AirPrint drucker. Weiß jemand wo das Problem liegen könnte? Muss ich es irgendwo in Cups aktivieren oder auf was bestimmtes bei dem einrichten des Druckers beachten?

     

    Mit freundlichen Grüßen

    bladoug

    Bladoug15. Februar 2015
  • Hallo Matten,

    Bei meinem Canon Drucker kann ich in den Druckeroptionen einstellen, dass „aus“ ist und sich im Bedarf wenn ich drucke, automatisch einschaltet. Bei längerer Inaktivität schaltet er sich wieder aus.

    Testnutzer28. Februar 2015
  • Ein User hier hat das Problem, dass seine Druckaufträge eine Stunde benötigen. Ganz so schlimm ist es bei mir nicht. Meine Ausdrucke dauern jedoch immernoch einige Minuten und auch zwischen einzelnen Seiten liegt eine enorm lange Zeit. Das ist auch bei kleinen Dateien mit wenigen KB Größe das gleiche Problem.

    Drucker ist ein clx6210 samsung. Er wurde in Cups 3mal angezeigt und nur einer davon hat funktioniert sowohl Testseite als auch vom iphone.

    Kann mir jemand bitte helfen?

    Michael20. März 2015
  • Auch bei mir braucht das Spooling in CUPS für eine Seite (112KB) ca. 10 Minuten.

    Wenn da jemand einen Tipp hat, ist der gerne willkommen.

    Jan18. April 2015
  • Vielen Dank für die tollen Tutorials!!

    Ich war bei Punkt, den Port in CUPS zu ändern etwas verwirrt. Vielleicht kann man noch ergänzen, dass man in /etc/cups/cupsd.conf die Zeilen 17 und 18 auskommentiert. Sieht dann so aus:

    # Only listen for connections from the local machine.
    #Listen localhost:631
    #Listen /var/run/cups/cups.sock
    Port 631

    Bzw. ist das so notwendig? Oder kann man die Zeile 20 einfach hinzufügen?

     

    europhon29. April 2015
  • Hallo!

    Und herzlichen Dank für das Tutorial zu AirPrint. Habe es auf einem virtuellen Server mit einer Turnkey Appliance (Debian 7.8) erfolgreich umgesetzt.

    Gruß

    atarijunkie

    atarijunkie12. Juni 2015
  • Hallo

    Wollte meinen Brother MFC-490cw installieren aber der ist nicht in der Liste !

    Hbe nicht viel ahnung von Linux wollte also da ich keinen PPD Treiber für diesen Drucker Finde einen I386 Treiber draufmachen !

    Geht natürlich nicht da Arm Struktur (wurde mir erklärt) !

    Was habe ich für möglichkeiten ?

    System ist ein Whezzy !

     

    Gruß Dirk

    Rolli2. Januar 2016
  • Hi und danke für die Anleitung. Leider habe ich mir wohl die config von Cups zerschossen. Könntest du mir die per Mail senden oder hier zum Download anbieten? Das wäre super!

    philip9. Januar 2016
  • Hallo,

    Danke für die Anleitung. Leider geht bei mir AirPrint von meinem Ipad und iphone nicht (iOs 9). Ich hab einen Canon MX320-Drucker und würde gerne von meinem Ipad ebenfalls ausdrucken können.

    Vom Windows funktioniert das drucken ohne Probleme aber leider finde ich am Ipad leider den Drucker nicht. Bitte um hilfe. Danke schonmal.

    Lukas11. Januar 2016
  • Also bei mir funktionierte es unter iOS nachdem ich die im folgenden Blog angegebenen Schritte auf der Kommandozeile des RasPi durchgeführt hatte:

    http://blog.wenzlaff.de/?p=2373

    (siehe Python Script)

    Schöne Grüße und viel Erfolg!

     

    Joey19. Februar 2016
  • Vielen Dank für die gelungene Anleitung. Apple AirPrint funktioniert bei mir auch sehr gut mit dem CUPS release 1.7.5 für Raspbian Jessie (Kernel 4.1).

    Ich fände es noch erwähnenswert, dass im Schritt „Drucker hinzufügen“ eine PPD-Datei (PostScript Printer Description) genutzt werden kann. Dies erlaubt es sehr schnell und einfach die Einbindung in CUPS zu realisieren. The Linux Foundation bietet hierzu eine eigene Datenbank, siehe auch: http://www.openprinting.org/printers

    Natürlich sind nicht alle Exoten verfügbar – die regulär verbreiteten Drucker sind jedoch alle gelistet.

     

    Viele Grüße

    Tobias Topyla

    Tobias Topyla10. Mai 2016

Schreibe einen Kommentar

captcha Gib den CAPTCHA Code ein!