Partage d'une imprimante et d'un scanner (Archlinux - sytemd)
SANE (Scanner Access Now Easy), l'interface de gestion de scanner sous Linux, tout comme CUPS (Common Unix Printing System), le système d'impression, permettent le partage des périphériques sur un réseau. Ceci ce fait assez facilement à condition de faire les choses dans l'ordre. Et sous Archlinux, à contrario des distributions dites "grand public", vous devrez le faire vous-même. Voici à titre d'exemple la mise en la mise en œuvre d'une imprimante multifonction HP phostomart 3100.
- Installation de l'imprimante
- Installation du scanner
- Partage de l'imprimante
- Installation sur le client
- Partage du scanner
- Installation sur le client
Installation de l'imprimante
Il faut d'abord installer les paquets cups, ghostscript et le pilote pour votre imprimante (ici hplip).
$ yaourt -S cups ghostscript hplip
Pour connaître le driver pour votre imprimante vous pouvez consulter la base de donnée d'OpenPrinting.
Il vous faut maintenant démarrer le serveur
$ sudo systemctl start cups.service
et pour qu'il se lance automatiquement au démarrage de l'ordinateur
$ sudo systemctl enable cups.service
Vous pouvez maintenant utiliser plusieurs outils graphiques pour paramétrer votre imprimante :
- l'interface web de cups accessible par l'URL http://localhost:631 Il vous faut être root ou au moins être dans le groupe sys. Allez sur la page Administration pour ajouter votre imprimante.
- system-config-printer, en principe conçu pour Gnome mais qui s'installe avec très peu de dépendances.
- Le centre de contrôle de KDE pour les utilisateurs de cet environnement.
- gtklp (présent dans AUR)
- hp-setup du paquet hplip (pour les possesseur d'une HP)
Il est tout aussi possible d'installer son imprimante en ligne de commande :
$ sudo lpadmin -p <le_nom-que_vous-voulez> -E -v <device> -P <ppd>
pour connaître device et ppd vous pouvez utiliser lpinfo
.
Exemple chez moi :
$ lpinfo -v | grep usb:
direct usb://HP/Photosmart%20C3100%20series?serial=MY67QC62HX04P9&interface=1
$ lpinfo -m | grep hp-photosmart_3100
drv:///hp/hpijs.drv/hp-photosmart_3100_series-hpijs.ppd HP Photosmart 3100 Series hpijs, 3.13.3
lsb/usr/HP/hp-photosmart_3100_series-hpijs.ppd.gz HP Photosmart 3100 Series hpijs, 3.13.3
drv:///hp/hpcups.drv/hp-photosmart_3100_series.ppd HP Photosmart 3100 Series, hpcups 3.13.3
lsb/usr/HP/hp-photosmart_3100_series.ppd.gz HP Photosmart 3100 Series, hpcups 3.13.3
Ce qui nous donnera donc :
$ sudo lpadmin -p <PhotoSmart> -E -v <usb://HP/Photosmart%20C3100%20series?serial=MY67QC62HX04P9&interface=1> -P </usr/HP/hp-photosmart_3100_series.ppd.gz>
Voir aussi les commandes : lpoptions, lpstat, cupsenable, cupsdisable,
cupsreject, lpr, lpq, lprm...
Installation du scanner
La partie matériel est déjà installée avec hplip. Pour d'autre matériels
regarder du coté de hpoj
(autres HP), iscan
(Epson)
brscan
(Brother)...
Coté logiciel il vous faudra sane et son interface graphique xsane, ainsi qu'éventuellement xsane-gimp le plugin pour gimp.
$ yaourt -S sane xsane xsane-gimp
Vérifiez la présence d'une ligne hpaio dans le fichier
etc/sane.d/dll.conf
Décommentez-la ou ajoutez-la si nécessaire.
Certains scanners nécessitent un firmware : téléversez-le dans
/usr/share/sane
(par exemple) puis indiquez-le à sane dans
/etc/sane.d/<backend-name>.conf
Partage de l'imprimante
Au préalable il faut installer avahi
et démarrer le démon
(si ce n'est déjà fait). Si vous oubliez ce point le serveur cups refusera de
redémarrer après les modifications permettant le partage.
$ yaourt -S avahi
$ sudo systemctl enable avahi-daemon.service # pour un démarrage automatique
$ sudo systemctl start avahi-daemon.service # pour tout de suite
- Sur l'interface web de cups (http://localhost:631) ->
Administration
, dans la rubriqueServer
, cochezShare printers connected to this system
puis cliquez sur le boutonChange Settings
. Dans l'ongletPrinters
sélectionnez l'imprimante concernée -> dans la listeAdministration
sélectionnezModify Printer
. Sur la page suivante cliquez surContinue
puis cochezShare This Printer
et validez sur la page suivante (boutonModify Printer
). - Avec system-config-printer cliquez dans le menu Serveur
-> Paramètres et cochez
Publiez les imprimantes partagées connectées à ce système
. Cliquez ensuite bouton droit sur l'imprimante concernée et cochez la lignePartagée
. - En ligne de commande :
$ sudo cupsctl --share-printers
$ sudo lpadmin -p mon-imprimante -o printer-is-shared=true - À la pogne : éditez (en tant que root) le fichier
/etc/cups/cupsd.conf
, remplacez la ligneListen localhost:631
parPort 631
, vérifier la présence d'une ligneBrowsing On
, puis entre les balises<Location />
et</Location>
, après la ligneOrder allow,deny
, ajoutez une ligneAllow @LOCAL
. Éditez également le fichier/etc/cups/printers.conf
et pour la ou les imprimante(s) concernée(s) passez la ligneShared
à Yes. Enfin relancez le serveur (sudo systemctl restart cupsd.service
)
Installation sur le client
S'il n'y a pas d'imprimante directement attachée au poste client le paquet
libcups
est le seul qui ait besoin d'être installé. Il suffit
ensuite d'indiquer l'adresse IP ou le nom du serveur dans
/etc/cups/client.conf
ou d'utiliser rechercher une
imprimante réseau
avec votre interface graphique (system-config-printer
ou le centre de contrôle de KDE...).
Partage du scanner
Èditez le fichier /etc/sane.d/saned.conf
et ajoutez
192.168.0.0/24
sous localhost
(ou
[2001:db8:185e::42:12]/64
si vous êtes en ipv6).
Installez xinetd
.
$ yaourt -S xinetd
Èditez /etc/xinetd.d/sane
et vérifiez que disabled =
no.
service sane-port
{
port = 6566
socket_type = stream
wait = no
user = root
group = scanner
server = /usr/sbin/saned
disable = no
}
Ajoutez si besoin sane-port 6566/tcp
à
/etc/services
puis lancez le démon :
$ sudo systemctl start xinetd.service
$ sudo systemctl enable xinetd.service
Installation sur le client
Spécifiez l'adresse IP du serveur dans /etc/sane.d/net.conf
ou
son nom si vous utilisez nss-mdns
# static IP address 192.168.0.50 # host name vincent-u400