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/
.
Pensez à éditer votre fichier ~/.kshrc
, afin de créer des alias qui
vous seront utiles, en ajoutant le code suivant :
for i in lpq lpr lprm; do alias $i=/usr/local/bin/$i; done
Vous pourrez ainsi les utiliser comme avant !
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 :
- Activer les services
cupsd cups_browsed
- puis les démarrer
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
Administration
Web
Cups, à ce moment, devrait être accessible par votre navigateur web préféré, par exemple Firefox , sur : http://localhost:631
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
- l’option
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 commandelpadmin
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.
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
Pour préserver ces changements, au prochain redémarrage, ajoutez la
commande à votre fichier /etc/[rc.local](http://man.openbsd.org/rc.local)
.
Bien-sûr, modifiez le numéro des périphériques ugen
et usb
utilisés.
Une autre méthode est d’utiliser les scripts attach
/detach
du service
hotplugd
!
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
/etc/rc.local
!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”.