Come mi ero ripromesso, ecco una guida per installare e condividere la stampante Canon PIXMA iP4300. Devo anticipare che le funzionalità delle stampante risultano ridotte in ambiente Linux, in particolar modo non sono ancora stato capace di stampare su CD/DVD dal pinguino. Per questa funzionalità è prevista un’applicazione fornita da Canon per ambienti Windows o Mac OS X, ma per Linux ancora niente, come se questi sistemi operativi non esistessero neanche.
Al di là di questo problema, potrebbe essere utile ed interessante installare la stampante in ambiente Linux e condividerla per poterla utilizzare remotamente da altri sistemi. In questo modo è possibile utilizzare nei singoli sistemi remoti i driver appropriati per quei particolari sistemi ed ottenere le funzionalità complete della stampante.
Per convenzione chiamerò “print server” durante questa guida il computer sul quale la stampante è stata installata.
Dividerò la guida in due parti. La prima parte è dedicata a coloro che sono poco pratici con la linea di comando e preferiscono effettuare le operazioni attraverso interfacce grafiche. Un consiglio per questo genere di utente: non abbiate paura di aprire il terminale e scrivere qualche comando, capirete che non è che sia poi così difficile e neanche così “brutto”. Inoltre la linea di comando fornisce tipicamente una possibilità di configurazione maggiore rispetto alle interfacce grafiche, il che è sempre un aspetto positivo. Per ultimo, spesso non è possibile disporre di un interfaccia grafica, per esempio nel caso in cui si sia connessi remotamente ad un server via SSH; in questi casi è opportuno sapere quali sono i file da toccare ed il modo in cui è necessario agire.
Configurazione attraverso Interfaccia Grafica
Apriamo il menu Sistema -> Amministrazione -> Stampa. Comparirà l’utility per la gestione di CUPS. Da questa schermata selezioniamo “Condividere le stampanti pubblicate connesse a questo sistema” e “Consentire la stampa da Internet“

Configurazione attraverso GUI.
In questo modo abbiamo aperto il nostro print server per la stampa da internet. In particolar modo è spiacevole notare che non c’è la possibilità di limitare l’accesso alle stampanti per solo determinati indirizzi IP (o classi di indirizzi IP), il che sarebbe invece possibile modificando il file di configurazione da linea di comando (vedi più sotto).
Passiamo ora alla installazione dei driver della stampante. Effettuiamo il download da qui. Dal link seguiamo le richieste fino ad arrivare al download dei driver. Nella pagina del download sono disponibili due pacchetti: cnijfilter-common-v.vv-v.i386.rpm e cnijfilter-ip4300-v.vv-v.i386.rpm (in alternativa si possono scaricare i sorgenti). Al posto delle v è indicato il numero di versione. Attualmente la versione più recente dei driver è la 2.70-2.
A questo punto installiamo alien che serve per convertire un pacchetto rpm ad un pacchetto deb installabile su Ubuntu. Per installare alien apriamo Synaptic (Sistema -> Amministrazione -> Gestore pacchetti Synaptic) cerchiamo “alien”, lo selezioniamo e diamo “Applica”.
UPDATE 17-Mar-2008: Insieme ad alien installiamo anche alcune librerie che saranno necessarie per il funzionamento della stampante. Il procedimento è analogo a quello precedente: apriamo Synaptic e cerchiamo e selezioniamo i seguenti pacchetti:
- libxml1
- libpng12-0
- libpng12-dev
- libgtk1.2
- libgtk1.2-common
Per l’installazione di questi pacchetti dovete avere attivato tutti i repository di Ubuntu (anche quelli con restrizioni). Per questa procedura potete trovare una buona guida sul forum ufficiale di Ubuntu.
A questo punto dobbiamo utilizzare per forza di cose la riga di comando, in modo da convertire i pacchetti da rpm a deb attraverso alien. Supponiamo di aver scaricato i driver sul nostro Desktop (il percorso può essere indicato con ~/Desktop per chi ha la versione in lingua inglese, ~/Scrivania per chi ha quella in italiano). Apriamo un terminale (Applicazioni -> Accessori -> Terminale) e posizioniamoci sulla directory corrispondente al desktop:
jek@jekdesktop:~$ cd ~/Desktop
Ora passiamo il comando per convertire i pacchetti:
jek@jekdesktop:~$ sudo alien --to-deb --script cnijfilter-common-v.vv-v.i386.rpm cnijfilter-ip4300-v.vv-v.i386.rpm
A questo punto verrà richiesta la password; dopo averla inserita i pacchetti deb vengono generati da alien. A questo punto è possibile vedere i pacchetti sul Desktop (se questa era la directory di lavoro).
Chiudiamo quindi il terminale e facciamo doppio click sul pacchetto cnijfilter-common_v.vv-v_i386.deb. Si aprirà un interfaccia nella quale viene chiesto di confermare l’installazione del pacchetto. Confermando verrà richiesta nuovamente la password. Ripetiamo questa operazione anche per il pacchetto cnijfilter-ip4300_v.vv-v_i386.deb.
Ora colleghiamo ed accendiamo la stampante. Ubuntu provvederà a notificarci che la stampante è stata aggiunta e che essa è pronta per l’uso.

Ubuntu mi notifica che la mia stampante è stata installata..Il tutto è molto in stile Windows..
Nel caso in cui si dovessero presentare dei problemi controllate nella sezione per la linea di comando, in quanto alcune librerie potrebbero mancare ed è necessario provvedere ad installarle “a mano”
Configurazione da linea di comando.
Effettuiamo il download dei files dallo stesso link citato in precedenza per quanto riguarda l’installazione attraverso la linea di comando. Installiamo ora tutti i pacchetti necessari attraverso apt-get, ed in seguito creiamo alcuni link che servono per il funzionamento dei driver:
jek@jekdesktop:~$ sudo apt-get install libxml1 libpng12-0 libpng12-dev libgtk1.2 libgtk1.2-common alien
jek@jekdesktop:~$ sudo ln -s /usr/lib/libtiff.so.4 /usr/lib/libtiff.so.3
jek@jekdesktop:~$ sudo ln -s /usr/lib/libpng.so /usr/lib/libpng.so.3
jek@jekdesktop:~$ sudo ln -s /usr/lib/libxml2.so.2 /usr/lib/libxml1.so.1
jek@jekdesktop:~$ sudo ldconfig
A questo punto passiamo a convertire i pacchetti attraverso alien e ad installarli attraverso dpkg. Posizioniamoci nella cartella nella quale abbiamo effettuato il download e digitiamo i seguenti comandi:
jek@jekdesktop:~$ sudo alien --to-deb cnijfilter-common-v.vv-v.i386.rpm cnijfilter-ip4300-v.vv-v.i386.rpm
jek@jekdesktop:~$ sudo dpkg -i cnijfilter-common_v.vv_v.i386.deb
jek@jekdesktop:~$ sudo dpkg -i cnijfilter-ip4300_v.vv_v.i386.rpm
Ora è necessario modificare il file di configurazione di CUPS in modo che questo dia la possibilità di stampare dalla rete locale. Supponendo che la rete abbia come indirizzi 192.168.1.x, apriamo il file /etc/cups/cupsd.conf con il nostro editor di testo preferito (il mio è nano – attenzione, servono i privilegi di amministratore):
jek@jekdesktop:~$ sudo nano /etc/cups/cupsd.conf
All’interno di questo file modifichiamo la linea
Listen localhost:631
in:
Listen 631
E più sotto modifichiamo:
Order allow,deny
Allow localhost
Allow @LOCAL
in:
Order allow,deny
Allow localhost
Allow @LOCAL
Allow 192.168.1.*
Riavviamo CUPS
jek@jekdesktop:~$ sudo /etc/init.d/cupsys restart
A questo punto colleghiamo ed accendiamo la stampante, e tutto dovrebbe funzionare a dovere.
Condivisione stampante: lato client
La stampante è già condivisa tramite http, i client devono essere configurati in modo da raggiungere la stampante all’indirizzo http://192.168.1.X/printers/iP4300, dove X indica l’indirizzo de print server (è oppurtuno quindi che il print server abbia un indirizzo statico).
“Leopard e stampante di rete” descrive come aggiungere questa stampante condivisa su Mac OS X Leopard.
Su questo link è possibile trovare una discussione sul forum internazionale di Ubuntu riguardante l’installazione di questa stampante.
Postato in: 7.10 - Gutsy Gibbon, Canon, Linux, Network, Sistemi Operativi, Stampanti, Ubuntu | Messo il tag: Canon, condivisione, condivisione stampante, Configurazione, CUPS, Gutsy, iP 4300, iP4300, Lnux, Network, PIXMA, print server, Rete, stampante, stampante di rete, Ubuntu