Serveur d'impression et de numérisation Raspberry Pi – Serveur d’impression

Vous avez un RasPi de rechange? Pourquoi ne pas le brancher à votre tout-en-un et l'utiliser comme serveur d'impression et de numérisation pratique?

J'ai déjà essayé de faire fonctionner mon imprimante / scanner multifonction avec OpenWrt, mais j'ai rencontré des problèmes avec le scanner. Après l'avoir essayé avec le RasPi, je suis heureux d'annoncer que c'est aussi simple que Pi;)

La capacité du serveur d'impression est fournie par le Système d'impression Unix commun (CUPS), et la capacité du scanner est fournie par Accès facile au scanner (SAIN).

Voici mon ninja RasPi se détendre discrètement sur le côté d'une bibliothèque:
ninja-pi-print-server.jpg

Mon tout-en-un est un. Avant de commencer, c'est une bonne idée de vérifier que votre appareil dispose de pilotes pris en charge. Les périphériques HP sont généralement bien pris en charge par le package HPLIP (Free et Open Source HP Linux Imaging and Printing), qui est dans le référentiel – vous pouvez vérifier les périphériques HP sur cette page pour en être sûr.

D'autres fabricants ont également pris en charge des périphériques, dont certains nécessiteront des pilotes propriétaires. Openprinting.org est un bon endroit pour vérifier le support Linux d'autres appareils.

Nous allons d'abord configurer le Pi comme serveur d'impression. Je suppose que vous faites cela "sans tête", c'est-à-dire sans moniteur utilisant SSH. Certaines étapes seraient plus faciles avec un moniteur, mais cette méthode fonctionnera malgré tout.

Configuration du serveur

Tout d'abord, installez les pilotes d'imprimante. Pour les imprimantes HP, le package hplip est dans le référentiel:

mise à jour sudo apt-get
sudo apt-get install hplip

Et CUPS:

sudo apt-get install cups

Pour ajouter une imprimante, votre utilisateur doit être membre du groupe d'administration de l'impression Linux lpadmin. Sur mes installations Raspbian précédentes, j'ai trouvé que c'était le cas par défaut, mais j'ai reconfiguré le serveur d'impression récemment et j'ai dû me rajouter au groupe. Je pense que cela peut être l'une des différences entre une installation NOOBS et une image Raspbian standard.

Vous pouvez vérifier à quels groupes votre nom d'utilisateur appartient en utilisant le groupes commander:

pi @ serveur d'impression ~ $ groupes
pi adm dialout cdrom sudo audio vidéo plugdev jeux utilisateurs netdev entrée spi gpio

Comme vous pouvez le voir, lpadmin n'est pas dans la liste, nous devons donc ajouter pi au groupe lpadmin avec cette commande:

sudo usermod -a -G lpadmin pi

Maintenant, redémarrez le pi:

redémarrage sudo

et vérifiez à nouveau:

pi @ serveur d'impression ~ $ groupes
pi adm dialout cdrom sudo audio vidéo plugdev jeux utilisateurs netdev lpadmin entrée spi gpio

Bien! Connectez maintenant le câble de données de votre imprimante à l'un des ports USB du RasPi.

L'administration CUPS peut être effectuée via une interface Web, mais l'accès à distance (c'est-à-dire pas localhost) est désactivé par défaut. Pour activer l'administration à distance, nous devons d'abord modifier le fichier de configuration cups via SSH.

Le fichier de configuration CUPS est à /etc/cups/cupsd.conf. Le premier changement que nous devons apporter est d'autoriser les connexions à partir d'autres machines sur le réseau. Recherchez cette ligne:

Écouter localhost: 631

Changez-le en ceci:

Port 631

Ajoutez ces deux lignes:

BrowseRemoteProtocols CUPS dnssd
BrowseAddress @LOCAL

Recherchez la déclaration d'emplacement racine du serveur et modifiez-la pour qu'elle corresponde à celle-ci afin d'activer l'impression partagée:


  
  
  
  Ordonnance autoriser, refuser
  Autorise tout

Recherchez maintenant l'instruction / admin Location et modifiez-la pour qu'elle corresponde à celle-ci (c.-à-d. Commentez ou supprimez le Ordonnance autoriser, refuserligne à l'intérieur). Cela permettra d'accéder aux pages d'administration:


Recherchez le bloc de localisation / admin / conf et supprimez le Ordonnance autoriser, refuser, ce qui permettra d'accéder aux fichiers de configuration.

Rechargez maintenant le démon CUPS pour effectuer les modifications:

sudo service cups recharger

Maintenant, allez dans un navigateur Web et tapez l'adresse IP ou le nom d'hôte de votre Pi, suivi de : 631 (port 631), par exemple https://192.168.1.151:631 ou https: // serveur d'impression: 631 Vous devriez voir une page qui ressemble à ceci:

cups1.png

Cliquez sur l'onglet administration et vous verrez une page comme celle-ci:

cups2.png

Cliquez sur "Ajouter une imprimante" en haut à gauche. Vous devez utiliser une connexion sécurisée (https) ici car CUPS vous demandera de vous authentifier avec un nom d'utilisateur et un mot de passe. Il s'agit du nom d'utilisateur et du mot de passe de votre système, par ex. nom d'utilisateur "pi" et mot de passe "framboise" par défaut.
cups3.png

REMARQUE: si vous obtenez une erreur interdite ici mais que la fenêtre contextuelle nom d'utilisateur / mot de passe ne réapparaît pas, cela signifie que vos informations d'identification ont été acceptées (vous êtes un utilisateur du système) mais vous n'avez pas la permission d'ajouter une imprimante. Revenez en arrière et lisez la partie sur l'ajout de votre utilisateur au lpadmin groupe, redémarrez le pi et réessayez!

Si votre imprimante est connectée avec un câble de données, vous devriez le voir répertorié sur la page suivante. Sélectionnez-le et appuyez sur Continuer:

cups4.png

Remplissez quelques détails clés et appuyez sur Continuer. Assurez-vous de cocher "partager cette imprimante":

cups5.png

Sélectionnez maintenant votre modèle dans la liste des pilotes disponibles (ceux-ci sont fournis par des packages comme HPLIP). Si vous avez le choix, choisissez la version des tasses, puis cliquez sur ajouter une imprimante:

cups6.png

Enfin, définissez vos options d'impression par défaut:

cups7.png

Et vous avez terminé!

Configuration des machines clientes

Voici un exemple de configuration de l'imprimante sur KDE:

Installez les mêmes fichiers de pilote que vous avez utilisés précédemment. Pour les imprimantes HP:

mise à jour sudo apt-get
sudo apt-get install hplip

Ensuite, accédez à Paramètres système -> Imprimantes (ou recherchez "imprimantes"), puis sélectionnez Ajouter une imprimante.
print-client-kde.png

Votre ordinateur devrait détecter automatiquement l'imprimante partagée par le serveur d'impression sur le réseau. Cliquez sur Suivant et suivez les étapes pour ajouter l'imprimante – il vous sera demandé d'ajouter le pilote comme vous l'avez fait dans CUPS.

Lorsque vous avez terminé, cliquez sur Maintenance -> Imprimer la page de test pour vérifier que tout fonctionne comme prévu.

print-client-kde2.png

Machines Windows

Je n'ai pas de machines Windows à la maison, je n'ai donc pas testé cela, mais si vous souhaitez vous connecter à l'imprimante partagée avec Windows, vous devez installer Samba comme décrit dans la documentation de la communauté Ubuntu.

La numérisation fonctionne également à distance, mais nécessite un peu plus de bricolage pour fonctionner.

Configuration du serveur

Pour commencer, reconnectez-vous au Pi avec SSH et installez SANE:

mise à jour sudo apt-get
sudo apt-get install sane

SANE est livré avec quelques outils utiles pour vérifier la configuration. Tout d'abord, voyez si SANE peut trouver votre scanner:

sudo sane-find-scanner

Vous devriez obtenir une sortie comme celle-ci:

pi @ serveur-d'impression ~ $ sudo sane-find-scanner

  # sane-find-scanner va maintenant tenter de détecter votre scanner. Si la
  # le résultat est différent de ce que vous attendiez, assurez-vous d'abord que votre
  # le scanner est sous tension et correctement connecté à votre ordinateur.

  # Aucun analyseur SCSI trouvé. Si vous vous attendiez à quelque chose de différent, assurez-vous que
  # vous avez chargé un pilote SCSI du noyau pour votre adaptateur SCSI.
  # Vous avez également besoin de la prise en charge de SCSI Generic (sg) dans votre système d'exploitation.
  # Si vous utilisez Linux, essayez "modprobe sg".

scanner USB trouvé (fournisseur = 0x03f0 [HP], produit = 0xa011 [Deskjet 3050A J611 series]) chez libusb: 001: 005
scanner USB trouvé (fournisseur = 0x0bda [Manufacturer Realtek ], produit = 0x8172 [RTL8191S WLAN Adapter ]) chez libusb: 001: 004
scanner USB trouvé (fournisseur = 0x0424, produit = 0xec00) sur libusb: 001: 003
  # Votre scanner USB a été (probablement) détecté. Il peut ou non être pris en charge par
  # SANE. Essayez scanimage -L et lisez la page de manuel du backend.

  # Ne vérifie pas les scanners de ports parallèles.

  # La plupart des scanners connectés au port parallèle ou à d'autres ports propriétaires
  # ne peut pas être détecté par ce programme.

Si le programme renvoie des informations sur votre marque et votre modèle comme ci-dessus, vous êtes prêt à partir.

Ensuite, essayez ce qui suit:

sudo scanimage -L

Vous devriez obtenir une sortie comme celle-ci:

périphérique `hpaio: / usb / Deskjet_3050A_J611_series? serial = CN1C3438F005PJ 'est un tout-en-un Hewlett-Packard Deskjet_3050A_J611_series

Enfin, essayez de numériser quelque chose. Mettez quelque chose à l'intérieur du scanner, entrez cette commande:

scanimage> ~ / test-scan-file.pnm

Vous pouvez voir les détails du fichier à l'aide de cette commande:

fichier ~ / test-scan-file.pnm

Si vous souhaitez récupérer le fichier via SSH et l'inspecter sur votre ordinateur portable, vous pouvez utiliser la commande de copie sécurisée (exécutez-la à partir d'un terminal sur votre ordinateur portable):

scp pi @ serveur-d'impression: ~ / test-scan-file.pnm ~ / test-scan-file.pnm

(… où print-server est le nom d'hôte du serveur d'impression, Alternativement, vous pouvez utiliser l'adresse IP du Pi, par exemple 192.168.1.151).

Une fois le transfert terminé, vous pouvez ouvrir le fichier à partir de votre répertoire personnel avec un programme comme GIMP.

Maintenant que nous savons que le scanner fonctionne localement, nous pouvons configurer le démon sain. Ouvrez le fichier de configuration / etc / default / saned et définissez cette option pour activer le démon / serveur sain:

RUN = oui

Ensuite, ouvrez le fichier /etc/sane.d/saned.conf et ajoutez cette ligne, qui indique au serveur d'accepter les connexions de toutes les adresses IP dans la plage 192.168.1.1 à 192.168.1.255:

192.168.1.0/24

Ce qui précède suppose que l'adresse IP de votre routeur est 192.168.1.1 – si elle est 192.168.0.1, changez la ligne en 192.168.0.0/24.

Décommentez également cette ligne:

data_portrange = 10000 - 10100

Nous devons également corriger les autorisations afin que le démon sain d'esprit puisse accéder au scanner sans root. Une partie de la sortie de sane-find-scanner était la ligne suivante:

scanner USB trouvé (fournisseur = 0x03f0 [HP], produit = 0xa011 [Deskjet 3050A J611 series]) chez libusb: 001: 005

La section "à libusb: 001: 005" à la fin nous indique que le scanner est situé à / dev / bus / usb / 001/005. Vérifions à qui appartient ce fichier:

pi @ serveur-d'impression ~ $ ls -l / dev / bus / usb / 001
total 0
crw-rw-r-T 1 racine racine 189, 0 juil 6 19:44 001
crw-rw-r-T 1 racine racine 189, 1er janvier 1970 002
crw-rw-r-T 1 racine racine 189, 2 janvier 1 1970 003
crw-rw-r-T 1 racine racine 189, 3 juil. 6 19:44 004
crw-rw-r-T 1 racine lp 189, 4 juil.6 19:49 005

Comme vous pouvez le voir, il appartient à root avec le groupe lp (impression linux). Nous devons ajouter le démon sain au groupe lp pour lui donner les autorisations nécessaires:

sudo adduser saned lp

Redémarrez maintenant le démon SANE pour que toutes les modifications prennent effet. Sur Debian Wheezy et avant, la commande est:

sudo service saned restart

Sur Jessie et versions ultérieures (c'est-à-dire les systèmes avec systemd), utilisez:

sudo systemctl start saned.socket

Et dites au service SANE de démarrer automatiquement au démarrage du Pi. Sur Wheezy:

sudo update-rc.d saned par défaut

Ou sur Jessie:

sudo systemctl enable saned.socket

Vérifiez maintenant que SANE fonctionne correctement:

sudo service saned status

Vous pouvez également vérifier que le port est disponible en externe en utilisant nmap pour scanner le port du Pi depuis votre ordinateur portable:

serveur d'impression nmap

(encore une fois, en supposant que print-server est le nom d'hôte de votre pi – vous pouvez également utiliser les adresses IP).

Vous devriez obtenir des résultats comme celui-ci:

Rapport de numérisation Nmap pour le serveur d'impression (192.168.1.151)
L'hôte est en hausse (latence de 0,019 s).
Enregistrement rDNS pour 192.168.1.151: print-server.lan
Non illustré: 997 ports fermés
SERVICE DE L'ÉTAT DU PORT
22 / TCP Open SSH
631 / TCP Open IPP
6566 / tcp port ouvert ouvert

Tout va bien: le Pi a des services liés au port 22 pour SSH, 631 pour l'impression / CUPS et 6566 pour la numérisation / SANE.

Configuration du client

Je vais utiliser à nouveau KDE comme exemple: installez xsane et skanlite sur la machine cliente:

mise à jour sudo apt-get
sudo apt-get install xsane skanlite

Maintenant, nous devons modifier un fichier de configuration pour indiquer à votre ordinateur où chercher des services sensés. Éditer /etc/sane.d/net.conf et décommentez cette ligne:

connect_timeout = 60

Et ajoutez l'adresse IP de votre serveur d'impression au fichier:

192.168.1.151

Exécutez maintenant cette commande. Vous devriez voir une fenêtre contextuelle qui dit "recherche de périphériques", puis l'interface graphique suivante apparaîtra avec une pléthore d'options:

xsane

xsane-kde.png

Si vous souhaitez quelque chose de plus simple, essayez Skanlite:

raspi-skanlite.png

C'est ça! J'espère que vous l'avez trouvé utile, faites-moi savoir comment vous vous en sortez 🙂

Serveur d'impression et de numérisation Raspberry Pi – Serveur d’impression
4.9 (98%) 32 votes