%
Puffy image/svg+xml Puffy 2019-06-14 Stéphane HUC OpenBSD Team Inkscape Puffy OpenBSD https://www.openbsd.org/art4.html English "Puffy", it's a symbol of OpenBSD

Cups : Gestion de l'impression sous OpenBSD

Article publié, le et modifié le
5 minutes de lecture

Cet article contient 944 mots.
Source brute de l'article :
Commit version : e1fc393

Description

CUPS fournit un calque d’impression portable pour les systèmes d’exploitation basés sur UNIX. CUPS fournit des interfaces en ligne de commande de System V et Berkeley.

CUPS utilise IPP (Protocole d’Impression Internet) comme bases pour gérer les queues et travaux d’impressions. Les protocoles des services LPD, SMB et AppSocket (tel que JetDirect) sont supportés avec des fonctionnalités réduites.

CUPS ajoute la recherche d’imprimantes réseaux et PPD (Description d’Imprimante PostScript) basé sur les options d’impression supportées dans le monde réel sous UNIX.

Installation

Installez les paquets : cups cups-filters cups-libs foomatic-db gutenprint (cups-pdf en option)

Configuration

⇒ Depuis OpenBSD 6.5 : la version du driver Gutenprint a changé (v5.3.x au lieu de v5.2.x) ; modifiez les paramètres de l’imprimante pour lui changer le pilote vers cette nouvelle version !

shell

Depuis OpenBSD 6.2, les binaires lpq, lpr, et lprm ne sont plus liés symboliquement à /usr/bin. Il est nécessaire de les utiliser en les préfixant de /usr/local/bin/.

Astuce

Découverte des services multicast

Pour la découverte des services multicast - mDNS (de type Avahi (Découverte de services multicast DNS), Bonjour, …)

Cups

Il nous faut :

Règles PF

Voici les règles pare-feu si besoin :

  • pour l’accès à l’interface web de Cups : pass in on egress proto tcp from egress:network to egress port 631 flags S/SA modulate state
Info

Administration

Web

Cups, à ce moment, devrait être accessible par votre navigateur web préféré, par exemple Firefox , sur : http://localhost:631

Info

Console

  • cupsctl : # cupsctl --share-printers
  • lpadmin : # lpadmin -E -p printer_name -o printer-is-shared=false
    • l’option -E active le chiffrement des données avec le service ; elle est intégrée aussi aux autres outils ci-dessous.
    • l’option printer-is-shared permet de partager ou non l’imprimante ; true autorise, false ne le permet pas
  • lpoptions : affiche les options d’une imprimante
    • -l : version détaillée
  • lpstat : outil pour obtenir les informations sur les imprimantes ou le serveur Cups
    • -l : affiche une liste détaillée des imprimantes, des travaux d’impression, etc.
    • -p : restitue toutes les informations de toutes les imprimantes configurées ; pour cibler une seule, il suffit de donner son nom en argument de l’option, tel que dans la commande lpadmin ci-dessus.
    • -r : l’état du serveur Cups
    • -t : restitue toutes les informations d’état

À toutes ces commandes, il existe pléthore d’options, veuillez lire les manpages correspondants.

Les deux premières commandes doivent avoir des droits d’administration, ce qui n’est pas le cas des deux autres.

Interface Graphique

Pour gérer les imprimantes en mode graphiques, il est nécessaire d’installer les packages suivants : gtk+2-cups, gtk+3-cups et/ou gtk+4-cups selon votre bureau graphique.

Info

Gestion

USB

Détection Imprimante USB

Pour détecter votre imprimante usb, connectez-la sur un port usb, en premier, puis exécuter dans un terminal, la commande suivante :

# usbdevs -vd
Controller /dev/usb3:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x8086), rev 1.00
uhub3
port 1 powered
port 2 addr 2: full speed, self powered, config 1, USB MFP(0x082f), EPSON(0x04b8), rev 1.00, iSerialNumber L83010704250947490
ugen0

Il faut repérer sur la ligne Controller /dev/usb quel numéro est affiché au périphérique ugen et usb, puis donner à ce périphérique les droits nécessaires - dans ce cas-là :

# chown _cups /dev/ugen0.* /dev/usb3

ou pour une MFP (avec scanner intégré :

# chown _cups:_saned /dev/ugen0.* /dev/usb3
# chmod 0660/dev/ugen0.* /dev/usb3
Astuce

Configuration Imprimante USB

Pour pouvoir utiliser correctement votre imprimante sur port usb, il est nécessaire de désactiver ulpt(4) du noyau (cf: [config(8)]http://man.openbsd.org/config.8)), autrement votre imprimante ne sera pas “visible”, car non disponible par le biais de la bibliothèque libusb.

Depuis OpenBSD 7.0, il suffit de remplir/créer le fichier /etc/bsd.re-config avec : disable ulpt

# echo 'disable ulpt' >>/etc/bsd.re-config

puis redémarrer la machine !


Avant OpenBSD 7.0 :

Pour cela, tapez : # printf 'disable ulpt\nq\n' | config -ef /bsd

Puis, relinker le noyau : # sha256 /bsd >/var/db/kernel.SHA256


Port parallèle

Pour pouvoir imprimer sur une imprimante port parallèle, le service cups a besoin d’avoir accès aux périphériques spécifiques.

Exécutez la commande suivante : chown _cups /dev/lp[a,t]0

Astuce

Imprimante partagée

Par mDNS

Il est nécessaire qu’Avahi (Découverte de services multicast DNS) soit installé et fonctionnel ; de même, le service cups_browsed doit être actif sur votre station !

Elle peut être administrée soit par l’interface d’administration web de Cups, soit avec des droits administrateurs…

En utilisant DNS-SD

Veuillez lire le fichier pkg-readme de cups !


Documentation

Après l’installation, n’oubliez pas de lire le fichier :

  • /usr/local/share/doc/pkg-readmes/cups,
  • /usr/local/share/doc/pkg-readmes/cups-filters,
  • et au cas où : /usr/local/share/doc/pkg-readmes/cups-pdf, ainsi que sous /usr/local/share/doc/cups-pdf/README.
  • voire aussi : /usr/local/share/doc/pkg-readmes/foomatic-db-engine.

manpage

Depuis OpenBSD 6.2, l’accès aux pages de manuel est sensiblement différent :

man -m /usr/local/man lpr

Cela est vrai pour les binaires lpq, lpr et lprm !


Historique

J’ai écrit historiquement cette documentation sur le wiki de la communauté “OpenBSD Pour Tous”.