Serveur d'impression

CUPS – ArchWiki – Bien choisir son serveur d impression

Le 2 mai 2019 - 8 minutes de lecture

CUPS est le système d'impression open source basé sur des normes développé par Apple Inc. pour macOS® et d'autres systèmes d'exploitation de type UNIX®.

Installation

Installez le tasses paquet.

Si vous souhaitez "imprimer" un document PDF, installez également le logiciel. cups-pdf paquet. Par défaut, les fichiers pdf sont stockés dans / var / spool / cups-pdf /Nom d'utilisateur/. L'emplacement peut être changé dans /etc/cups/cups-pdf.conf.

Activer et démarrer org.cups.cupsd.service.

Activation du socket

tasses fournit un org.cups.cupsd.socket unité. Si org.cups.cupsd.socket est activé (et org.cups.cupsd.service est désactivé), systemd ne lancera pas CUPS immédiatement, il écoutera simplement les sockets appropriés. Ensuite, chaque fois qu’un programme tente de se connecter à l’une de ces prises CUPS, systemd se lance. org.cups.cupsd.service et de transférer de manière transparente le contrôle de ces ports au processus CUPS.

Ainsi, CUPS ne démarre que lorsqu'un programme souhaite utiliser le service.

Interfaces de connexion

Des étapes supplémentaires pour la détection d’imprimante sont répertoriées ci-dessous pour diverses interfaces de connexion.

Remarque:

  • Les programmes d'assistance CUPS sont exécutés à l'aide du tasses utilisateur et groupe. Cela permet aux programmes d’aide d’accéder aux imprimantes et de lire les fichiers de configuration / etc / cups /, qui appartiennent à la tasses groupe.
  • Antérieur à tasses 2.2.6-2, le lp groupe a été utilisé à la place. Après la mise à niveau, les fichiers dans / etc / cups devrait appartenir à la tasses groupe et Utilisateur 209 et Groupe 209 s'installer /etc/cups/cups-files.conf.

USB

Pour voir si votre imprimante USB est détectée:

$ lsusb
(...)
Unité de bus 001 007: ID 03f0: 1004 Hewlett-Packard DeskJet 970c / 970cse

Port parallèle

Pour utiliser une imprimante à port parallèle, le lp, parport et parport_pc les modules du noyau sont requis.

$ dmesg | grep -i parport
    parport0: Imprimante, Hewlett-Packard HP LaserJet série 2100
 lp0: utilisation de parport0 (polling)

Réseau

Pour découvrir ou partager des imprimantes à l'aide de DNS-SD / mDNS, configurez la résolution du nom d'hôte .local avec Avahi, puis redémarrez. org.cups.cupsd.service.

Pour partager des imprimantes avec Samba, par exemple si le système doit être un serveur d'impression pour les clients Windows, le samba forfait sera nécessaire.

Pilotes d'imprimante

Les pilotes d’une imprimante peuvent provenir de l’une des sources indiquées ci-dessous. Voir Problèmes spécifiques à CUPS / Printer pour une liste incomplète des pilotes que d'autres ont réussi à faire fonctionner.

Pour conduire une imprimante, CUPS a besoin d’un fichier PPD et, pour la plupart des imprimantes, de filtres.
Pour plus de détails sur la manière dont CUPS utilise les fichiers PPD et les filtres, voir [1].

La liste des imprimantes OpenPrinting fournit des recommandations de pilotes pour de nombreuses imprimantes. Il fournit également des fichiers PPD pour chaque imprimante, mais la plupart d'entre eux sont disponibles via foomatic ou le package de pilotes recommandé.

Lorsqu'un fichier PPD est fourni à CUPS, le serveur CUPS régénère les fichiers PPD et les enregistre dans / etc / cups / ppd /.

CUPS

CUPS inclut la prise en charge des imprimantes AirPrint et IPP Everywhere.

Filtres OpenPrinting CUPS

Le groupe de travail OpenPrinting de la Linux Foundation fournit des filtres de tasses. Il s’agit de moteurs, de filtres et d’autres fichiers binaires qui faisaient autrefois partie de CUPS mais ne sont plus maintenus par Apple. Ils sont disponibles dans le filtres-tasses paquet qui est une dépendance de tasses.

Les imprimantes non PostScript nécessitent Ghostscript étre installé. Pour Ghostscript, gsfonts peut également être nécessaire.

Foomatic

Foomatic du groupe de travail OpenPrinting de la Linux Foundation fournit des fichiers PPD pour de nombreux pilotes d'imprimante, qu'ils soient libres ou non. Pour plus d'informations sur ce que fait foomatic, voir Foomatic du point de vue du développeur.

Pour utiliser foomatic, installez foomatic-db-engine et au moins un de:

Les fichiers PPD foomatic peuvent nécessiter des filtres supplémentaires, tels que min12xxwAUR.

Gutenprint

Le projet Gutenprint fournit des pilotes pour les imprimantes Canon, Epson, Lexmark, Sony, Olympus et PCL à utiliser avec CUPS et GIMP.

Installer gutenprint et foomatic-db-gutenprint-ppds.

Remarque: Lorsque les packages Gutenprint seront mis à jour, les imprimantes utilisant les pilotes Gutenprint cesseront de fonctionner jusqu'à ce que vous exécutiez cups-genppdupdate en tant que root et redémarrez CUPS. cups-genppdupdate mettra à jour les fichiers PPD des imprimantes configurées, voir cups-genppdupdate (8) pour plus de détails.

Pilotes spécifiques au fabricant

De nombreux fabricants d'imprimantes fournissent leurs propres pilotes Linux. Celles-ci sont souvent disponibles dans les dépôts officiels Arch ou dans l'AUR.

Certains de ces pilotes sont décrits plus en détail dans la section Problèmes spécifiques à CUPS / Printer.

URI de l'imprimante

La liste ci-dessous répertorie les étapes supplémentaires permettant de générer manuellement l'URI, si nécessaire. Certaines imprimantes ou pilotes peuvent nécessiter un URI spécial, comme décrit dans la section Problèmes spécifiques à CUPS / Imprimante.

USB

CUPS devrait pouvoir générer automatiquement un URI pour les imprimantes USB, par exemple usb: // HP / DESKJET% 20940C? série = CN16E6C364BH.

Si ce n'est pas le cas, consultez la rubrique CUPS / Dépannage # Imprimantes USB pour connaître les étapes de dépannage.

Port parallèle

L'URI doit être de la forme parallèle:dispositif. Par exemple, si l’imprimante est connectée le / dev / lp0, utilisation parallèle: / dev / lp0.
Si vous utilisez un adaptateur de port USB vers parallèle, utilisez parallèle: / dev / usb / lp0 en tant qu'URI d'imprimante.

Réseau

Si vous avez configuré Avahi comme dans #Network, CUPS devrait détecter l’URI de l’imprimante. Vous pouvez aussi utiliser avahi-découvrir pour trouver le nom de votre imprimante et son adresse (par exemple, BRN30055C6B4C7A.local / 10.10.0.155: 631).

L'URI peut également être généré manuellement, sans utiliser Avahi.
Une liste des schémas d'URI disponibles pour les imprimantes en réseau est disponible dans la documentation CUPS. Comme les détails exacts des URI diffèrent d’une imprimante à l’autre, consultez le manuel de l’imprimante ou les problèmes propres à CUPS / spécifiques à l’imprimante.

L’URI pour les imprimantes sur des partages SMB est décrit dans la section smbspool (8) page de manuel.

Les serveurs d’impression CUPS distants sont accessibles via un URI de la forme ipp: //nom d'hôte: 631 / imprimantes /nom_file. Voir Partage CUPS / Imprimante # Entre les systèmes GNU / Linux pour plus de détails sur la configuration du serveur d'impression distant.

Voir CUPS / Dépannage # Problèmes de réseau pour d'autres problèmes et solutions.

Attention: Évitez de configurer le serveur et le client avec un filtre d'imprimante – la file d'attente d'impression sur le client ou le serveur doit être «brute». Cela évite d’envoyer deux fois un travail d’impression à travers les filtres d’une imprimante, ce qui peut poser des problèmes (par exemple, [2]). Voir #Usage pour un exemple de définition d'une file d'impression sur "brute".

Usage

CUPS peut être entièrement contrôlé à l'aide des outils CLI lp * et cups *.
Vous pouvez également utiliser l’interface #Web ou l’une des applications #GUI.

  • le queue nom est un nom court mais descriptif utilisé sur le système pour identifier la file d'attente. Ce nom ne doit contenir ni espaces ni caractères spéciaux. Par exemple, une file d'attente d'impression correspondant à un HP LaserJet 5P pourrait s'appeler "hpljet5p". Plusieurs files d'attente peuvent être associées à chaque imprimante physique.
  • le emplacement est une description de l'emplacement physique de l'imprimante (par exemple "chambre" ou "cuisine"). Ceci aide à maintenir plusieurs imprimantes.
  • le la description est une description complète de la file d'attente d'impression. Une utilisation courante est le nom complet de l’imprimante (du type "HP LaserJet 5P").

Outils CLI

Voir la documentation locale de CUPS pour plus de conseils sur les outils de ligne de commande.

Remarque: Les commutateurs de ligne de commande ne peuvent pas être groupés

Tango-edit-clear.png "src =" http://wiki.archlinux.org/images/8/87/Tango-edit-clear.png "width =" 48 "height =" 48 "/><b>Cet article ou cette section nécessite des améliorations de la langue, de la syntaxe wiki ou du style. Voir Aide: Style pour référence.</b><img alt=

Raison: Utilisation non standard des listes de définitions, commentaires en ligne de commande. (Discuter en conversation: CUPS #)
Lister les appareils
# lpinfo -v
$ / usr / lib / cups / backend / snmp adresse IP  # Utiliser SNMP pour trouver un URI
Lister les modèles
$ lpinfo -m
Ajouter une nouvelle file d'attente
# lpadmin -p nom_file -E -v uri -m modèle

le nom_file C'est à toi de voir.
Exemples:

# lpadmin -p HP_DESKJET_940C -E -v "usb: // HP / DESKJET% 20940C? série = CN16E6C364BH" -m drv: ///HP/hp-deskjet_940c.ppd.gz
# lpadmin -p AirPrint -E -v "ipp: //10.0.1.25/ipp/print" -m partout # File d'attente sans pilote (Apple AirPrint ou IPP Everywhere)
# lpadmin -p SHARED_PRINTER -m raw # File d'attente brute; pas de PPD ou de filtre
# lpadmin -p Test_Printer -E -v "ipp: //10.0.1.3/ipp/print" -m pxlmono.ppd # Spécification d'un fichier PPD au lieu d'un modèle

Remarque: Lorsque vous spécifiez le fichier PPD, utilisez uniquement le nom du fichier et non le chemin complet (par exemple, pxlmono.ppd au lieu de /usr/share/ppd/cupsfilters/pxlmono.ppd)

Définir l'imprimante par défaut
$ lpoptions -d nom_file
Changer les options
$ lpoptions -p nom_file -l # Liste les options
$ lpoptions -p nom_file -o option=valeur # Définir une option

Exemple:

$ lpoptions -p HP_DESKJET_940C -o PageSize = A4
Vérifier le statut
$ lpstat -s
$ lpstat -p nom_file
Désactiver une imprimante
# cupsdisable nom_file
Activer une imprimante
# cupsenable nom_file
Configurez l'imprimante pour accepter les travaux.
# cupsaccept nom_file
Retirer une imprimante

Commencez par le configurer pour rejeter toutes les entrées entrantes:

# cupsreject nom_file

Puis désactivez-le.

# cupsdisable nom_file

Enfin le retirer.

# lpadmin -x nom_file
Imprimer un fichier
$ lpr fichier
$ lpr - # 17 fichier            # imprimer le fichier 17 fois
$ echo 'Bonjour tout le monde!' | lpr -p # affiche le résultat d'une commande. Le commutateur -p ajoute un en-tête.
Vérifier la file d'attente
$ lpq
$ lpq -a # sur toutes les files d'attente
Effacer la file d'attente
# lprm # supprime uniquement la dernière entrée
# lprm - # supprime toutes les entrées

interface Web

Le serveur CUPS peut être entièrement administré via l’interface Web, disponible sur http: // localhost: 631 /.

Remarque: Si une connexion HTTPS à CUPS est utilisée, elle peut très longtemps avant que l’interface apparaisse lors de son premier accès. En effet, la première demande déclenche la génération de certificats SSL, ce qui peut prendre beaucoup de temps.

Pour effectuer des tâches administratives à partir de l'interface Web, une authentification est requise. Authentifier soit en tant que racine ou assurez-vous que votre utilisateur est membre d'un groupe avec des privilèges d'administration d'imprimante, voir #Configuration.

Ajouter une file d'attente

Aller au Administration page.

Modifier les files d'attente existantes

Aller au Imprimantes page, et sélectionnez une file d'attente à modifier.

Tester une file d'attente

Aller au Imprimantes page et sélectionnez une file d'attente.

Applications graphiques

Si votre utilisateur ne dispose pas des privilèges suffisants pour administrer CUPS, les applications demanderont le mot de passe root à leur démarrage. Pour donner aux utilisateurs des privilèges administratifs sans avoir besoin d'un accès root, voir #Configuration.

  • GtkLP – Interface GTK + pour CUPS.
https://gtklp.sirtobi.com/index.shtml || gtklpAUR
  • gestionnaire d'impression – Outil de gestion des travaux d'impression et des imprimantes (KDE).
https://cgit.kde.org/print-manager.git || gestionnaire d'impression
  • système-config-imprimante – Outil de configuration d'imprimante GTK + et applet d'état.
http://cyberelk.net/tim/software/system-config-printer/ || système-config-imprimante

Configuration

La configuration du serveur CUPS se trouve dans /etc/cups/cupsd.conf et /etc/cups/cups-files.conf (voir cupsd.conf (5) et cups-files.conf (5)). Après avoir édité l'un ou l'autre fichier, redémarrez org.cups.cupsd.service appliquer les modifications. La configuration par défaut est suffisante pour la plupart des utilisateurs.

Les groupes d'utilisateurs dotés de privilèges d'administration d'imprimante sont définis dans SystemGroup dans le /etc/cups/cups-files.conf. le sys et racine les groupes sont utilisés par défaut.

tasses est construit avec libpaper support et libpaper par défaut à la Lettre taille de papier. Pour éviter de devoir modifier le format de papier pour chaque file d'attente d'impression ajoutée, éditez / etc / papersize et définissez le format de papier par défaut de votre système. Voir taille du papier (5).

Par défaut, tous les journaux sont envoyés aux fichiers dans / var / log / cups /. En changeant les valeurs du AccessLog, ErrorLog, et PageLog directives en /etc/cups/cups-files.conf à syslogIl est possible de faire en sorte que CUPS se connecte au journal systemd. Consultez la page wiki de Fedora pour plus d’informations sur le changement proposé à l’origine.

tasses feuilletées

Tango-view-refresh-red.png "src =" http://wiki.archlinux.org/images/2/28/Tango-view-refresh-red.png "width =" 48 "height =" 48 "/ ><b>Cet article ou cette section est obsolète.</b><img alt=

Raison: cups-browsed.service n'est pas obligé de découvrir les imprimantes annoncées sur DNS-SD, cela est fait par org.cups.cupsd.service. Ce service est uniquement requis pour détecter les imprimantes sur un serveur LDAP et celles utilisant le protocole CUPS hérité (serveurs CUPS ≤ 1,5). (Discuter en conversation: CUPS #)

CUPS peut utiliser la navigation Avahi pour découvrir des imprimantes partagées inconnues sur votre réseau. Cela peut être utile dans les grandes configurations où le serveur est inconnu. Pour utiliser cette fonctionnalité, configurez la résolution du nom d’hôte .local et démarrez les deux. avahi-daemon.service et cups-browsed.service. Les tâches sont envoyées directement à l'imprimante sans aucun traitement. Les files d'attente créées risquent donc de ne pas fonctionner. Toutefois, les imprimantes sans pilote telles que celles prenant en charge IPP Everywhere ou AirPrint doivent fonctionner telles quelles.

Serveurs d'impression et administration à distance

Voir Partage CUPS / Imprimante et Partage CUPS / Imprimante # Administration à distance.

Autoriser l'authentification de l'administrateur via PolicyKit

PolicyKit peut être configuré pour permettre aux utilisateurs de configurer des imprimantes à l'aide d'une interface graphique sans le mot de passe administrateur.

Voici un exemple qui permet aux membres du groupe d'utilisateurs Wheel d'administrer des imprimantes sans mot de passe:

/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules
polkit.addRule (fonction (action, sujet) 
    if (action.id == "org.opensuse.cupspkhelper.mechanism.all-edit" &&
        subject.isInGroup ("wheel")) 
        retourner polkit.Result.YES;
    
);

Sans serveur CUPS local

CUPS peut être configuré pour se connecter directement à des serveurs d'impression distants au lieu d'exécuter un serveur d'impression local. Cela nécessite l’installation du libcups paquet. Certaines applications nécessiteront encore la tasses paquet pour l'impression.

Attention: L'accès aux imprimantes distantes sans serveur CUPS local n'est pas recommandé par les développeurs. [3]

Pour utiliser un serveur CUPS distant, définissez le paramètre CUPS_SERVER variable d'environnement à printerserver.mydomain: port. Par exemple, si vous souhaitez utiliser un serveur d’impression différent pour une seule instance de Firefox (remplacez printserver.mydomain: port avec votre nom de serveur d’impression / port):

$ CUPS_SERVER = printserver.mydomain: port firefox

Dépannage

Voir CUPS / Dépannage.

Voir également

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.