CUPS (Français)
CUPS est le système d'impression open source basé sur des standards, développé par OpenPrinting pour Linux® et autres systèmes d'exploitation de type Unix®.
Arch Linux fournit le fork OpenPrinting de CUPS, pas le fork Apple de CUPS.
Installation
En option, installez le paquet cups-pdf si vous avez l'intention d'"imprimer" dans un document PDF. Par défaut, les fichiers PDF sont stockés dans /var/spool/cups-pdf/nom d'utilisateur/
. L'emplacement peut être modifié dans /etc/cups/cups-pdf.conf
.
Puis activez et démarrez cups.service
ou alternativement utilisez l'activation par socket pour ne démarrer CUPS que lorsqu'un programme veut utiliser le service.
Activation par socket
cups fournit une unité cups.socket
. Si cups.socket
est activé (et cups.service
est désactivé), systemd ne démarrera pas CUPS immédiatement ; il écoutera simplement les sockets appropriés. Ensuite, chaque fois qu'un programme tentera de se connecter à l'un de ces sockets CUPS, systemd lancera cups.service
et transmettra de manière transparente le contrôle de ces ports au processus CUPS.
Étapes d'impression
Il est important de savoir comment CUPS fonctionne si l'on veut résoudre des problèmes connexes :
- Une application envoie un fichier PDF à CUPS lorsque l'option 'imprimer' a été sélectionnée (si l'application envoie un autre format, il est d'abord converti en PDF).
- CUPS examine ensuite le fichier PPD (fichier de description de l'imprimante) de l'imprimante et détermine les filtres qu'il doit utiliser pour convertir le fichier PDF dans un langage que l'imprimante comprend (comme PJL, PCL, bitmap ou PDF natif).
- Le filtre convertit le fichier PDF dans un format compris par l'imprimante.
- Puis il est envoyé au back-end. Par exemple, si l'imprimante est connectée à un port USB, elle utilise le back-end USB.
Interfaces de connexion
Les étapes supplémentaires pour la détection de l'imprimante sont listées ci-dessous pour les différentes interfaces de connexion.
USB
Pour consulter si votre imprimante USB est détectée, assurez-vous que le paquet usbutils est installé, puis :
$ lsusb
(...) Bus 001 Device 007 : ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse
Port parallèle
Pour utiliser une imprimante par port parallèle, les modules du noyau lp
, parport
et parport_pc
sont nécessaires.
# dmesg | grep -i parport
parport0 : Imprimante, Hewlett-Packard HP LaserJet 2100 Series lp0 : utilise parport0 (interrogation)
Réseau
Pour découvrir, utiliser des imprimantes découvertes ou partager des imprimantes à l'aide de DNS-SD/mDNS, configurez résolution des noms d'hôtes .local avec Avahi et redémarrez cups.service
.
Pour partager des imprimantes avec Samba, par exemple si le système doit être un serveur d'impression pour les clients Windows, le paquet samba sera nécessaire.
Pilotes d'imprimante
Les pilotes d'une imprimante peuvent provenir de n'importe quelle source indiquée ci-dessous. Consultez CUPS/Printer-specific problems pour une liste incomplète de pilotes que d'autres ont réussi à faire fonctionner.
Pour piloter une imprimante, CUPS a besoin d'un fichier PPD et, pour la plupart des imprimantes, de quelques filtres. Pour plus de détails sur la façon dont CUPS utilise les PPDs et les filtres, consultez [1].
La Liste d'imprimantes OpenPrinting fournit des recommandations de pilotes pour de nombreuses imprimantes. Elle fournit également des fichiers PPD pour chaque imprimante, mais la plupart sont disponibles via foomatic ou le paquet 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/
.
Pour tester s'ils fonctionnent avant de créer un PKGBUILD, les fichiers PPD peuvent être ajoutés manuellement à /usr/share/cups/model
, le pilote devrait être disponible après le prochain redémarrage du service cups.
CUPS
CUPS prend en charge les imprimantes AirPrint et IPP Everywhere.
Filtres OpenPrinting CUPS
Le groupe de travail OpenPrinting de la Fondation Linux fournit cups-filters. Ce sont des back-ends, des filtres et d'autres binaires qui faisaient autrefois partie de CUPS mais qui ont été abandonnés par le projet. Ils sont disponibles dans le paquet cups-filters qui est une dépendance de cups.
Les imprimantes non-PDF nécessitent l'installation de ghostscript. Pour les imprimantes PostScript, gsfonts peut également être nécessaire.
Foomatic
Le groupe de travail OpenPrinting de la Fondation Linux foomatic fournit des PPD pour de nombreux pilotes d'imprimante, libres ou non. Pour plus d'informations sur ce que fait foomatic, consultez Foomatic du point de vue du développeur.
Pour utiliser foomatic, installez foomatic-db-engine et au moins un des éléments suivants :
- foomatic-db - une collection de fichiers XML utilisés par foomatic-db-engine pour générer des fichiers PPD.
- foomatic-db-ppds - fichiers PPD pré-construits.
- foomatic-db-nonfree - une collection de fichiers XML provenant de fabricants d'imprimantes sous licences non-libres utilisés par foomatic-db-engine pour générer des fichiers PPD.
- foomatic-db-nonfree-ppds - fichiers PPD pré-construits sous des licences non-libres.
Les PPD de foomatic peuvent nécessiter des filtres supplémentaires, tels que min12xxwAUR.
Gutenprint
Le Gutenprint project fournit des pilotes pour les imprimantes Canon, Epson, Lexmark, Sony, Olympus et PCL à utiliser avec CUPS et GIMP.
Installez gutenprint et foomatic-db-gutenprint-ppds.
cups-genppdupdate
en tant que root et redémarriez CUPS. cups-genppdupdate mettra à jour les fichiers PPD des imprimantes configurées, consultez cups-genppdupdate(8) pour plus de détails.Pilotes spécifiques aux fabricants
De nombreux fabricants d'imprimantes fournissent leurs propres pilotes Linux. Ceux-ci sont souvent disponibles dans les dépôts officiels d'Arch ou dans l'AUR.
Certains de ces pilotes sont décrits plus en détail dans CUPS/Printer-specific problems.
URI de l'imprimante
Vous trouverez ci-dessous des étapes supplémentaires pour générer manuellement l'URI si nécessaire. Certaines imprimantes ou pilotes peuvent nécessiter un URI spécial, comme décrit dans CUPS/Printer-specific problems.
USB
CUPS devrait être capable de générer automatiquement un URI pour les imprimantes USB, par exemple usb://HP/DESKJET%20940C?serial=CN16E6C364BH
.
Si ce n'est pas le cas, consultez CUPS/Troubleshooting#USB printers pour connaître les étapes de dépannage.
Port parallèle
L'URI doit être de la forme parallel:device
. Par exemple, si l'imprimante est connectée sur /dev/lp0
, utilisez parallel:/dev/lp0
. Si vous utilisez un adaptateur USB vers port parallèle, utilisez parallel:/dev/usb/lp0
comme URI de l'imprimante.
Réseau
Si vous avez configuré Avahi comme dans #Réseau, CUPS devrait détecter l'URI de l'imprimante. Vous pouvez également utiliser avahi-discover
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 URI disponibles pour les imprimantes en réseau est disponible dans la documentation CUPS. Comme les détails exacts des URI diffèrent selon les imprimantes, consultez le manuel de l'imprimante ou CUPS/Printer-specific problems.
L'URI pour les imprimantes sur les partages SMB est décrit dans la page de manuel smbspool(8).
lpadmin : Bad device-uri
.
Par exemple, smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6
devient smb://BEN-DESKTOP/HP%20Color%20LaserJet%20CP1510%20series%20PCL6
.
La chaîne de caractères peut être obtenue en exécutant la commande suivante :
$ python -c 'from urllib.parse import quote ; print("smb://" + quote("BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6"))
Les serveurs d'impression CUPS distants sont accessibles via une URI de la forme ipp://hostname:631/printers/queue_name
. Consultez CUPS/Printer sharing#Printer sharing pour plus de détails sur la configuration du serveur d'impression distant.
Consultez CUPS/Troubleshooting#Networking issues pour d'autres problèmes et solutions.
Utilisation
CUPS peut être entièrement contrôlé en utilisant les outils CLI lp* et cups*. Sinon, l'#Interface Web ou l'une des nombreuses #Interfaces graphiques peut être utilisée.
- Le nom de la queue (file d'attente) est un nom court mais descriptif utilisé sur le système pour identifier la queue. Ce nom ne doit pas contenir d'espaces ou de caractères spéciaux. Par exemple, une file d'attente d'impression correspondant à une HP LaserJet 5P pourrait être nommée "hpljet5p". Plus d'une file d'attente peut être associée à chaque imprimante physique.
- L'emplacement est une description de l'emplacement physique de l'imprimante (par exemple "chambre", ou "cuisine"). Ceci permet de faciliter la gestion de plusieurs imprimantes.
- La description est une description complète de la file d'attente d'impression. Une utilisation courante est le nom complet de l'imprimante (comme "HP LaserJet 5P").
Outils CLI
Consultez documentation locale CUPS pour plus d'informations sur les outils de la ligne de commande.
Utilisez SNMP pour trouver un URI :
$ /usr/lib/cups/backend/snmp ip_address
lp*
L'utilitaire lpinfo liste les périphériques avec le paramètre -v
, et les modèles avec le paramètre -m
.
L'utilitaire lpadmin crée une nouvelle file d'attente avec -p queue_name
. Le paramètre -E
ajouté à -p
active et accepte les travaux sur l'imprimante. L'indicateur -v
spécifie l'URI du périphérique, l'indicateur -m
spécifie le modèle ou le fichier PPD à utiliser.
Vous pouvez également utiliser le paramètre -x
pour supprimer une imprimante (lisez au préalable la section ci-dessous).
Exemples :
# lpadmin -p HP_DESKJET_940C -E -v "usb://HP/DESKJET%20940C?serial=CN16E6C364BH" -m drv:///HP/hp-deskjet_940c.ppd.gz
Pour une file d'attente sans pilote (Apple AirPrint ou IPP Everywhere) :
# lpadmin -p AirPrint -E -v "ipp://10.0.1.25/ipp/print" -m everywhere
Pour une file d'attente brute ; sans PPD ni filtre :
# lpadmin -p SHARED_PRINTER -m raw
En spécifiant un PPD au lieu d'un modèle :
# lpadmin -p Test_Printer -E -v "ipp://10.0.1.3/ipp/print" -m pxlmono.ppd
- Lorsque vous spécifiez le 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
). Le chemin complet peut également être utilisé avec le paramètre de ligne de commande-P
. - En 2021, de nombreuses imprimantes récentes prennent en charge l'impression sans pilote et lorsque vous spécifiez
-m partout
, comme dans le deuxième exemple ci-dessus, l'imprimante sera définie et un fichier .ppd sera créé dans/etc/cups/ppd/
en interrogeant l'imprimante sur le réseau.
L'utilitaire lpq vérifie la file d'attente. Ajoutez le paramètre -a
pour vérifier toutes les files d'attente.
L'utilitaire lprm efface la file d'attente. Ajoutez un -
pour supprimer toutes les entrées au lieu de seulement la dernière par défaut.
L'utilitaire lpr imprime. Utilisez -# N
pour imprimer le fichier N fois, utilisez le paramètre -p
pour ajouter un en-tête.
Exemples d'impressions de test avec lpr :
$ lpr /usr/share/cups/data/testprint $ echo 'Hello, world!' | lpr -p
L'utilitaire lpstat, utilisé avec le paramètre -s
, vérifie l'état. Le paramètre -p
permet de spécifier la file d'attente à vérifier.
L'utilitaire lpoptions utilise le même paramètre -p queue_name
que lpadmin montré ci-dessus. Avec le paramètre -l
, il liste les options. Le paramètre -d
définit l'imprimante par défaut avec l'argument queue_name
. Le paramètre -o
définit les options à une valeur :
$ lpoptions -p HP_DESKJET_940C -o PageSize=A4 $ lpoptions -p HP_DESKJET_940C -o cupsIPPSupplies=true -o Duplex=DuplexNoTumble
cups*
Les utilitaires cupsaccept, cupsdisable, cupsenable et cupsreject exécutent ce pour quoi ils sont nommé en anglais. Respectivement : paramétrer l'imprimante pour accepter des travaux, désactiver une imprimante, activer une imprimante, paramétrer l'imprimante pour rejeter toutes les tâches entrantes.
Pour illustrer leur utilisation, nous allons supprimer proprement une imprimante :
# cupsreject queue_name # cupsdisable queue_name # lpadmin -x queue_name
encre
Installez inkAUR pour visualiser les niveaux d'encre.
Ajoutez votre utilisateur au groupe d'utilisateurs lp
supplémentaire, déconnectez-vous et reconnectez-vous.
Pour obtenir des informations sur l'utilisation, exécutez ink
sans options.
Interface Web
Le serveur CUPS peut être entièrement administré via l'interface Web, disponible sur http://localhost:631/.
Pour effectuer des tâches administratives à partir de l'interface web, une authentification est nécessaire ; consultez #Permissions.
- Ajouter une file d'attente
Allez sur la page Administration.
- Modifier des files d'attente existantes
Allez sur la page Imprimantes, et sélectionnez une file d'attente à modifier.
- Tester une file d'attente
Allez à la page Imprimantes, et sélectionnez une file d'attente.
Interfaces graphiques
Si votre utilisateur ne dispose pas de privilèges suffisants pour administrer CUPS, les applications demanderont le mot de passe root lors de leur démarrage. Pour donner aux utilisateurs des privilèges d'administration sans avoir besoin de l'accès root, consultez #Configuration.
- Deepin Print Manager — Interface de configuration de l'imprimante pour le bureau Deepin.
- GtkLP — Interface GTK pour CUPS.
- print-manager — Outil de gestion des travaux d'impression et des imprimantes (KDE).
- system-config-printer — Outil de configuration de l'imprimante et applet d'état GTK.
Configuration
La configuration du serveur CUPS se trouve dans /etc/cups/cupsd.conf
et /etc/cups/cups-files.conf
. (consultez cupsd.conf(5) et cups-files.conf(5)). Après avoir modifié l'un ou l'autre de ces fichiers, redémarrez cups.service
pour appliquer les changements. La configuration par défaut est suffisante pour la plupart des utilisateurs.
Permissions
Les groupes d'utilisateurs ayant des privilèges d'administration d'imprimante sont définis dans SystemGroup
dans le fichier /etc/cups/cups-files.conf
. Les groupes sys
, root
et wheel
sont utilisés par défaut.
Les programmes d'aide CUPS sont exécutés sous l'utilisateur et le groupe cups
. Cela permet aux programmes d'aide d'accéder aux périphériques d'impression et de lire les fichiers de configuration dans /etc/cups/
, qui appartiennent au groupe cups
.
lp
était utilisé à la place. Après la mise à jour, les fichiers de /etc/cups
devraient appartenir au groupe cups
et User 209
et Group 209
définis dans /etc/cups/cups-files.conf
.Format de papier par défaut
cups est compilé avec la prise en charge de libpaper et libpaper utilise par défaut le format de papier Letter (appelé PageSize
dans lpoptions
). Pour éviter d'avoir à changer la taille du papier pour chaque file d'impression que vous ajoutez, modifiez /etc/papersize
et définissez le format de papier par défaut de votre système. Consultez paper(1).
Fichiers journaux
Par défaut, tous les journaux sont envoyés vers des fichiers dans /var/log/cups/
. En changeant les valeurs des directives AccessLog
, ErrorLog
, et PageLog
dans /etc/cups/cups-files.conf
en syslog
, CUPS peut être amené à envoyer les journaux dans le journal de systemd à la place. Consultez Fedora:Changes/CupsJournalLogging pour des informations sur le changement proposé à l'origine.
cups-browsed
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 installations où le serveur est inconnu. Pour utiliser cette fonctionnalité, configurez résolution du nom d'hôte .local et démarrez avahi-daemon.service
et cups-browsed.service
. Les travaux sont envoyés directement à l'imprimante sans aucun traitement, de sorte que les files d'attente créées peuvent ne pas fonctionner, mais les imprimantes sans pilote telles que celles prenant en charge IPP Everywhere ou AirPrint devraient fonctionner d'emblée.
- La recherche d'imprimantes réseau peut augmenter considérablement le temps de démarrage de votre ordinateur.
-
cups-browsed.service
n'est nécessaire que pour ajouter et supprimer dynamiquement des imprimantes lorsqu'elles apparaissent et disparaissent d'un réseau. Il n'est pas nécessaire si vous souhaitez simplement ajouter une imprimante réseau prenant en charge le DNS-SD/mDNS à CUPS.
Serveurs d'impression et administration à distance
Consultez CUPS/Printer sharing et CUPS/Printer sharing#Remote administration.
Autoriser l'authentification de l'administrateur via PolicyKit
PolicyKit peut être configuré pour permettre aux utilisateurs de configurer les 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 les imprimantes sans mot de passe :
/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules
polkit.addRule(function(action, subject) { si (action.id == "org.opensuse.cupspkhelper.mechanism.all-edit" && subject.isInGroup("wheel")){ return 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 paquet libcups. Certaines applications nécessiteront toujours le paquet cups pour l'impression.
Pour utiliser un serveur CUPS distant, définissez la variable d'environnement CUPS_SERVER
à 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
par le nom/port de votre serveur d'impression) :
$ CUPS_SERVER=printserver.mydomain:port firefox
Pour rendre cette configuration permanente, créez le fichier de configuration /etc/cups/client.conf
et ajoutez-y le nom d'hôte du serveur CUPS distant :
ServerName server
Vous pouvez également spécifier un port personnalisé :
ServerName server:port
Consultez [4] pour plus de détails.
Dépannage
Consultez l'article anglais CUPS/Troubleshooting.
Voir aussi
- Documentation officielle de CUPS, installée localement
- Wikipedia:CUPS
- Page d'accueil OpenPrinting
- Guide d'impression d'OpenSuSE Concepts - explique une impression de A à Z.
- «OpenSuSE CUPS in a Nutshell» - un rapide aperçu de CUPS
- Gentoo:Printing
- portail de l'impression de Debian - guides techniques détaillés
- Portail de l'impression de Debian - une vue de base du système d'impression CUPS.
- Liste de diffusion CUPS[dead link 2024-11-05 ⓘ]
- Liste de diffusion CUPS (fork d'Apple)
- Suivi des problèmes de CUPS.
- Suivi des problèmes de CUPS (fork d'Apple)