• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[Mini-Serie] Raspberry PI und Apple #1: AirPrint für alte Drucker

Michael Reimann

Geschäftsführung
AT Administration
Registriert
18.03.09
Beiträge
8.787
IMG_0236-Serie.jpg Ich habe es ja im Sommer versprochen: Ich möchte eine kleine Serie starten, in der ich mich mit dem Raspberry PI beschäftige. Der kleine Einplatinen-Computer, der ursprünglich für Kids entwickelt wurde, kann auch im Zusammenspiel mit OS X nützliche Dienste leisten, wie zum Beispiel zum Start dieser kleinen Serie einen alten Drucker (vorzugsweise von HP) Airprint fähig machen. Ein bisschen Vorwissen solltet ihr aber mitbringen.[PRBREAK][/PRBREAK]

Anleitungen, wie man einen Raspberry PI richtig einrichtet, auch unter OS X, gibt es im Netz zuhauf. Nicht zuletzt auch auf der Seite www.raspberrypi.org. Ich gehe also in dieser kleinen Praxis-Serie davon aus, dass es sich um einen Raspberry PI Model B mit 512 MB Ram handelt, auf dem nach Anleitung Debian Wheezy (7.1) installiert wurde. Dieser sollte auch bereits im Netz verfügbar sein und im Idealfall eine feste IP bekommen haben.

Und warum Debian? Es gibt viele Linux-Distributionen und vielleicht hat der eine oder andere seine Lieblings-Version. Debian wurde aber fast komplett für den Raspberry PI angepasst und viele der Standard-Debian-Pakete sind damit auch für die kleine Maschine verfügbar.

Ich arbeite auf dem Raspberry PI gerne mit der Eingabeaufforderung, denn damit geht vieles schneller und man kann präziser die nötigen Befehle beschreiben. Wenn der PI im Netz hängt kann man ihn dann sogar Headless, also ohne direkt angeschlossenen Bildschirm und Tastatur betreiben. Für OS X-Anwender mag das zunächst befremdlich sein, aber man gewöhnt sich sehr schnell daran und vielleicht verlieren so einige der geneigten Leser auch die Zurückhaltung vor dem Mac-Terminal.

Beginnen wir also mit dem kleinen Tutorial, das am Ende dazu führen soll, das ein alter USB- oder Netzwerkdrucker Druckaufträge vom iPhone, iPod-Touch oder iPad entgegennehmen kann. Weil der kleine, aber vollwertige, Linux-Computer so wenig Strom verbraucht (im normalen Betrieb so ca. 4-5 Watt), kann er auch immer aktiv sein.

Voraussetzungen:

  • Eingerichtetes Netzwerk (inkl. WLAN für die iOS-Geräte)
  • Eingerichteter Raspberry PI Model B mit Debian Wheezy (Bildschirm und Tastatur angeschlossen oder per ssh erreichbar, ein freier USB-Port für den Drucker)
  • Raspberry PI mit fester IP im Netzwerk eingebunden (WLAN oder LAN, je nach Bedarf)
  • Drucker mit USB-, WLAN- oder Netzwerk-Port. (Wenn im Netzwerk, dann mit fester IP)
  • Keine Angst im Umgang mit der Eingabeaufforderung von Linux
  • Kenntnis im Umgang mit dem Editor nano (dazu gibt es im Netz sehr viele Anleitungen)
  • Grundkenntnisse im Umgang mit Linux

Für alle diese Anforderungen gibt es Anleitungen im Netz.

Als erstes sollte man zunächst das Linux auf dem Raspberry PI aktualisieren:

Paketlisten aktualisieren
Code:
sudo apt-get update

Evtl. Aktualisierungen installieren
Code:
sudo apt-get upgrade

Dann die benötigten Pakete installieren
Code:
sudo apt-get install avahi-daemon cups cups-pdf python-cups

Cups ist ein, unter Linux sehr verbreitetes Drucksystem, dass außerdem von Apple als Opensource weiterentwickelt wird. Avahi ist die Bonjour-Variante unter Linux, sie macht Netzwerk-Dienste für andere Geräte sichtbar.

Nachdem Cups installiert wurde, müssen ein paar Änderungen an der Konfiguration vorgenommen werden. Die Konfigurationsdatei von Cups bearbeitet man am Besten mit dem Editor nano.
Code:
sudo nano /etc/cups/cupsd.conf

Damit Cups nicht nur vom Raspberry PI selber, sondern von allen Geräten im Netzwerk Druckaufträge entgegennehmen kann, muss folgender Eintrag geändert werden (dort steht localhost):
Code:
# Only listen for connections from the local machine.
Port 631
Jetzt arbeitet der Cups-Server auf Port 631 im gesamten lokalen Netzwerk.

Folgende Zeilen müssen in der Datei ergänzt werden:
Code:
# 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>

Danach sollte der Cups-Dienst neu gestartet werden:
Code:
sudo service cups restart

Solltet ihr euren Raspberry PI standardmäßig eingerichtet haben, meldet ihr euch mit dem Benutzer pi an und arbeitet mit diesem. Damit ihr künftig Änderungen an der Konfiguration vornehmen könnt, muss der Benutzer pi (oder der von euch angelegte Standard-Benutzer) in die Benutzergruppe lpadmin aufgenommen werden. Das geht so:

Code:
sudo adduser pi lpadmin

Ab diesem Moment könnt ihr über einen Browser auf das Drucksystem zugreifen. Einfach die URL https://ip-des-raspberryPI:631 (Es kann sein, dass zunächst noch eine Bestätigung für das Zertifikat eingegeben werden muss.) Solltet ihr eurem Raspberry PI einen Netzwerknamen vergeben haben, könnt ihr ihn auch über diesen erreichen. Sicherer ist aber immer die feste IP. Wie man einem Raspberry PI eine feste IP vergibt, findet ihr im Netz. Immer wenn der Browser euch nach einem Benutzer und einem Passwort fragen sollte, gebt ihr euren Standard-Benutzer und sein Passwort ein. (Defaultwerte sind: Benutzername: pi, Passwort: raspberry)

Euer Drucker sollte nun entweder im Netz aktiviert sein, oder per USB direkt an einen der Ports des Raspberry PI angeschlossen werden. Idealerweise macht ihr das gleich zu Beginn. In einem späteren Teil der Serie zeige ich dann, wie man einen einfachen LAN- oder USB-Drucker mit Hilfe eines Raspberry PIs zu einem WLAN-Drucker macht.

Jetzt geht es daran, den Drucker in Cups verfügbar zu machen

Bildschirmfoto 2013-12-15 um 11.16.04.jpg
Dies ist die Startseite von Cups. Hier den Bereich "Verwaltung" auswählen.

Bildschirmfoto 2013-12-15 um 11.16.18.jpg
Die Haken bei "Freigeben von Druckern welche mit diesem System verbunden sind" und "Erlaube entfernte Verwaltung" setzen und auf Einstellungen ändern klicken. Dann oben auf "Drucker hinzufügen" klicken und den Drucker aus der Liste auf der nächsten Seite auswählen.

Bildschirmfoto 2013-12-15 um 11.40.40.jpg
Mein HP-Drucker wird hier zweimal angezeigt, ich wähle einfach einen aus.
Bildschirmfoto 2013-12-18 um 10.28.11.jpg
Bildschirmfoto 2013-12-18 um 10.28.26.jpg
Man kann jetzt noch die Druckerbeschreibung anpassen und dann auf "Weiter".

Bildschirmfoto 2013-12-18 um 14.09.51.jpg

Handelt es sich – wie in diesem Beispiel – um einen HP-Drucker ist die Einrichtung denkbar einfach und es sollte nun eine Testseite gedruckt werden können. Für andere Druckermodelle ist evtl. ein anderes Vorgehen nötig und es müssen evtl. Treiber gefunden werden.

Jetzt zu der eigentlichen Airprint-Funktion:

Bei Github gibt es ein Script, dass den eigentlichen Service erzeugt, also bitte folgendes in der Eingabeaufforderung eingeben:

Code:
sudo mkdir /opt/AirPrint
Code:
cd /opt/AirPrint
Code:
sudo wget -O airprint-generate.py --no-check-certificate [URL]https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py[/URL]
Code:
sudo chmod +x airprint-generate.py
Code:
sudo ./airprint-generate.py -d /etc/avahi/services

Sollte danach keine Meldung ausgegeben werden, ist der Airprint-Drucker nach einem Neustart des avahi und cups Service verfügbar.

Code:
sudo service cups restart
Code:
sudo service avahi-daemon restart

Danach kann frisch und frei vom iPad und iPhone gedruckt werden.

IMG_0245.jpg
Mit einem Zeitaufwand von ca. 1 Stunde kann man auf diese Weise einem alten Netzwerkdrucker AirPrint beibringen. Natürlich geht das Ganze auch mit USB-Druckern. Diese müssen dann direkt am Raspberry PI angeschlossen sein. Generell kann man sagen, wenn ein Drucker von Cups erkannt wird, dann kann er höchstwahrscheinlich auch mit AirPrint ausgestattet werden.

Nützliche Tools für den Umgang mit dem Raspberry PI:
SDFormatter - SD-Karten unter OS X richtig formatieren
Noobs (New Out Of The Box) - Einfache Auswahl des OS und Installation des PI

Dieser Artikel basiert auf Infos und Skripten von diesen Webseiten. Ich übernehme keine Haftung für Vollständigkeit und Funktion der oben beschriebenen Prozedur. Insbesondere bei "exotischen" Druckern, kann es zu Problemen kommen, wenn diese nicht von Cups unterstützt werden. Dennoch hat es auf diese Weise bei mir funktioniert.
 
Zuletzt bearbeitet von einem Moderator:
  • Like
Reaktionen: Pep

Pep

Becks Apfel (Emstaler Champagner)
Registriert
12.10.13
Beiträge
335
Danke, ich bin auch immer wieder beeindruckt, was der Raspberry so alles leisten kann. Ich hoffe, es bleibt nicht bei dieser ersten Anleitung! :)
 

Mitglied 25554

Gast
Ich freu mich auch schon auf viele neue Ideen :) Mein Pi läuft derzeit als Mediaplayer, aber da geht doch sicher noch mehr/Anderes
 

wMAN

Jonathan
Registriert
26.02.13
Beiträge
83
Ich freu mich auch schon auf viele neue Ideen :) Mein Pi läuft derzeit als Mediaplayer, aber da geht doch sicher noch mehr/Anderes
Meiner ebenfalls mit OpenELEC (XBMC).
Kann ich nur empfehlen. Läuft sehr flüssig und stabil (24/7).
 

bml

Prinzenapfel
Registriert
26.04.06
Beiträge
552
Sehr schöner Artikel, vielen Dank!

Meine Himbeere befeuert hier mit RaspyFi und einem ODAC die Stereoanlage.
 

ErichMaier

Gloster
Registriert
21.04.07
Beiträge
61
Hallo,

wenn ihr ein IOS7 Gerät benutzt braucht ihr kein Airprint mehr. Die einfache Freigabe in CUPS genügt. Der Druck gelingt!

Schön auch zu sehen in Michael Reimanns Screenshot, wo auf einmal 2 Freigaben auf einem IOS Gerät sichtbar sind.
 

skappley

Aargauer Weinapfel
Registriert
09.06.07
Beiträge
745
Super Serie - danke! Ich hoffe auch ihr bringt mehr Beiträge zu diesem Thema, finde das sehr spannend, interessant und nützlich.
 

Turkey1976

Raisin Rouge
Registriert
03.07.07
Beiträge
1.173
Noch mehr Raspberry PI Ideen wären gut: TimeCapsule selbstgebaut etc.
 

MikeZ

Freiherr von Berlepsch
Registriert
19.01.05
Beiträge
1.116
Toller Beitrag, vielen Dank!
Mein Raspberry Pi ersetzt mittlerweile alle Cloud-Services außer Emails. Caldav, Carddav, Mozilla Sync Server für Bookmarks, Tiny Tiny RSS für Feeds, Webdav für OmniFocus usw...
Aber ich bin immer auf der Suche nach neuen Ideen und bin deshalb schon sehr gespannt auf die nächsten Artikel aus der Reihe!
 

AppleWorm²

Freiherr von Berlepsch
Registriert
08.08.07
Beiträge
1.120
Hallo,
Schöne Anleitung ich betreibe mit meinem kleinen Raspberry Pi im verbund mit einem zweiten meine eigene Cloud (Owncloud) und einem NAS. Sehr schnell und ich weiß wo die Daten liegen :D
 

MaxTrax

Himbeerapfel von Holowaus
Registriert
03.10.08
Beiträge
1.263
Hallo,

wenn ihr ein IOS7 Gerät benutzt braucht ihr kein Airprint mehr. Die einfache Freigabe in CUPS genügt. Der Druck gelingt!

Schön auch zu sehen in Michael Reimanns Screenshot, wo auf einmal 2 Freigaben auf einem IOS Gerät sichtbar sind.

Was ist CUPS und wie geht das?
 

liquid-me

Braeburn
Registriert
17.03.08
Beiträge
46
Sehr schöner Zufall der Start dieser Serie - ich freu mich: morgen erwarte ich nämlich meinen Pi mit der Post :)
Viel Zeit hatte ich noch nicht mich vorzubereiten, aber mein Plan ist Owncloud und AirPlay zu installieren. Geht das zusammen? Also zum einen bezieht sich meine Frage auf die Rechenleistung und zum anderen möchte ich wissen, ob ich -wenn ich mehrere Dienste gleichzeitig laufen lassen möchte- einfach ein Tutorial nach dem anderen über die Konsole "einpflegen" muss…!?
 

Michael Reimann

Geschäftsführung
AT Administration
Registriert
18.03.09
Beiträge
8.787
Also OwnCloud verbraucht schon viele Ressourcen des Kleinen (je nach Auslastung natürlich). Man kann den zwar hochtakten, aber das ist mit Vorsicht zu genießen, denn wenn Du den Takt zu hoch setzt, kann das System instabil werden. Für den Fall des höheren Taktes empfehle ich einen kleinen Kühlkörper. Die Dinger gibt's für kleines Geld bei Amazon.

Du kannst aber in der Tat mehrere Dinge auf dem Gerät laufen lassen. Und im Prinzip geht es tatsächlich so, dass Du ein Tutorial nach dem anderen abarbeitest. Da der PI ja von der SD-Karte bootet, kannst Du - wie bei einer Spielekonsole auch - mehrere SD-Karten haben, jede mit einem unterschiedlichen System. So kann man Dinge auf der einen Karte testen, bevor man sie auf der produktiven Karte installiert.

Ich empfehle immer, für jede dedizierte Aufgabe einen eigenen PI zu verwenden. Bei dem geringen Stromverbrauch kann man ruhig mehrere betreiben. Hier läuft zum Beispiel einer für AirPrint, einer für VPN und einer für Owncloud. Zusammen verbrauchen die weniger Strom, als ein PC der alles auf einmal erledigen könnte. Außerdem verhindert man so, dass bei einem Ausfall eines PIs gleich alle Dienste weg brechen. Und die einzelnen Systeme bleiben übersichtlich und klein.
 

ErichMaier

Gloster
Registriert
21.04.07
Beiträge
61
Was ist CUPS und wie geht das?

Das ist das Common Unix Print System. Aber ich vermute deine Frage bezieht sich eher auf die Frage was ich damit meinte.

Damit meine ich das HowTo von oben, bis zu dem Part, wo die Airprint-Installation beginnt.
"Jetzt zu der eigentlichen Airprint-Funktion:" Diese Installation braucht man mit IOS7 eigentlich nicht mehr.
 

knikka

Carmeliter-Renette
Registriert
19.10.09
Beiträge
3.302
Sehr schön! Mehr davon. Und gerne auch mal was "ausgefallenes" :)
 

Der_Paul

Erdapfel
Registriert
02.09.10
Beiträge
4
Ein Königreich für so eine geniale Anleitung um aus dem Raspberry Pi einen Internetfähigen Bilderrahmen zu machen.