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…

It’s on you!

echo “a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z” | awk ‘BEGIN { FS = “,” } ; { print $10.$21.$19.$20,$4.$15,$9.$20 }’

Bookmarks for luglio 2nd through luglio 24th

Dai un’occhiata ai link interessanti che ho trovato dal luglio 2nd al luglio 24th:

  • Net Profiles
  • OpenStack Open Source Cloud Computing Software
  • MonitoringExchange – check complete interface table – The main design goal of this plugin is to monitor one network device with one plugin. It is optimized for speed and allows to monitor large networks with hundreds of switches and routers.<br />
    <br />
    Server systems like unix, windows, network can also be monitored. In a plug and play manner it walks through lots of snmp mibs and stores all interface properties in a nice table. If someone changes interface properties the plugin recognizes it and displays these changes.