Ich hatte mich im November schon mal mit dem Thema AirPrint auf Linux/Ubuntu-Boxen erfolglos beschäftigt. Damals war ich – wenn auch noch auf theoretischer Ebene – daran gescheitert, dass der Linux-Treiber für meinen Canon PIXMA MX870 den Typ application/pdf nicht unterstützt. Das sei nach dem Blogeintrag von Ryan Finnie jedoch Voraussetzung für die Funktionsfähigkeit seiner CUPS-Lösung.
In der neuen c’t (Heft 2/2011) findet sich ein Artikel über die Aktivierung von AirPrint unter OS X, Linux und Windows. Dort ist zu lesen:
[…] aber aller Erfahrungen zufolge senden aktuelle Apps nur PDF-Dateien, und diese können CUPS-Printserver selbständig zu Druckdaten wandeln.
Von dieser Aussage ermutigt, habe ich mich – diesmal nicht nur theoretisch – ans Werk gemacht. Das Erstellen der notwendigen Servicedefinitionen für Avahi ist durch ein Scripts von tjfontaine ein Kinderspiel geworden.
Zunächst waren die Versuche frustrierend erfolglos. Nachdem der Test mit dem zusätzlich testweise konfigurierten CUPS-PDF Printer auf Anhieb erfolgreich waren, dachte ich schon, dass es Probleme mit dem Canon-Treiber gibt.
Wie so oft, lief es dann plötzlich, ohne dass ich bei den weiteren Versuche etwas verändert habe.
Ich habe jetzt AirPrint über eine Linux/Ubuntu-Box. Momentan läuft es über meinen zweiten Desktop-Rechner mit Ubuntu 10.4. Mittelfristig soll die Bereitstellung über eine Xen-DomU erfolgen. Dort läuft noch ein älteres CUPS, sodass ich die Kompatibilität noch prüfen muss.
Ein Problem bleibt: Die iOS-Geräte sind manchmal nicht in der Lage, die über Bonjour/Avahi annoncierten Druckdienste zu sehen. Die Services sind zwar unter OS X und Ubuntu (hier mit avahi-discover) sichtbar, die iOS-Geräte sehen sie aber schlichtweg nicht.
Update 19.03.2011:
In der c’t (7/2011, Seite 12) schreibt ein Leser, dass auch bei ihm die freigegebene Drucker nicht immer auf dem iPhone sichtbar sind. Er geht von einem iOS-seitigem Problem aus. Ein Unterbrechen und Neuaufbau der WLAN-Verbindung löst bei ihm das Problem. Nach seiner Ansicht „vergisst“ das iPhone die vorhandenen Bonjour-Services und liest sie beim Wiederverbinden neu ein.
[Dieses Posting habe ich ursprünglich am 31. Dezember 2010 auf meinem tumblr veröffentlich und am 09. März 2011 hierher übernommen.]