Mit dem iPhone im Linux Netzwerk drucken

Tjfontaine hat in seinem Blog schon 2010 ein Python Skript vorgestellt [W], dass aus einer vorhandenen Cups [W] Konfiguration die nötigen Informationen ausliest und daraus für jeden im Linux Netzwerk freigegebenen Cups-Drucker eine AirPrint [W] Konfigurationsdatei für den Avahi [W] daemon erzeugt.
Mit diesen Dateien kann jeder im Netzwek freigegebene Cups-Drucker über das lokale WLAN via AirPrint verfügbar gemacht werden.

Erstaunlicherweise schwand das Interesse an sein Blog Eintrag aber recht schnell, in meinen Augen wurde hier eine echte Perle übersehen.

Die Installation auf einer openSUSE 12.1 mit einem als Netzwerkdrucker angeschlossenen HP Deskjet 6940 hat problemlos funktioniert.
Mein iPhone 4 mit iOS 5.0.1 [W] ohne Jailbreak [W] erkennt den den AirPrint-Drucker und spricht ihn erfolgreich an.



Mini Howto:

System-Voraussetzungen:
installierter Python-Interpreter
laufender Avahi deamon
unter Cups eingerichteter und im Netzwerk freigegebener Drucker

Am schnellsten läßt sich AirPrint von der Konsole aus installieren.

Zuerst an der Konsole das Zip-Archiv von der Website herunterladen.

wget https://github.com/tjfontaine/airprint-generate/zipball/master

Das Archiv entpacken.

unzip master

In das neu erstellte Verzeichnis wechseln.

cd tjfontaine-airprint-generate-9d329cf

Den Inhalt des Verzeichnises anzeigen.

ls -l

Das Skript ausführen.

./airprint-generate.py

Den Inhalt des Verzeichnises anzeigen.

ls -l

Wenn bis jetzt alles geklappt hat sollte es so aussehen.

Die neu erstellte AirPrint-hp.service Datei anzeigen.

cat AirPrint-hp.service

Root Rechte bekommen.

su

Die AirPrint-hp.service Datei nach /etc/avahi/services kopieren.

cp AirPrint-hp.service /etc/avahi/services

Nun den Avahi daemon neu starten.

/etc/init.d/avahi-daemon restart

Jetzt muss nur noch der Cups Server neu gestartet werden.

/etc/init.d/cups restart

Die Konsolenausgabe davon sah so aus:

In /var/log/messages findet man danach:

avahi-daemon[2953]: Loading service file /etc/avahi/services/AirPrint-hp.service.
[...]
avahi-daemon[2953]: Service "AirPrint hp @ tuxomat" (/etc/avahi/services/AirPrint-hp.service) successfully established.

Der Drucker ist jetzt im WLAN als "AirPrint hp" für das iPhone verfügbar.



Druckeroptionen

Nun auf dem iPhone die Druckeroptionen aufrufen um den Drucker einzurichten.



Drucker auswählen

Den eben konfigurierten "AirPrint hp" Drucker auswählen.



Drucken

Und sich darüber freuen, dass bedrucktes Papier aus dem Drucker kommt.



Mein Fazit

Pro:
Auf einer frisch aufgesetzten openSUSE 12.1 war mein alter Drucker problemlos in ein paar Minuten um die AirPrint Funktion erweitert.
Es ist kostenlos, nutzt vorhandene Resourcen, hat einen hohen Nutzwert und macht es das iPhone zu Hause deutlich wertiger.
Contra:
Ein ständig laufender Cups-Server in einem unixoiden Netzwerk ist notwendig um einen echten AirPrint-Drucker zu ersetzen.


Weitere Informationen