Guida alla Stampa in Gentoo

Contenuti:

1.Stampa e Gentoo Linux

Usare gli Strumenti Corretti 

Linux ha un eccellente supporto per le stampanti; lo strumento giusto da usare è CUPS (Common Unix Printing System). Dall'inizio del progetto, nel 1999, l'installazione e la gestione di CUPS è migliorata notevolmente.

In questo documento ci occuperemo di come usare CUPS per configurare una stampante locale o di rete. Non scenderemo nei dettagli dato che il progetto dispone di ottima documentazione per l'uso avanzato.

2.Configurazione del Kernel

Introduzione 

Quando si vuole installare una stampante sul proprio sistema è necessario sapere in che modo la stampante sarà collegata al sistema. Potrebbe essere collegata tramite una porta locale come la LPT o la USB, oppure potrebbe essere collegata via rete. Se è collegata via rete potrebbe usare il protocollo di stampa IPP (Internet Printing Protocol) oppure il protocollo Microsoft Windows SMB-CIFS (Condivisione di Microsoft Windows).

Le prossime sezioni spiegano qual'è la minima configurazione del kernel necessaria. Certamente questa dipende dal modo in cui la stampante verrà collegata al sistema, quindi per chiarezza le istruzioni sono state separate:

Spostarsi in /usr/src/linux ed eseguire make menuconfig per accedere alla configurazione del kernel. Se si è utilizzato genkernel per configurare il kernel, si dovrebbero comunque seguire questi passi per assicurarsi che non manchi nulla.

Nei prossimi esempi di configurazione, verrà aggiunto il supporto necessario nel kernel, non come moduli. Questo non è obbligatorio; Se si vuole si può facilmente utilizzare un supporto modulare, in tal caso non bisogna dimenticare successivamente di caricare i moduli necessari. L'esempio di configurazione è riferito al kernel 2.6; Per il 2.4 le direttive di configurazione potrebbero essere altrove.

Ora si vada nella sezione appropriata per modificare (o controllare) la configurazione del kernel.

Stampante Locale (LPT) 

La porta LPT è generalemente usata per identificare la porta per la stampante parallela. Bisogna prima abilitare il supporto per la porta parallela, poi il supporto alla porta parallela in stile PC (a meno che il proprio sistema non sia SPARC) dopodiché si abiliterà il supporto alla stampante su porta parallela.

Esempio 1: Configurazione della stampante su porta parallela

Device Drivers -->
  <*> Parallel port support
  <*>   PC-style hardware

Device Drivers -->
  Character Devices -->
    <*> Parallel printer support

In alcuni casi è necessario abilitare altre opzioni nella sezione Parallel port support. Si utilizzi la funzione Help nella configurazione del kernel per maggiori informazioni.

Questo è quanto; uscire dalla configurazione del kernel e ricompilarlo. Al termine non va dimenticato di copiare la nuova immagine del kernel in /boot (prima montare /boot se necessario) e aggiornare la configurazione del bootloader prima di riavviare il sistema.

Proseguire ora con Installazione e Configurazione di CUPS.

Stampante Locale (USB) 

Per abilitare la stampa via USB, è necessario il supporto USB ed il supporto alla stampante USB.

Esempio 2: Configurazione della stampante su porta USB

Device Drivers -->
  USB Support -->
    <*> Support for Host-side USB
    (...)
    --- USB Host Controller Drivers
    (Selezionare l'HCD utilizzato dal proprio sistema. Se
non si sa quale selezionare, eseguire "lspci -v | grep HCI" da un
altro terminale)
    <*> EHCI HCD (USB 2.0) support ( oppure )
    <*> OHCI HCD support           ( oppure )
    <*> UHCI HCD (most Intel and VIA) support
    (...)
    <*> USB Printer support

Questo è quanto; uscire dalla configurazione del kernel e ricompilarlo. Al termine non va dimenticato di copiare la nuova immagine del kernel in /boot (prima montare /boot se necessario) e aggiornare la configurazione del bootloader prima di riavviare il sistema.

Proseguire ora con Installazione e Configurazione di CUPS.

Stampante Remota (IPP) 

Per potersi collegare ad una stampante remota tramite il protocollo Internet Printing Protocol è sufficiente che il kernel abbia il supporto alla rete. Assumendo che il proprio kernel abbia già il supporto alla rete, proseguire con Installazione e Configurazione di CUPS

Stampante Remota (SMB-CIFS) 

Il kernel deve supportare SMB CIFS:

Esempio 3: Configurazione della stampante SMB-CIFS

File systems -->
  Network File Systems -->
    <*> SMB file system support (to mount Windows shares etc.)
    <*> CIFS support (advanced network file system for Samba, Windows and other CIFS compliant servers)

Questo è quanto; uscire dalla configurazione del kernel e ricompilarlo. Al termine non va dimenticato di copiare la nuova immagine del kernel in /boot (prima montare /boot se necessario) e aggiornare la configurazione del bootloader prima di riavviare il sistema.

Proseguire ora con Installazione e Configurazione di CUPS.

3.Installazione e Configurazione di CUPS

Installazione 

Installare CUPS con Gentoo è semplice. CUPS ha alcune caratteristiche opzionali alle quali si può essere interessati. Per abilitare o disabilitare queste caratteristiche, utilizzare le relative USE flag.

USE flag Effetto su CUPS
nls Abilita il supporto al linguaggio nativo (ndt: Native Language Support). Con nls CUPS è in grado di fornire un feedback localizzato in modo da poter usare CUPS nella propria lingua.
pam Se si ha bisogno di autenticare i lavori di stampa attraverso i Pluggable Authentication Modules, questo attiva il supporto a PAM in CUPS.
samba Se si vogliono poter condividere le stampanti locali con sistemi Windows presenti in rete utilizzando il protocollo SMB-CIFS, o se si vogliono utilizzare stampanti condivise da sistemi Windows, si ha bisogno del supporto per SAMBA.
slp In un ambiente gestito la stampante potrebbe essere resa disponibile come servizio ad altri. Con il Service Locator Protocol (ndt: Protocollo per l'individuazione del servizio) si può facilmente trovare e configurare un servizio sul proprio sistema. Abilitare questa USE flag se la propria stampante è disponibile come servizio o potrebbe essere resa disponibile come tale.
ssl Se si vuole autenticazione remota e/o privacy, si ha bisogno del supporto per Secure Socket Layer, il quale permette sessioni di stampa criptate. Il supporto per SSL deve essere disponibile su tutti i sistemi coinvolti presenti in rete.

Controllare le impostazioni USE correnti. Se si vogliono modificare le impostazioni USE correnti soltanto per CUPS, aggiungere le appropriate USE flag a /etc/portage/package.use.

Esempio 4: Impostazione delle USE flag per CUPS

# emerge -pv cups
[ebuild N     ] net-print/cups-1.1.23-r1  +nls +pam -samba -slp +ssl 0 kB

(Ad esempio, per abilitare il supporto a SAMBA in CUPS)
# vim /etc/portage/package.use
net-print/cups samba

Se si è soddisfatti delle impostazioni, installare CUPS attraverso Portage.

Esempio 5: Installazione di CUPS

# emerge cups

Il processo di installazione potrebbe consigliare di eseguire rc-update add coldplug default se si sta utilizzando una stampante USB ed il supporto necessario è costituito da moduli del kernel. Questo permette di caricare tutti i moduli del kernel necesari al boot.

Se la stampante è collegata al sistema localmente è necessario caricare CUPS automaticamente all'avvio. Assicurarsi che la propria stampante sia colegata ed accesa prima di avviare CUPS

Esempio 6: Avvio automatico di CUPS

# /etc/init.d/cupsd start
# rc-update add cupsd default

Configurazione 

La configurazione di default per il server CUPS in /etc/cups/cupsd.conf è sufficiente per la maggior parte degli utenti. Comunque, diversi utenti potrebbero avere la necessità di apportare modifiche alla configurazione di CUPS.

Nelle prossime sezioni saranno trattate alcune modifiche che sono spesso necessarie:

  • In Accesso a stampanti remote si permette ad altri sistemi di utilizzare la stampante collegata a questo sistema Linux.
  • In Amministrazione remota di CUPS si autorizza l'amministrazione di CUPS da sistemi remoti.
  • In Abilitare il supporto ai driver Windows PCL è possibile configurare CUPS per il supporto ai driver PCL di Windows. Questo è consigliabile se si desidera che i sistemi Windows siano in grado di utilizzare una stampante condivisa via SAMBA, visto che molti driver per Windows sono driver PCL.
  • In Impostare una stampante remota è possibile configurare il sistema di modo che sia in grado di utilizzare una stampante collegata ad un altro sistema (che non sia una condivisione Windows).

Accesso a Stampanti Remote 

Se si vuole che altri sistemi usino la propria stampante tramite IPP è necessario autorizzare l'accesso alla stampante in /etc/cups/cupsd.conf. Se si vuole condividere la propria stampante tramite SAMBA, questa modifica non è necessaria.

Aprire /etc/cups/cupsd.conf in un editor di testo e aggiungere una riga Allow per i sistemi che devono essere in grado di accedere alla propria stampante. Nel prossimo esempio permetteremo l'accesso alla stampante da parte di tutti i sistemi il cui indirizzo IP inizia per 192.168.0.

Esempio 7: Permettere l'accesso da remoto alla stampante

<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.*
</Location>

Amministrazione Remota di CUPS 

Se si è interessati all'amministrazione remota, si deve autorizzare l'accesso da parte di altri sistemi all'amministrazione di CUPS. Modificare /etc/cups/cupsd.conf e permettere esplicitamente l'accesso ai sistemi desiderati. Ad esempio, per autorizzare l'accesso al sistema con indirizzo IP 192.168.0.3:

Esempio 8: Autorizzare l'accesso remoto in /etc/cups/cupsd.conf

<Location /admin>
(...)
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.3
</Location>

Non bisogna dimenticare di riavviare CUPS dopo aver modificato il file /etc/cups/cupsd.conf eseguendo /etc/init.d/cupsd restart.

Abilitare il Supporto ai Driver PCL per Windows 

I driver PCL inviano dati non preparati (raw) al server di stampa. Per abilitare la stampa raw è necesario modificare /etc/cups/mime.types e decommentare application/octet-stream. Dopo ciò, è necessario modificare /etc/cups/mime.convs decommentando la linea contenente application/octet-stream.

Esempio 9: Abilitare il supporto alla stampa raw

# vim /etc/cups/mime.types
(Decommentare la linea in modo che il file contenga:)
application/octet-stream

# vim /etc/cups/mime.convs
(Decommentare la linea in modo che il file contenga:)
application/octet-stream     application/vnd.cups-raw    0    -

Dopo aver modificato /etc/cups/cupsd.conf riavviare il server CUPS eseguendo /etc/init.d/cupsd restart.

Configurazione di una stampante remota 

Se le stampanti sono collegate ad un server CUPS remoto si può facilmente configurare il proprio sistema per utilizzare la stampante remota modificando il file /etc/cups/client.conf.

Assumendo che la stampante sia collegata ad un server chiamato printserver.mydomain, aprire /etc/cups/client.conf con il proprio editor preferito ed impostare la direttiva ServerName:

Esempio 10: Modifica di client.conf

# vim /etc/cups/client.conf

(Sostituire printserver.mydomain con il nome del proprio server di
stampa)
ServerName printserver.mydomain

Verrà utilizzata la stampante che sul server remoto risulta impostata come predefinita. Se si vuole cambiare la stampante predefinita, utilizzare lpoptions:

Esempio 11: Cambiare la stampante predefinita

(Prima di tutto elencare le stampanti disponibili)
# lpstat -a
hpljet5p accepting requests since Jan 01 00:00
hpdjet510 accepting requests since Jan 01 00:00

(Impostare la HP LaserJet 5P come stampante predefinita)
# lpoptions -d hpljet5p

4.Configurare una Stampante

Introduzione 

Se la stampante che si vuole configurare è disponibile attraverso un server remoto (che utilizza CUPS) non c'è bisogno di seguire queste istruzioni. Leggere invece Configurare una stampante remota.

Rilevare la Stampante 

Se si possiede una stampante USB o la stampante su porta parallela era accesa quando si è avviato il sistema, è probabile si possano ottenere dal kernel informazioni che indicano che la stampante è stata rilevata con successo. Comunque questa informazione è solo indicativa e non è indispensabile.

Esempio 12: Recuperare informazioni dal kernel

(Per una stampante su porta parallela)
$ dmesg | grep -i print
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series

(Per una stampante USB)
$ lsusb
(...)
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse

Installare la Stampante 

Per installare la stampante sul proprio sistema, avviare il proprio browser e puntare a http://localhost:631. Si accederà in questo modo l'interfaccia web di CUPS dalla quale si possono svolgere tutte le attività amministrative.

Andare su Administration ed inserire la propria password di root nel box. Quindi, dopo aver raggiunto l'interfaccia di amministrazione, cliccare su Add Print. Si entrerà in una nuova schermata che permetterà l'inserimento delle seguenti informazioni:

  • Lo spooler name, ovvero un breve ma descrittivo indicativo usato dal sistema per identificare la stampante. Questo nome non deve contenere spazi o altri caratteri speciali. Per esempio, la stampante HP LaserJet 5P potrebbe diventare hpljet5p.
  • La location, ovvero il luogo dove la stampante è fisicamente collocata (per esempio nella propria stanza, o nella cucina vicino alla lavastoviglie). Ciò può essere utile per poter gestire molte stampanti contemporaneamente.
  • Infine la description, dove si può indicare una completa descrizione della stampante. Per esempio il nome completo "HP LaserJet 5P".

La schermata successiva chiede il dispositivo dove la stampante è in ascolto. C'è una vasta gamma di scelta. La tabella successiva copre alcuni casi possibili, ma la lista non è del tutto esaustiva.

Dispositivo Descrizione
AppSocket/HP JetDirect Questo dispositivo speciale permette alle stampanti di rete di essere accessibili tramite il socket HP JetDirect. Solo alcune stampanti specifiche lo supportano.
Internet Printing Protocol (IPP or HTTP) Usare questo per poter utilizzare stampanti remote attraverso il protocollo IPP, sia direttamente (IPP) o attraverso l'HTTP.
LPD/LPR Host or Printer Selezionare questo se la stampante remota è attaccata d un server LPD/LPR.
Parallel Port #1 Scegliere questo se la stampante è attaccata localmente alla porta parallela (LPT). Quando la stampante viene automaticamente riconosciuta il suo nome viene apposto a quello del dispositivo.
USB Printer #1 Infine, selezionare questo se la stampante è attaccata in locale in una porta USB. Il nome della stampante dovrebbe essere automaticamente apposto al nome del dispositivo.

Se si sta installando una stampante remota, verrà chiesto l'URI della stampante:

  • Un server LPD richiede un sintassi del tipo: lpd://hostname/queue
  • Una stampante HP JetDirect richiede: socket://hostname
  • Una stampante IPP invece richiede una sintassi del tipo: http://hostname:631/ipp/queue o ipp://hostname/ipp/queue

Quindi, selezionare il produttore della stampante nella schermata contigua mentre nella consecutiva a questa il nome e il numero del modello. Per molte stampanti si possono trovare diversi driver. Si può decidere di selezionarne uno adesso o cercare sulla lista di LinuxPrinting.org per un driver migliore. È comunque possibile cambiare il driver utilizzato in seguito.

Dopo aver selezionato il driver, CUPS informerà che la stampante è stata correttamente aggiunta al sistema. Adesso quindi è possibile entrare nella pagina di amministrazione delle stampanti e selezionare Configure Printer per cambiare le impostazioni (risoluzione, formato pagina, etc).

Testare e riconfigurare una stampante 

Per verificare se la stampante funziona correttamente, basta andare nella pagina di amministrazione delle stampanti, selezionare la stampante e cliccare su Print Test Page.

Se la stampante non funziona correttamente, cliccare su Modify Printer per riconfigurarla. Si tratta delle stesse schermate usate durante la prima installazione ma le impostazioni predefinite stavolta corrispondono alla corrente configurazione.

Se non si riesce a capire il motivo per cui la stampante non vuole funzionare, può essere molto utile dare un'occhiata al log in /var/log/cups/error_log. Nell'esempio seguente scopriremo un errore di permessi, probabilmente dovuto ad una errata configurazione di Allow in /etc/cups/cupsd.conf.

Esempio 13: Cercare errori di CUPS

# tail /var/log/cups/error_log
(...)
E [11/Jun/2005:10:23:28 +0200] [Job 102] Unable to get printer status (client-error-forbidden)!

Installare il driver migliore 

Esistono molti driver per le stampanti; per scoprire quello che ha le migliori prestazioni, basta dare un'occhiata alla lista di LinuxPrinting.org. Selezionare la propria marca e il tipo per trovare quale driver il sito consiglia. Per esempio, per la HP LaserJet 5P, il sito raccomanda il driver ljet4.

Scaricare il file PPD dal sito e posizionarlo in /usr/share/cups/model.Ciò renderà il driver visibile dall'interfaccia web di CUPS. Quindi si può riconfigurare la stampante come descritto sopra.

5.Usare driver per le stampanti particolari

Introduzione 

Alcune stampanti richiedono driver specifici o forniscono caratteristiche che non vengono attivate tramite il processo di configurazione descritto sopra. Questo capitolo riguarderà la configurazione su Gentoo Linux delle suddette stampanti "particolari".

Saranno trattate le seguenti stampanti e/o driver:

Driver Gimp-Print 

I driver gimp-print sono driver opensource di alta qualità per varie stampanti Canon, Epson, HP, Lexmark, Sony, Olympus e PCL i quali supportano CUPS, ghostscript, The Gimp e altre applicazioni.

Il portage tree di Gentoo contiene un ebuild per i driver gimp-print. Basta semplicemente usare emerge per installarli. Notare che l'ebuild richiede un bel po di flag USE (come cups e ppds). Queste due devono essere attivate per permettere ai driver di funzionare.

Esempio 14: Installare i driver gimp-print

# emerge gimp-print

Quando finisce il processo di installazione, i driver Gimp-print si potranno utilizzare dall'interfaccia web di CUPS.

Driver HPLIP 

Il Progetto HPLIP abbraccia i driver hpijs e include il supporto scanner e i tools per varie periferiche multi-purpose. Per il supporto alla stampa, è obbligatorio abilitare la flag USE ppds.

Esempio 15: Installare i driver HPLIP

(Controllare se la flag USE ppds è attivata)
# emerge -vp hplip
These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] net-print/hplip-0.9.5  +X +cups +foomaticdb +ppds -qt -scanner -snmp +usb 9,255 kB 

Total size of downloads: 9,255 kB

# emerge hplip

Dopo la fine del processo di installazione, i driver della stampante saranno disponibili nell'interfaccia web di CUPS.

Driver PNM2PPA 

PPA è una tecnologia HP che si incetra sull'invio di processi di basso livello al sistema invece che alla stampante in modo da rendere la stampante più economica, anche se al costo di un più elevato utilizzo di risorse.

Se LinuxPrinting riporta che il driver pnm2ppa è il migliore per la propria stampante, bisogna installare il filtro pnm2ppa nel proprio sistema:

Esempio 16: Installare il filtro pnm2ppa

# emerge pnm2ppa

Una volta installato, scaricare il file PPD per la propria stampante da LinuxPrinting e posizionarlo su /usr/share/cups/model. Quindi, configurare la stampante usando i passi spiegati sopra.

6.Stampare da e su Microsoft Windows

Configurare un client Windows per IPP 

Microsoft Windows supporta IPP (gli utenti di Windows 9x o ME devono installarlo a parte). Per installare una stampante che è collegata alla Linux box su Windows, lanciare il wizard Add Printer e selezionare Network Printer. Quando verrà chiesto l'URI, usare la sintassi http://hostname:631/printers/queue.

Naturalmente assicurarsi prima che tutti i sistemipossono raggiungere la stampante!

Configurare un client Windows per una stampante condivisa con Samba 

Per condividere una stampante in una rete SMB-CIFS, occore avere SAMBA installato e correttamente configurato. Ciò va un po' oltre lo scopo di questo documento, ma faremo lo stesso un veloce resoconto di come configurare SAMBA per condividere le stampanti.

Aprire /etc/samba/smb.conf con il proprio editor preferito e aggiungere la sezione [printers]:

Esempio 17: Aggiungere una sezione [printers]

[printers]
  comment      = All printers
  path         = /var/spool/samba
  browseable   = no
  guest ok     = no
  writable     = no
  printable    = yes
  public       = yes
  printer name = hpljet5p

Adesso andare verso la cima del file smb.conf fino alla sezione [global]. Quindi cercare i parametri printcap name e printing e settarli entrambi su cups:

Esempio 18: Modificare la sezione [global]

[global]
  (...)
  printcap name = cups
  printing      = cups

Assicurarsi di aver abilitato il supporto ai driver Windows PCL in CUPS. Quindi, riavviare il servizio smb per applicare le modifiche.

Configurare un client Linux per un server di stampa Windows 

Prima di tutto, assicurarsi che la stampanta è condivisa sul sistema Windows.

Quindi, nella interfaccia web CUPS, configurare la stampante come è stato descritto precedentemente. Adesso si noterà che CUPS ha aggiunto un altro driver chiamato Windows Printer via SAMBA. Selezionarlo e usare una sintassi smb://username:password@workgroup/server/printername or smb://server/printername come URI.

7.Applicazioni relative alla stampa

Introduzione 

Esistono molti tool per la configurazione delle stampanti, per usare ulteriori filtri di stampa, aggiungere altre funzionalità di stampa, etc. Questo capitolo ne elenca un po'. La lista non è esaustiva e non descrive ogni tool in dettaglio.

Gtk-LP - Un tool di configurazione delle stampanti scritto in GTK 

Con Gtk-LP è possibile installare, modificare e configurare le proprie stampanti da una applicazione Gtk stand-alone. Esso utilizza CUPS e comprende tutte le funzionalità standard di esso. In definitiva è l'ideale per chi non ama l'interfaccia web di CUPS oppure vuole una applicazione stand-alone per le operazioni giornaliere di stampa.

Per installarlo, emergere gtklp:

Esempio 19: Installare Gtk-LP

# emerge gtklp


Ultimo aggiorn.:
2005-11-21
Sven Vermeulen
Autore

Fabio Rosati
Traduttore

Luca Marturana
Traduttore

Sommario:  Questo documento tratta l'installazione e la gestione delle stampanti usando CUPS e Samba. Viene trattata l'installazione e di rete oltre all'utilizzo di stampanti condivise da altri sistemi operativi.
- 2002 Gentoo.it - Domande, commenti e/o correzioni? Email gentoo-dev@gentoo.it.