Entra in Aidan ...






Password dimenticata?
Nessun account? Registrati
Il tuo ip è: 38.107.191.86

Varie




Condivisione Stampanti su Linux PDF Stampa E-mail
Qualcuno sara' sorpreso scoprendo che samba non e' la migliore soluzione per condividere agilmente una stampante collegata a un computer Linux, anche se i client sono macchine Windows...

Utilizzare CUPS come server IPP

CUPS, Acronimo di "Common Unix Printing System", e' il sistema di gestione delle stampanti che equipaggia ormai tutte le distribuzioni Linux piu' recenti. CUPS e' l'insieme di un motore di stampa molto potente, basato su PostScript, e di tutte le librerie e driver necessari a fornire a Linux un supporto completo di gestione delle stampanti.

IPP invece e' l'acronimo di "Internet Print Protocol"

Spesso nelle chat e sui forum leggo di persone che trovano difficolta' nella configurazione di Samba per condividere una stampante collegata a una macchina Linux, con altri computer (Linux e Windows).
Ho pensanto quindi di scrivere questa guida per informare il popolo di una via molto piu' semplice per condividere una stampante collegata a Linux, usando direttamente CUPS come server IPP invece di passare per samba, la configurazione in questo modo risulta molto piu' semplice e oltretutto non serve installare driver di stampa specifici sui client, vediamo ora come...

Prima di tutto assicuriamoci di aver installato CUPS sul nostro sistema, quasi sicuramente lo sara' di default per distribuzioni recenti.

Collegate e configurate la vostra stampante sul PC Linux... Stampate una pagina di prova per assicurarvi che tutto funzioni.

(Rif.A) Ora in primo luogo dobbiamo aprire CUPS al mondo esterno, ossia fare in modo che esso accetti connessioni provenienti da altri Computer nella vostra rete locale...

Aprite quindi, (sul PC Linux con la stampante appena configurata) un Browser WEB qualsiasi (Firefox, Konqueror, etc) e digitate:

http://localhost:631

Dovrebbe apparirvi una schermata come questa...



Ora andate sotto la voce "Amministrazione" e spuntate le caselline che dicono:
"Condividi le stampanti pubblicate connesse a questo sistema"
"Consenti amministrazione remota"
Dopo di che premete "modifica impostazioni"

Ok meta' dell'opera e' fatta.

Qui e' stato considerato CUPS v1.2.7 presente sulla SuSE 10.2, versioni piu' vecchie di CUPS potrebbero non avere queste voci, e in tal caso sara' necessario intervenire a mano.

Nota: Sulle versioni di SuSE precedenti la 10.2, quando si tenta di accedere a questi pannelli il sistema ci chiede una password, non e' quella di root ne tanto meno quella dell'utente, prima di procedere dobbiamo eseguire alcuni comandi da una shell.

Quindi apriamo una shell e prendiamo poteri di superuser con il comando "su" immetendo poi la password di root.

Diamo quindi questo comando:
lppasswd -a admin
Ci verra' chiesto di immettere una password, mettete quella che preferite (ad esempio aidan97). D'ora in avanti per accedere al pannello web di amministrazione di CUPS potrete usare come nome utente admin e la password da voi scelta, e questo vale anche per tutte le altre distribuzioni Linux!!!

Se la vostra versione di CUPS non avesse modo di abilitare la condivisione direttamente dal pannello WEB allora dovrete andare a editare il file: /etc/cups/cupsd.conf

Troviamo le righe che riportano i valori:
BrowseAllow ......... (i puntini intendono che non sappiamo cosa ci sia scritto dopo)
BrowseDeny .........

Modifichiamo le righe in questo modo:
BrowseAllow @LOCAL
BrowseDeny All

Cerchiamo anche una serie di righe compresa fra 2 campi <Location /> e </Location>, modifichiamola a questo modo:

<Location />
  Order Deny,Allow
  Deny From All
  Allow From 127.0.0.1
  Allow From 127.0.0.2
  Allow From @LOCAL
</Location>

Riavviamo il servizio di CUPS, solitamente con l comando:
/etc/init.d/cups restart
Ora se non avete commesso errori, CUPS dovrebbe accettare connessioni da altri computer nella rete.

Configurazione di Client Windows 2000/XP "Modo PostScript"

  • Andate nel pannello di controllo, su stampanti e fax...
  • Cliccate su "Aggiungi Stampante"
  • Scegliete "Stampante di Rete o Stampante collegata a un' altro Computer"
  • Ora scegliete la terza voce come da questo screenshot...


L'indirizzo che andrete a inserire sara': http://ip:631/printers/nome

ip = indirizzo IP statico del PC Linux con la stampante.
nome = sara' il nome che abbiamo dato alla stampante configurata su Linux, ad esempio hp840c...

Se non siete sicuri del nome della stampante, tornate nel pannello WEB di cups e cliccate sulla linguetta "Stampanti", da li potete vedere il nome esatto che CUPS assegna a ogni stampante configurata.

Quindi ricapitolando, se il PC Linux e' su ip: 192.168.1.35 e la stampante dentro a cups si chiama "hp840c" inseriamo nella maschera il seguente indirizzo:

http://192.168.1.35:631/printers/hp840c

Il passo successivo e fornire il driver, ora viene il bello, non vi servira' il CD col driver Windows della vostra stampante, assolutamente NO!

Il driver vero ce l'ha solo CUPS, voi dal client dovrete stampare semplicemente in PostScript, ci pensera' CUPS a elaborare il linguaggio PostScript trasformandolo in un linguaggio comprensibile dalla vostra stampante.

Selezionate dal menu' dei driver, integrati in Windows, una generica stampante PostScript...



Esattamente una "Apple LaserWriter 16/600 PS" oppure la "Apple Color LW 12/660 PS" se volete stampare a Colori, tutti i driver che terminano con "PS" sono PostScript. Il liguaggio PostScript non e' legato all'hardware in modo particolare, qualsiasi driver PS quindi dovrebbe sortire effetti simili o identici.

Il passo immediatamente successivo e' scegliere il nome della stampante, Windows ovviamente mette come predefinito "Apple LaserWriter 16/600" cancellate e scrivere il nome della stampante reale sulla quale andrete a stampare, ad esempio hp840c, giusto per non confondere l'utente che poi ci dovra' lavorare.

Se lanciate una stampa di prova dovrebbe funzionare tutto correttamente, inoltre Windows molto probabilmente riuscira' a determinare lo stato della stampante (in linea/errore/fuori linea etc) cosa che non funziona con Samba!!!

Configurazione di Client Windows 95/98/ME "Modo PostScript"

Windows 9x non supporta nativamente le stampanti via IPP, dovrete prima installare una piccola patch di cui fornisco il download direttamente su questa pagina:

IPP for Windows 95
(link pagina ufficiale)

IPP for Windows 98 / 98SE / ME
(link pagina ufficiale)

Una volta installato il supporto IPP e riavviato il sistema procedete configurando la stampante dal pannello di controllo, andate in "Stampanti", Aggiungi Stampante, Stampante di Rete...



Come nel caso di Windows XP poi scegliamo il driver "Apple LaserWriter 16/600 PS" oppure la "Apple Color LW 12/660 PS" se volete stampare a Colori...



Al passaggio successivo cancelliamo il nome "Apple LaserWri..." mettendo quello della stampante vera.

Driver PostScript Alternativo

Se volete utilizzare un driver PostScript piu' versatile e aggiornato al posto dei driver apple integrati in Windows potete scariacare e installare "Adobe PostScript printer drivers for Windows" che trovate in questa pagina disponibile per tutte le versione di Windows. (avvertitemi se il link dovesse cambiare).

Configurazione di Client Windows "Modo RAW"

Le precedenti modalita' di configurazione prevedevano l'uso di un generico driver PostScript nel sistema client. Questo puo' essere molto comodo in quanto non serve installare nulla, in quanto i driver PS generici sono integrati in Windows. Grosso modo il Metodo PS e' ottimo per piccole stampanti in formato A4.

Pero' possono insorgere problemi qualora si desideri utilizzare stampanti fotografiche, o di grande formato (A3, A2, etc) o stampanti con diversi cassetti di alimentazione. Tramite il generico driver PS non e' possibile, da Windows, accedere a queste funzioni estese della stampante remota, diventa necessario dover utilizzare (su Windows) il software proprietario della stampante, dovremo quindi configurare CUPS in modo che oltre ad accettare come input dati in formato PS accetti anche i dati "grezzi" generati dai driver nativi della stampante stessa.

Configurazione lato server:
Seguite tutti i punti precedenti riguardandi la configurazione di CUPS (come da Rif.A), ossia configurate la stampante, andate nel pannello WEB abilitate la condivisione IPP etc...

(Rif.B) Terminate queste operazioni aprite una shell come root...
  • nel file /etc/cups/mime.types
    • Decommentate la linea: application/octet-stream
  • nel file /etc/cups/mime.convs
    • Decommentate la linea: application/octet-stream     application/vnd.cups-raw
La decommentazione avviene cancellando il simbolo # dall'inizio della riga. Finite le modifiche riavviate il server cups con il comando:
/etc/init.d/cups restart
(Rif.C) Configurazione lato client:
Esattamente uguale alla modalita' PostScript con l'unica differenza che fornirete il driver Windows specifico della vostra stampante invece di utilizzare il driver generico PS.

Condivisione di una stampante NON supportata nativamente da Linux (openSuSE):
Collegate la vostra stampante USB o Parallela alla macchina Linux, andate in YaST nel pannello di configurazione delle stampanti:
  • USB
    • Selezionate la stampante rilevata
    • Modifica
    • Date un nome alla stampante
    • Deselezionate la casella: Esegui filtraggio locale
    • Fine
  • Parallela
    • Premete il tasto: Aggiungi
    • Stampanti collegate direttamente
    • Stampante parallela
    • Definite quale porta parallela (lp0, lp1, etc)
    • Prossimo
    • Date un nome alla stampante
    • Deselezionate la casella: Esegui filtraggio locale
Eseguite il resto della configurazione di CUPS (come da Rif.A) e poi la configurazione RAW (come da Rif.B), ora configurate i client Windows (come da Rif.C) e potrete stampare dai client Windows sulla stampante collegata alla macchina Linux. Mentre da Linux in se non avrete modo di stampare (come detto la stampante condivisa non e' supportata nativamente).

Configurazione di un Client Linux

Non posso riportare qui descrizioni dettagliate per ogni distribuzione Linux esistente perche' sono troppe e ogniuna di esse ha interfaccie di configurazione differenti, dico semplicemente che il concetto non cambia, andrete a configurare una nuova stampante di rete, sceglierete il metodo IPP o Stampanti di rete o come si chiama nel tools di amministrazione della vostra distribuzione poi darete un driver PostScript Generico. Alcune distribuzioni riportano proprio "Stampante CUPS".

Pregi e difetti rispetto a Samba.

L'unico "difetto" e' la necessita' di fissare il computer che condivide la stampante su un IP statico all'interno della rete (se la rete funziona in DHCP).

I pregi invece sono molti:
  1. Windows via samba tende a piantarsi, a volte anche per 5 o 10 minuti, a cercare la stampante se l'host su cui e' connessa e' offline, via IPP no.
  2. Via samba sarete costretti a installare il driver proprietario (almeno che non usiate il modo RAW di CUPS) della stampante (oggi significa buttare 400 mega di spazio disco quasi sicuramente) su ogni PC Windows, via IPP con PostScript no.
  3. Via samba spesso Windows non riesce a determinare se la stampante remota e' online oppure offline (cosa che oltretutto capita anche se la stampante e' collegata a un' altro PC windows), via IPP Windows riesce a rilevare lo stato della stampante.
  4. Se la stampante e' un po' datata e non esistono driver per l'ultima versione di Windows ma Linux la supporta riuscirete a utilizzarla comunque con il metodo PostScript.
Ultimo aggiornamento ( venerdì 26 ottobre 2007 )
 
< Prec.   Pros. >