Stampare da iPad/iPhone su Gnu/Linux con AirPrint
Ok,
visto che nel nuovo IOS 4.2 si può stampare via AirPrint, perché non sfruttare la condivisione delle stampanti di CUPS per stampare da iPhone/iPad su una periferica gestita da GNU/Linux?
Lo spunto, con qualche aggiunta personalizzata, lo ha dato questo articolo in cui l’autore ha spippolato con Wireshark per esaminare il dialogo in rete di AirPrint, per scoprire che il tutto viaggia su protocollo IPP modificato.
IPP???? Mmmmm….quindi…CUPS! E Avahi, naturalmente, per annunciare in rete il servizio di stampa.
Quindi…
1. Installare CUPS, configurare la stampante connessa al computer, collegarsi su localhost:631 e da tab di amministrazione condividere la stampante, come si vede nella immagine sottostante.
Quindi verificare che la stampante…stampi correttamente da computer.
Ora, installate avahi-daemon e quindi scaricate lo script python che trovate qui e che ho caricato in copia qui e lanciatelo da console:
root@SALOTTO:/home/zarrelli/Scaricati/tjfontaine-airprint-generate-af37647# python airprint-generate.py -v BRFAX Losing support for: text/css,image/x-photocd,image/x-bitmap,application/vnd.hp-hpgl,application/vnd.cups-raw Created: AirPrint-BRFAX.service Hewlett-Packard-HP-LaserJet-6P Losing support for: text/css,image/x-photocd,image/x-bitmap,application/vnd.hp-hpgl,application/vnd.cups-raw,application/vnd.cups-postscript Created: AirPrint-Hewlett-Packard-HP-LaserJet-6P.service Brother-MFC-210C Losing support for: text/css,image/x-photocd,image/x-bitmap,application/vnd.hp-hpgl,application/vnd.cups-raw Created: AirPrint-Brother-MFC-210C.service root@SALOTTO:/home/zarrelli/Scaricati/tjfontaine-airprint-generate-af37647# root@SALOTTO:/home/zarrelli/Scaricati/tjfontaine-airprint-generate-af37647# python airprint-generate.py -vBRFAX Losing support for: text/css,image/x-photocd,image/x-bitmap,application/vnd.hp-hpgl,application/vnd.cups-rawCreated: AirPrint-BRFAX.serviceHewlett-Packard-HP-LaserJet-6P Losing support for: text/css,image/x-photocd,image/x-bitmap,application/vnd.hp-hpgl,application/vnd.cups-raw,application/vnd.cups-postscriptCreated: AirPrint-Hewlett-Packard-HP-LaserJet-6P.serviceBrother-MFC-210C Losing support for: text/css,image/x-photocd,image/x-bitmap,application/vnd.hp-hpgl,application/vnd.cups-rawCreated: AirPrint-Brother-MFC-210C.serviceroot@SALOTTO:/home/zarrelli/Scaricati/tjfontaine-airprint-generate-af37647#
In pratica, vi genererà un file XML per ogni stampante condivisa da CUPS, contenente le informazioni necessarie alla pubblicazione tramite Avahi con le modifiche necessarie a renderla “digeribile da AirPrint.
Copiate in
/etc/avahi/services/
il file relativo alla stampante che volete utilizzare tramite AirPlay, nel mio caso
AirPrint-Brother-MFC-210C.service
Ora, aprite il file
/etc/cups/cupsd.conf
e assicuratevi che ci siano le seguenti informazioni:
ServerAlias * Port 631 Listen /var/run/cups/cups.sock
Tanto per non sbagliare, riavviamo i servizi cups e avahi-daemon:
service cupsd restart service avahi-daemon restart
Fatto. Finito. Ora aprite Safari, pigiate sull’icona delle azioni (quella centrale in basso), scegliete “Stampa” e buon divertimento con la vostra nuova, vecchia stampante AirPrint.
P.S.
Chiedo venia per lo stile un po’ raffazzonato, ma è tardi…