Una descrizione di base del sistema di stampa CUPS. Pensato per Debian 11 (bullseye), ma dovrebbe andare bene per la maggior parte per quanto si trova in Debian 10 (buster).
Contents
- Introduzione
- Stampa senza driver
- Installazione del software
- Riassunto
- Utilità per l'impostazione della coda di stampa
- L'interfaccia web di CUPS
- system-config-printer
- Stato della stampante
- Printer Control
- Stampare su un PDF
- Stampa da client Linux, al server CUPS o via rete, dalla CLI
- CUPS come server di stampa per macchine Windows
- CUPS e Samba
- Condivisione di stampa usando Macintosh come client e Debian come server
- Stampare immagini
- Vedere anche
Introduzione
Il sistema di stampa di Debian ha subito molti cambiamenti significativi negli ultimi anni, con molta parte della gestione delle stampe che sfrutta i progressi nella tecnologia delle moderne stampanti e la proliferazione delle stampanti IPP. Le stampanti moderne sono gestite da CUPS e supportate da iniziative di OpenPrinting come cups-filters. Nonostante questo, vengono ancora usati molte stampanti vecchie (non moderne) e i loro driver. Questa pagina insieme ad un'altra hanno lo scopo di servire gli utenti con entrambi i tipi di dispositivi di stampa.
Le stampanti vecchie (non moderne) necessitano di driver di stampa. Se un utente non è sicuro su cosa sia adatto alla sua stampante, un insieme esaustivo di driver e di PPD liberi può essere messo nel sistema con
apt install printer-driver-all
A seconda della stampante, può anche essere preferibile installare uno o più dei seguenti pacchetti:
Il sito web OpenPrinting è una buona fonte di informazioni per trovare la corrispondenza tra stampanti e driver liberi. Per una stampante che richiede un driver non libero, un utente deve vedere ciò che offre il produttore.
Stampa senza driver
Una parte del materiale nelle pagine nel Portale sulla stampa è applicabile all'installazione dei driver per stampanti (liberi e non liberi) e PPD e all'impostazione di una coda di stampa per le stampanti vecchie. Tuttavia è bene tenere a mente che i driver e i PPD sono deprecati in CUPS e da ultimo non verranno più supportati come lo sono ora. Questo è da un po' di tempo un obiettivo a lungo termine del progetto CUPS.
Gli utenti che hanno una stampante moderna sono sollecitati a considerare i punti seguenti e ad esplorare una soluzione di stampa senza driver per le loro necessità di stampa, indipendentemente dal fatto che la deprecazione sia un fattore motivante.
La stampa senza driver è stata introdotta in CUPS e cups-browsed in Debian 9 (stretch).
Il supporto per la stampa senza driver con CUPS e cups-browsed è stato notevolmente esteso in Debian 10 (buster) e Debian 11 (bullseye).
Le stampanti in commercio negli ultimo 10 anni circa sono quasi sempre dispositivi AirPrint e perciò supportano la stampa senza driver quando il dispositivo è connesso via Ethernet o wireless. In aggiunta, una stampante moderna connessa via USB può essere capace di stampa senza driver se ha funzionalità IPP-over-USB.
Installazione del software
CUPS e cups-filters sono il nucleo centrale del sistema di stampa ed entrambi vengono installati con
apt install cups
Questa installazione fornisce un sistema di stampa funzionante che è completamente adatto per l'uso con una stampante moderna senza l'installazione di alcun software aggiuntivo. Le stampanti vecchie richiedono l'installazione di un driver.
cups-browsed è installato come pacchetto raccomandato.
Le stampanti moderne connesse via USB e Ethernet o wireless in Debian 11 dovrebbero essere rilevate e configurate automaticamente da cups-browsed.
Debian 10 gestisce una stampante moderna connessa via USB senza driver seguendo questo suggerimento ipp-usb. Altrimenti è necessario un driver.
Le stampanti IPP moderne sono stampanti in grado di stampa senza driver; cioè non sono richiesti plugin o pacchetti dei produttori liberi o non liberi.
In alternativa, se lo si ritiene preferibile o necessario, un utente può installare manualmente una coda di stampa (remota o locale) con lpadmin, l'interfaccia web di CUPS o system-config-printer. Una stampa funzionante è solitamente garantita se una stampante moderna è impostata come stampante senza driver o se una vecchia stampante è supportata da uno dei pacchetti installati.
Riassunto
Si ha una stampante moderna o vecchia? Esiste un driver per la propria stampante vecchia? La stampante moderna usa funzionalità in buster o bulleye? Si è compreso che bullseye gestisce stampanti moderne USB e connesse in rete, mentre buster lavora solo con stampanti moderne in rete? Si è controllato se cups-browsed ha impostato automaticamente una coda di stampa funzionante prima di fare modifiche al sistema? Si ha ben a mente che la propria stampante moderna connessa via USB non deve essere impostata come stampante USB se ha funzionalità IPP-over-USB? Perché si sta usando HPLIP e le sue utilità quando si ha una stampante moderna?
Una stampante o una MFD moderna in bullseye non dovrebbe richiedere un driver, nemmeno per la scansione. I pacchetti come HPLIP e printer-driver-escpr non è necessario siano presenti nel sistema.
Un dispositivo di stampa vecchio richiede un PPD, e probabilmente anche un driver.
Una coda di stampa per una stampante moderna può essere impostata manualmente se cups-browsed non è installato o se ci sono problemi con il suo comportamento.
Utilità per l'impostazione della coda di stampa
Utilità di configurazione per un'installazione manuale di stampanti o code di stampa sono:
Se cups-browsed non è presente nel sistema o si pensa che non funzioni come dovrebbe, si può impostare una coda di stampa manualmente. Si dovrebbe anche controllare se code di stampa funzionanti siano state automaticamente installate da cups-browsed prima di un'impostazione manuale. Ciò può essere fatto con
lpstat -a
Un output non vuoto indica che è stata creata una coda locale. Un elemento di questo tipo può essere presente solo quando cups-browsed ha configurato automaticamente una coda o se l'utente l'ha fatto manualmente.
Anche guardare nella scheda Stampanti dell'interfaccia web di CUPS o nella schermata di inizio di system-config-printer può rivelare se è avvenuta una possibile configurazione automatica da parte di cups-browsed.
L'interfaccia web di CUPS
CUPS ha una interfaccia web per impostare una coda di stampa e amministrare le stampanti. Usare un browser per mostrare l'interfaccia che si trova in localhost:631 e per aggiungere una stampante attraverso la schermata di Amministrazione. Se sono richieste un nome utente e una password, vedere qui.
Qui sotto è mostrata una scherma di Aggiunta stampante per Debian 11. Ricordarsi che ipp-usb gestisce una stampante moderna. Una EPSON Stylus Photo RX420, una HP serie psc 1300 e una HP serie ENVY 4500 sono connesse via USB al computer. La ENVY 4500 è l'unica stampante moderna. Come si vedrà in seguito, questo è un fattore importante nella scelta di come impostare una coda di stampa per questo dispositivo.
Stampanti locali
Le stampanti che sono solitamente collegate alla macchina in uso sono mostrate in questa categoria. La maggior parte degli utenti vorrà impostare una stampante connessa via USB. Un URI per un tale dispositivo è mostrato dopo che Continua viene attivato. La vecchia psc 1300 ha due voci; probabilmente è meglio scegliere la voce che ha un che inizia con hp:/usb dato che dà un più facile accesso allo scanner nel dispositivo. Con un driver nel sistema o fornito dall'utente il resto della configurazione della coda per le vecchie psc 1300 e EPSON Stylus dovrebbe completarsi con successo. L'amministrazione della coda dall'interfaccia web include funzionalità per modificarla o cancellarla, impostare opzioni predefinite per essa, mettere in pausa o riprendere la stampa, rifiutare lavori e modificare /etc/cups/cupsd.conf.
Se si guarda attentamente la categoria Stampanti di rete rilevate si nota che ENVY 4500 è elencata di nuovo. Questa voce non viene mostrata per nulla in buster e non viene mostrata in bullseye a meno che la stampante non comprenda il protocollo IPP-over-USB. bullseye ha ipp-usb installato è ciò di fatto trasforma la moderna ENVY 4500 con funzionalità IPP-over-USB in un dispositivo di rete, con la conseguenza che
La voce USB per la ENVY 4500 non può essere usata per impostare una coda di stampa funzionante quando bullseye è il sistema operativo.
Stampanti di rete rilevate
La seconda sezione è per le stampanti o le code di stampa che sono state rilevate nella rete locale. Le vodi con @ nella loro descrizione sono code di stampa pubblicizzate da un server CUPS remoto. Una voce senza @ indica una stampante. Le stesse code di stampa sono rilevate automaticamente da cups-browsed e diventano disponibili come code locali, rendendo non necessaria la loro configurazione dall'interfaccia web, a meno che ciò non sia ciò che si vuole fare.
Una coda/stampante di rete rilevate dovrebbe poter essere aggiunta tanto facilmente quanto una stampante USB. La sua connessione viene rilevata per conto dell'utente e viene fornita nella pagina seguente. Se la connessione inizia con dnssd:// si dovrebbe selezionare RAW come Marca/Produttore nella terza pagina. Il server che riceve il lavoro farà il filtraggio perciò dovrebbe essere inviato non elaborato. A meno che la stampante stessa può elaborare il formato del documento del lavoro sottomesso, si deve scegliere un PPD per configurarla.
Per ciò che riguarda le stampanti moderne che capiscono il protocollo IPP-over-USB connesse via USB in bullseye: guardare le voci modello/driver nella terza pagina per le voci che contengono driverless o IPP Everywhere. Non ci si aspetti di ottenere una coda di stampa funzionante usando la voce della stampante sotto Stampanti locali.
Altre stampanti di rete
La sezione Altre stampanti di rete richiede di specificare la destinazione per la coda/stampante remota, che può essere nella rete locale o distante chilometri. AppSocket è quasi sempre disponibile in una stampante di rete e altri dispositivi e richiede solo l'indirizzo IP della stampante e un numero di porta. Un URI Internet Printing Protocol (IPP) è la scelta preferita per la connessione ad un altro server CUPS perché è il protocollo nativo di CUPS. Un URI Line Printer Daemon (LPD) può essere preso in considerazione se il servizio di stampa remoto non supporta IPP in modo soddisfacente o per nulla. Come prima, quando una coda di stampa remota fa il filtraggio, scegliere RAW come Marca/Produttore.
system-config-printer
system-config-printer è uno strumento amministrativo che funziona in modo simile all'interfaccia web CUPS per la configurazione di stampanti e code di stampa, ma è un'applicazione nativa invece che una pagina web.
All'apertura system-config-printer presenta una schermata vuota o che mostra le code di stampa installate. Le code di stampa installate sono state impostate automaticamente da cups-browsed o manualmente dall'utente. Se nessuna di queste voci fornisce una coda di stampa funzionante o la stampante attesa non viene mostrata, può essere necessario aggiungere un'altra coda.
L'aggiunta di un'altra coda di stampa è una questione di attivare il pulsante Aggiungi. Sotto è mostrato il risultato da questa azione quando una EPSON Stylus Photo RX420, una HP serie psc 1300 e una HP serie ENVY 4500 sono connesse via USB al computer:
Le differenze tra questa visualizzazione e ciò che è mostrato nell'interfaccia web CUPS sono piccole. Per esempio, la HP psc 1300 è mostrata solo una volta ma, se viene cliccata, verrano forniti due URI per la selezione. Come sopra, l'URI che inizia con hp:/usb è l'URI il cui uso è raccomandato. Anche dopo aver letto informazioni sulla interfaccia web di CUPS è bene ripetere che:
Per ciò che riguarda le stampanti moderne che comprendono il protocollo IPP-over-USB connesse via USB in bullseye: guardare sotto Stampanti di Rete e usare la connessione per IPP senza driver. Non ci si aspetti di ottenere una coda di stampa funzionante usando la voce della stampante nella prima sezione Dispositivi.
Stato della stampante
Scegliere una delle due opzioni sottostanti:
Opzione 1: LpStat
Per una visione completa sul fatto che lo schedulatore (cupsd) sia in esecuzione, quale sia la destinazione predefinita di sistema, se una coda locale stia accettando lavori e cosa debba ancora essere stampato, si può usare lpstat: per mostrare tutte le destinazioni disponibili (locali e remote).
In Debian 12
lpstat -t
In Debian 10
lpstat -l -e
Opzione 2: SystemCtl
Per vedere lo stato attuale dello schedulatore CUPS, usare sia sudo: sia systemctl:
In Debian 12
sudo systemctl status cups
Questa schermata mostra il risultato del comando sopra
Printer Control
Per visualizzare o impostare le opzioni e i valori predefiniti per la coda di stampa:
lpoptions -p <print_queue_name> -l
Fermare e avviare code di stampa; accettare e rifiutare compiti di stampa inviati a una destinazione:
cupsdisable <print_queue_name> cupsenable <print_queue_name> cupsaccept <print_queue_name> cupsreject <print_queue_name>
Annullare tutti i compiti in una destinazione e in aggiunta eliminare i file dei dati dei compiti:
cancel -a <print_queue_name> cancel -a -x <print_queue_name>
Stampare su un PDF
Lo scopo principale di un sistema di stampa è di mettere del toner o dell'inchiostro su un supporto ed avere un output che abbia un aspetto professionale e che sia adatto alle necessità dell'utente. Tuttavia i file prodotti in varie fasi del ?processo di filtraggio possono anch'essi essere interessanti e utili per un utente. Per esempio, in passato convertire un file in PDF da un'applicazione non era un compito semplice. Una soluzione era usare cups-pdf come stampante PDF virtuale nel dialogo di stampa dell'applicazione. Il PDF di output non veniva inviato ad una vera stampante ma memorizzato sul disco. Da allora molte applicazioni hanno acquisito l'opzione Stampa su PDF e Esporta in PDF nei loro dialoghi e la situazione è migliorata.
cups-pdf è un filtro di backend che accetta un file PostScript e lo converte in un PDF usando Ghostscript. Funziona insieme al sistema di filtraggio di CUPS che diventa responsabile della produzione del PostScript necessario usando /etc/cups/ppd/PDF.ppd e del suo passaggio al backend. Il pacchetto che contiene il backend è il PPD sono installati con
apt install printer-driver-cups-pdf
L'installazione imposta una coda di stampa con il nome PDF. La coda appare come una stampante nel dialogo di stampa di un'applicazione e nell'output di lpstat -t. La stampa dalla riga di comando viene fatta con
lp -d PDF <file_to_be_converted>
Il file PDF prodotto è archiviato nella directory PDF nella directory home dell'utente, creata dopo l'invio del primo compito di stampa.
Un PDF può permettere o meno ricerche al suo interno o la copia di testo da esso. I PDF prodotti da file PostScript inviati ad una coda normalmente hanno queste funzionalità; i PDF da file di testo non le hanno perché vengono prima filtrati attraverso texttopdf.
Metodi alternativi per la produzione di PDF possono basarsi sull'uso di cupsfilter e cups-tea4cups.
Stampa da client Linux, al server CUPS o via rete, dalla CLI
In questo esempio si ha un router, 2 computer (client e server) ed una stampante. I computer sono connessi al router, la stampante compatibile con Linux è connessa al server via USB ("fai una cosa e falla bene") e si desidera poter inviare cose alla stampante dal client attraverso la rete.
Anche se qualcuno può preferire la comodità della stampa senza driver per questa configurazione, altri possono preferire evitare firmware proprietario.
Il server deve essere già impostato con:
CUPS installato con apt install cups
CUPS in esecuzione - controllare service cups status
Una stampante aggiunta a CUPS (es. con hp-setup -i se si sta usando una stampante HP o direttamente usando lpadmin; le istruzioni variano con il produttore)
- La porta 631 non è bloccata (es. da un firewall o un indirizzo IP mancante)
Questo tutorial usa le seguenti variabili d'esempio e dovranno essere modificate per le proprie necessità:
IP del Server: 10.0.0.2
nome della stampante CUPS sul server: example_printer
utente client non root: example_user
Sul server, permettere le connessioni remote:
# cupsctl --remote-admin --remote-any --share-printers
Notare: questo comando fa modifiche alla configurazione in /etc/cups/ e riavvia il servizio CUPS
Si dovrebbe ora essere in grado di connettersi al server attraverso il client sulla rete, facendo una richiesta HTTP attraverso un browser web o curl a http://10.0.0.2:631
Ora, nel client, per poter inviare dati al server, installare il pacchetto CUPS e avviarlo:
# apt install cups # service cups start
Notare che il software CUPS è necessario sia nel server che nel client.
Dopo, nel client, per far sì che i comandi di stampa siano inviati al posto giusto, aggiungere quanto segue:
# echo 'ServerName 10.0.0.2' > /etc/cups/client.conf # chmod o+r /etc/cups/client.conf
Nota bene: il permesso o+r è essenziale per permettere agli utenti non root di stampare.
L'utente di esempio nel client deve essere aggiunto al gruppo lp:
# usermod -a -G lp example_user
Si dovrebbe essere ora in grado di vedere la stampante dal client, dall'utente d'esempio:
example_user $ lpstat -t scheduler is running device for example_printer: manufacturer_name:/usb/full_product_name
Ora, per stampare, basta semplicemente fare:
example_user $ lp -d example_printer file.pdf request id is example_printer-1 (1 file(s))
Nota importante: un server CUPS con un uso infrequente ha requisiti di processore/RAM/dischi molto bassi, perciò usare un computer efficiente dal punto di vista energetico.
CUPS come server di stampa per macchine Windows
Si può impostare CUPS per permettere a macchine Windows di stampare tramite un server CUPS usando un indirizzo http.
Come prima cosa installare il pacchetto samba. Quando viene chiesto se usare WINS, rispondere Sì.
$ apt install samba
Quindi configurare il proprio file /etc/cups/cupsd.conf.
# Our private connection we listen to Listen *:49631 # Allow machines on local network to use printers <Location /printers> Order allow,deny Allow 192.168.0.* Allow 192.168.1.* </Location>
Questo fa sì che si sia in ascolto sulla porta 49631 da qualsiasi rete. Si può usare un altro numero di porta oltre a 631. Si noti che porte dinamiche o private, come specificato da IANA sono nell'intervallo da 49152 a 65535. Inoltre, questo file permette solo ai computer nella rete locale di stampare con le stampanti CUPS.
Dopo aver fatto questo, riavviare il demone CUPS:
# service cups restart
Ora su ciascuna macchina Windows, scegliere l'installazione di una stampante di rete e quindi scegliere l'installazione di una stampante su Internet o sulla rete di casa o ufficio. L'URL da usare dovrebbe essere:
http://<nome_host_del_server_cups>:49631/printers/<nome_stampante>
Da ultimo, il driver da installare è nella sezione Generica con l'etichetta MS Publisher Color Printer.
CUPS e Samba
Questa sezione deve essere aggiornata perché è possibile impostare un server di stampa attraverso la condivisione di stampa samba semplicemente caricando i driver.
Quando si stampa su stampanti Windows in un dominio NT usando SMB, l'URI del device dovrebbe essere:
smb://nomeutente:password@nomehost/server/nomestampante
Ciò permette a Samba di fare l'autenticazione con un controllore del dominio per l'accesso alla coda di stampa.
Si può anche omettere la parte nomeutente:password@ quando il server non richiede autentificazione. Come nomehost vanno bene sia il nome di una macchina, sia un indirizzo IP. Per determinare il nomestampante si può usare lo strumento a riga di comando smbclient. Eseguire il comando seguente, dove nomecomputer si riferisce al nome della macchina che condivide la stampante:
smbclient -L nomecomputer
Controllare nell'output le voci con tipo (Type) "Printer"»:
$ smbclient -L base Sharename Type Comment --------- ---- ------- print$ Disk Druckertreiber HPOffice Printer HP Officejet J4500 Series ADMIN$ Disk Remoteadmin C$ Disk Standardfreigabe
L'URL risultante dall'output sovrastante sarebbe
smb://base/HPOffice
Quando si stampa con una stampante CUPS in Debian da una macchina che si connette attraverso Samba, potrebbe essere necessario impostare una classe CUPS per far sì che le cose funzionino.
Condivisione di stampa usando Macintosh come client e Debian come server
Se si ha una stampante su una macchina Debian e si vuole condividerla con un Macintosh, in modo che il Mac possa stampare con la stampante basata su Debian, provare quanto segue:
1. Usare CUPS per configurare la stampante in Debian come descritto sopra. Lo strumento Gnome di configurazione della stampante funziona bene e il modo sicuro al 100% è di usare la configurazione di CUPS tramite browser.
2. Sul Mac (OS X 10.4+) avviare "Print and Fax" dalle Preferenze di sistema. Usare il tasto + per aggiungere una stampante.
3. Cercare prima nella scheda "Default" (Predefinito). Se la condivisione automagica delle stampante ha funzionato e il Mac è connesso correttamente alla rete locale, allore la stampante Debian dovrebbe essere già visibile nell'elenco. Basta selezionarla e usare il driver di stampa raccomandato. L'esperienza di ciascuno può essere diversa, ma non si può sbagliare di molto se si sceglie un driver che corrisponde a quello che si sta usando in Debian. Perciò, per esempio, potrebbe essere utile provare ad usare i driver Gutenprint in entrambe le situazioni.
4. Se la propria stampante non è visibile nella scheda Default, allora provare ad aggiungerla nella scheda "IP". Scegliere IPP come protocollo, fornire il completo indirizzo IP del server nel riquadro per l'indirizzo e nel riquadro per la coda (Queue) inserire "printers/<nome-della-coda-in-debian>". Nei riquadri Nome e Posizione mettere qualsiasi cosa aiuti a ricordarsi quale stampante sia e scegliere un driver di stampa che corrisponda a quello che è stato usato per impostare la stampante in Debian. Da ultimo incrociare le dita, trattenere il respiro, recitare una preghiera/incantesimo/formula magica e premere il pulsante "Aggiungi".
Come si dice: le cose non sono uguali per tutti.
Stampare immagini
Le foto di qualità professionale possono essere ottenute utilizzando una carta fotografica lucida di alta qualità con una stampante a getto d'inchiostro, prestando attenzione al momento di presentare il lavoro di stampa. La stampa dal programma di fotoritocco The Gimp produce ottimi risultati. La finestra di dialogo di stampa varia a seconda della stampante utilizzata; le impostazioni più importanti sono: il tipo di carta, fotografica lucida o qualsiasi tipo si usi, e il tipo di immagine, "fotografia". Anche la dimensione dell'immagine stampata viene regolata nella finestra di dialogo della stampa.
Vedere anche
