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
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:
- 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.
- 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.
- 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.
- 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.
|