CUPS

De ArchwikiFR


Depuis le site de CUPS:

«CUPS est le système d'impression opensource basé sur des normes et développé par Apple Inc pour OS®X et autres systèmes d'exploitation UNIX®-like.»

Bien qu'il existe d'autres méthodes d'impression tels que LPRNG, Common Unix Printing System est le choix le plus populaire en raison de sa relative facilité d'utilisation.

Sommaire

Installation

Il y a deux façons d'installer une imprimante:

  • si un serveur CUPS tourne sur votre réseau et partage une imprimante, vous aurez seulement besoin du module client.
  • si l'imprimante est connectée directement à votre système ou si vous avez accès à une imprimante réseau IPP alors installez un serveur CUPS local.

Installation du client

Le paquet libcups est le seul paquet requis. Installez-le à partir des dépôts officiels:

pacman -S libcups

Puis ajoutez l'adresse IP de votre serveur CUPS ou le nom d'hôte dans le fichier /etc/cups/client.conf. Toutes les applications devraient trouver l'imprimante partagée par ce serveur CUPS.

Installation du serveur

Vous devez au moins installer les paquets cups, ghostscript et le pilote pour votre imprimante:

pacman -S cups ghostscript
Note: Si vous souhaitez accéder à votre imprimante via le réseau, installez également avahi. Vérifiez que le démon avahi-daemon soit lancé avant cupsd (voir également ci-dessous Démarrer CUPS).
Note: Si le système est connecté à une imprimante réseau utilisant le protocole Samba ou si le système est un serveur d'impression pour des clients Windows, alors installez également samba.

Pilotes d'impression

Voici une liste non exhaustive des paquets de pilotes:

  • gutenprint - une collection de pilotes de haute qualité pour Canon, Epson, Lexmark, Sony, Olympus et PCL pour une utilisation avec GhostScript, CUPS, Foomatic, et GIMP
  • foomatic-db, foomatic-db-engine, foomatic-db-nonfree et foomatic-filters - L'installation de foomatic-filters devrait résoudre des problèmes si le fichier error_log rapporte une erreur "stopped with status 22!".
  • foo2zjs (disponible sur AUR) - pilotes pour le protocole ZjStream comme la HP Laserjet 1018. Plus d'infos ici.
  • hplip - Pilotes HP pour DeskJet, OfficeJet, Photosmart, Business Inkjet et quelques modèles de LaserJet aussi bien qu'un certain nombre d'imprimantes Brother.
  • splix - pilotes Samsung pour SPL (Samsung Printer Language)
  • samsung-unified-driver (disponible sur AUR) - Pilote Linux Unifié pour imprimantes et scanners Samsung. Requis pour de nouveaux modèles comme la ML-2160.
  • cndrvcups-lb (disponibles sur AUR) - pilote Canon UFR2 avec support pour les imprimantes des séries LBP, iR and MF.
  • epson-inkjet-printer-escpr (disponibles sur AUR) - une collection de pilotes pour les imprimantes Epson qui inclue l'outil escputil (qui permet le nettoyage et l'alignement des têtes d'impression, connaître le niveau des cartouches d'encre…).
Astuce: Choisir le bon pilote dépend de l'imprimante et certains paquets peuvent être trompeurs (utiliser hplip pour une Brother ne coule pas de source par exemple). Vous devriez pouvoir cerner ce qui convient à l'aide de la base de données d'openprinting.org.
Astuce: Pensez également à parcourir AUR à l'aide de votre modèle d'imprimante, un certain nombre de pilotes supplémentaires y sont présents.

Configuration du serveur

Modules kernel

Imprimantes USB

Vérifier simplement que le module usblp est chargé avec lsmod :

lsmod | grep usblp

Branchez votre imprimante et consultez les dernières lignes de dmesg pour savoir si votre imprimante est détectée:

# dmesg
[14853.493460] usb 2-1.4: new full-speed USB device number 4 using ehci_hcd
[14853.917713] usblp 2-1.4:1.0: usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x1A86 pid 0x7584
[14853.917747] usbcore: registered new interface driver usblp
Note: Certaines imprimantes étaient récalcitrantes et nécessitaient parfois de blacklister le module usblp. Ceci ne devrait plus être le cas depuis cups >= 1.6.0. Si vous rencontrez néanmoins ce cas, merci de rapporter le bug.

Imprimantes parallèle

Pour une imprimante branchée sur un port parallèle, vérifiez avec la commande lsmod que les modules lp, parport et parport_pc sont bien chargés. Si ce n'est pas le cas, veillez à les charger.

Démarrer CUPS

Le serveur peut-être démarré de la même façon que tout autre service avec systemd.

Pour la session en cours:

systemctl start cups

Et pour que le serveur se lance automatiquement à chaque démarrage:

systemctl enable cups
Note: Démarrer également le service avahi-daemon si vous avez besoin de retrouver votre imprimante sur le réseau:
systemctl start avahi-daemon 

ou au démarrage:

systemctl enable avahi-daemon

Administration

Interface web et trousse à outils

Une fois le service démarré, ouvrez un navigateur à l'adresse http://localhost:631 .

Depuis l'onglet Administration, vous devriez pouvoir ajouter votre imprimante, indiquer le pilote à utiliser, etc. et tester cette configuration (par exemple avec l'impression d'une page de test).

Note: Par défaut vous pouvez administrer cups depuis cette interface avec root et son mot de passe (si le compte root est actif).
L'imprimante n'est pas reconnue dans imprimantes locales

Il se peut que l'imprimante ne soit pas reconnue dans l'interface de Cups (imprimantes locales). Ceci est dû au fait que le noyau cré un composant qui se trouve dans /dev/usb/lp0. Une règles udev résout ce problème et permet de faire un lien symbolique /dev/lp0 -> /dev/usb/lp0.

Débranchez votre imprimante et arrêtez Cups

systemctl stop cups

Créez le fichier avec le contenu suivant :

Fichier: /etc/udev/rules.d/10-cups_device_link.rules
KERNEL=="lp[0-9]", SYMLINK+="%k", GROUP="lp"

Rechargez ensuite les règles udev

udevadm control --reload-rules

Assurez-vous que le module usblp est bien chargé (commande juste au dessus), rebranchez votre imprimante et rédémarrez Cups

systemctl start cups

Identification

Par défaut, tout membre du groupe sys peut administrer cups (ce comportement est défini par SystemGroup dans /etc/cups/cups-files.conf).

Note: À distinguer du groupe lp qui permet à un utilisateur de gèrer ses impressions.

Debug

Les journaux de cups sont situés dans /var/log/cups/:

  • access_log: enregistre l'activité sur l'interface web;
  • error_log: enregistre différents niveaux d'informations:
    • D=Debug (debug)
    • E=Error (erreur)
    • W=Warning (avertissement)
    • I=Info (informatif)
    • etc.
Note: Le niveau de sortie est établi par LogLevel dans /etc/cups/cupsd.conf, (voir man cupsd.conf). Passez-le à debug lorsque vous avez besoin d'identifier un problème d'impression.
  • page_log: enregistre une nouvelle entrée à chaque impression réussie.
Outils personnels
Autres langues