Creare un print server con Linux

Penso che questo sia il mio primo post all’interno di questo blog in cui sento l’effettiva necessità di utilizzare anche lo spazio esteso, ovvero una parte di testo che non verrà pubblicata in homepage, ma che è accessibile tramite il link qui sotto.
Ieri pomeriggio ho dovuto installare un print server Linux in casa per poter condividere una stampante fra i vari computer che popolano la fauna tecnologica domestica. Non posso dire che sia stata un’operazione totalmente indolore, ma per lo meno non è stata così drammatica come mi aspettavo. In realtà, se avessi a vuto a disposizione un HOW TO piuttosto semplice e con i passi fondamentali, probabimente me la sarei cavata prima.
Proprio per questo motivo ho deciso di trascrivere la mia esperienza, così in futuro saprò cosa consultare prima di una nuova installazione. Spero possa servire anche a qualcun’altro.

Configurazione di base del mio sistema
– Linux derivato da una vecchissima Slackware di cui ho tenuto praticamente solo le glibc, gli eseguibili dei tool GNU di base e il GCC 2.95
Kernel 2.4.22 aggiornato per l’occasione (prima c’era un 2.4.20)
– Stampante laser Brother HL-1250

Installazione dei tool di base

Configurazione del kernel

Il primo passo è assicurarsi di avere compilato il proprio kernel con il supporto della parallela o dell’USB (a seconda del tipo di connessione alla stampante). Tralascio completamente il caso della stampante con l’adattatore di rete, perchè in tal caso è tutto molto più banale. Nel mio caso, ho deciso di collegare la stampante tramite cavo parallelo, visto che non ne avevo uno USB a portata di mano.
Nel mio caso ho dovuto attivare il supporto per la parallela (Parallel port support) e il relativo Character device, Parallel printer support.
Una veloce ricompilata a kernel e moduli, installazione nel LILO e reboot del sistema.

Installazione di CUPS

Ora bisogna installare CUPS, che a mio parere è il sistema di stampa più semplice da configurare.
Lo si può scaricare direttamente dalla pagina dei download. Io ho preso i sorgenti e l’ho compilato. Se si ha a disposizione una distribuzione ancora integra si possono tranquillamente installare i relativi pacchetti.

La configurazione di CUPS è molto semplice. Per prima cosa bisogna editare il file /etc/cups/cups.conf
Impostate il parametro LogLevel a “debug” per essere sicuri di beccare i possibili problemi del vostro sistema.
Più sotto, sistemate il contenuto di <Location /> per permettere la stampa dalla classe di IP che volete.
Nel mio caso, ho lasciato la classe locale e la LAN con una configurazione di questo tipo:

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

Ancora più sotto bisogna impostare chi avrà accesso all’amministrazione via web. Esistono anche tool di amministrazione in linea di comando e sotto KDE. Io, non avendo a disposizione un ambiente X, ho optato per quello via web che mi permette comunque di configurare il tutto senza dover accedere in shell alla macchina.
La parte da modificare riguarda <Location /admin>
Nel mio caso, ho aperto anche la configurazione verso la LAN e localhost. Come sistema di autenticazione ho usato l’auth standard HTTP interfacciato con gli utenti di sistema.

<Location /admin>
AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From @LOCAL
</Location>

Installazione dei driver della stampante e di foo*

LinuxPrinting.org ha dell’ottima documentazione a riguardo e, soprattutto, un database di tutti i driver delle stampanti compatibili con Linux.
Accedendo al database, cercate il driver per la vostra stampante.
Nella pagina del driver troverete un link al file PPD da scaricare. Scaricatelo e mettetelo nei modelli di CUPS. In genere sono nella directory /usr/share/cups/model/

Un altro passo fondamentale è assicurarsi di avere foomatic-rip e foomatic-gswrapper installati. Fate un

whereis foomatic-rip

per vedere se l’avete. Nel caso mancasse, potete scaricare entrambi i file con questi comandi:

cd /usr/bin
wget http://www.linuxprinting.org/foomatic-rip
wget http://www.linuxprinting.org/foomatic-gswrapper
chmod 755 foomatic-rip foomatic-gswrapper
ln -s /usr/bin/foomatic-rip /usr/lib/cups/filter/foomatic-rip

I path sono relativi alla mia installazione. Controllate che corrispondano ai vostri.

Installazione di GhostScript

E’ fondamentale avere il GhostScript installato, visto che i driver funzionano tutti tramite PostScript. In particolare, la vostra versione di GhostScript deve includere anche i driver della vostra stampante, altrimenti non riuscirete a farlo funzionare.
Nella pagina in cui avete scaricato il file PPD trovate anche un link alle patch da applicare alla vostra versione di GhostScript.
Se, invece, non avete bisogno di tenere la vostra versione di GS, potete scaricare quello della ESP, che si trova sul sito di CUPS.
E’ una versione leggermente modificata del GhostScript originale e contiene tutti i driver attualmente disponibili.
Io ho installato questa versione e sono convinto che sia stata un’ottima mossa. Ora posso collegare qualsiasi tipo di stampante senza problemi.

Avvio di CUPS e configurazione della stampante

Ora che avete CUPS installato, è giunto il momento di farlo partire e di creare la vostra stampante.
Assicuratevi che CUPS non stia già girando e per sicurezza lanciate questi comandi come root:

killall -HUP cupsd
/etc/init.d/cups restart
/etc/init.d/cups restart

Collegatevi con un browser all’indirizzo http://nomedellamacchina:631/admin
Autenticatevi utilizzando un account di sistema e procedete con la configurazione della stampante. E’ piuttosto banale a questo punto. Date un nome alla vostra stampante, selezionate a che periferica è collegata (porta parallela lp0 nel mio caso) e il driver di stampa corretto (il PPD che avete scaricato poco fa).
A questo punto stampate una pagina di prova e tutto dovrebbe funzionare.
Se avete dei problemi, la fonte mogliore per trovare soluzioni è sicuramente LinuxPrinting.org e Google gruppi. Oppure lasciate pure un commento a questo articolo e cercherò di darvi una mano.

Come stampare da Windows

Ora che avete configurato la stampante sotto Linux, viene naturale domandarsi come fare a vederla dalle postazioni Windows.
Basta installare SAMBA e configurare la condivisione della stampante.
L’installazione di Samba è semplicissima. Scaricate dal sito il pacchetto con i sorgenti, oppure quello per la vostra distribuzione. Installatelo e modificate il file di configurazione /etc/smb.conf
Non mi dilungo nella configurazione dettagliata di Samba, visto che ci sono un sacco di articoli e di pagine che trattano la questione in maniera approfondita.
Per quello che ci riguarda, è sufficiente utilizzare la configurazione di default, con una share di questo tipo:

[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no
   guest ok = no
   writable = no
   printable = yes

Avviate samba (smbd -D e nmbd -D) e dalla macchina Windows aprite Risorse di Rete e cercate la vostra stampante. Tasto destro e Connetti.. e scegliete il driver della vostra stampante dall’elenco di quelli disponibili.
Il gioco è fatto.

One thought on “Creare un print server con Linux

  1. Ciao ..molto interessante il tuo articolo Io ho una stampante HP DeskJet 710C ho installato cups sulla mia slack9.1 e tutto ha funzionato.
    Ora quello che ti chiedo è se invece la stamapante è collegata a windows ?
    Mi spiego in casa ho un’altra stampante LexMark X85 collegata a windows XP oppure a windows 2000 a seconda del sistema caricato :
    come devo configurare cups e samba per stampare un documento da linux a windows ?
    Grazie per la collaborazione aspetto tua risposta su email.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.