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

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 rubrique Server, cochez Share printers connected to this system puis cliquez sur le bouton Change Settings. Dans l'onglet Printers sélectionnez l'imprimante concernée -> dans la liste Administration sélectionnez Modify Printer. Sur la page suivante cliquez sur Continue puis cochez Share This Printer et validez sur la page suivante (bouton Modify 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 ligne Partagé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 ligne Listen localhost:631 par Port 631, vérifier la présence d'une ligne Browsing On, puis entre les balises <Location /> et </Location>, après la ligne Order allow,deny, ajoutez une ligne Allow @LOCAL. Éditez également le fichier /etc/cups/printers.conf et pour la ou les imprimante(s) concernée(s) passez la ligne Shared à 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

ta ta for now

Vus : 1731
Publié par Vincent Gay : 38