Serveur d'impression

Configuration du Raspberry Pi en tant que serveur AirPrint – Bien choisir son serveur d impression

Le 27 janvier 2020 - 11 minutes de lecture

En tant que PC à 35 $ avec de très faibles besoins en énergie, le Raspberry Pi est particulièrement adapté pour servir de nombreuses utilisations différentes, en particulier en tant que serveur à faible consommation d'énergie en permanence. Quand j'ai entendu parler du Pi pour la première fois, j'étais excité parce que je voulais qu'il devienne un serveur AirPrint. Cela permet à la gamme d'appareils iOS d'Apple d'imprimer sur le Raspberry Pi qui se retourne et imprime sur votre imprimante standard via CUPS. J'ai utilisé mon imprimante laser réseau pour cela, mais il n'y a aucune raison pour que vous ne puissiez pas utiliser une imprimante câblée (via USB) sur le Pi lui-même. Il y a environ un mois, j'ai réussi. La semaine dernière, j'ai mis en place une vidéo pour le démontrer, et aujourd'hui, je vous apporte le tutoriel promis depuis longtemps pour que vous puissiez le configurer vous-même.

Je tiens à remercier Ryan Finnie pour ses recherches sur la configuration d’AirPrint sur Linux et de TJFontaine pour son script AirPrint Generation Python.

Dans le cadre de ce tutoriel, j'ai utilisé PuTTY pour SSH à distance dans mon Raspberry Pi à partir de mon PC de bureau Windows 7.

Pour commencer, connectons-nous au pi qui utilise le nom d'utilisateur pi et mot de passe framboise.

Nous devons maintenant installer tout un tas de packages, y compris CUPS et Avahi. Avant de faire cela, nous devons mettre à jour les référentiels de packages ainsi que tous les packages du Raspberry Pi. Pour mettre à jour les référentiels, on tape la commande mise à jour sudo apt-get.

Naturellement, cela ne fonctionne pas tout à fait comme prévu, se terminant par une erreur demandant une autre mise à jour du package. Si vous obtenez cette erreur, tapez simplement mise à jour sudo apt-get encore.

Il semble que la deuxième fois c'est le charme!

Nous devons maintenant mettre à niveau les packages installés sur le Pi en utilisant les nouvelles informations de référentiel que nous venons de télécharger. Pour ce faire, nous tapons mise à niveau sudo apt-get.

Cela générera une liste de packages à installer et demandera ensuite l'approbation avant de continuer. Tapez simplement y et appuyez sur entrée pour continuer.

Cela prendra quelques minutes lors du téléchargement et de l'installation de nombreux packages. Finalement, vous serez renvoyé à une invite bash.

À ce stade, nous devons commencer à installer tous les programmes sur lesquels la fonctionnalité AirPrint s'appuiera: à savoir CUPS pour traiter les travaux d'impression et le démon Avahi pour gérer l'annonce AirPrint. Courir sudo apt-get install avahi-daemon avahi-découvrez libnss-mdns cups cups-pdf gutenprint pycups avahi python2 pour commencer cette installation.

On dirait que certains d'entre eux ont été dépréciés ou ont changé de nom. Nous devrons réinstaller ceux-ci dans une minute.

Pour une raison étrange, CUPS n'a pas été installé, même s'il s'agissait de la liste des programmes à installer dans la dernière commande. Courir sudo apt-get install cups pour résoudre ce problème.

Encore une fois, il faudra une confirmation avant de continuer. Comme précédemment, tapez simplement y et appuyez sur entrée pour continuer.

Une fois terminé, vous serez de nouveau renvoyé à l'invite bash.

Il est temps d'installer python-cups qui permet aux programmes python d'imprimer sur le serveur CUPS. Courir sudo apt-get install python-cups à installer.

Une fois que vous êtes revenu à l'invite bash, exécutez sudo apt-get install avahi-daemon pour installer le démon avahi (un serveur mDNS nécessaire pour la prise en charge d'AirPrint).

Pour des raisons de sécurité, le serveur CUPS nécessite que les modifications de configuration (gestion des imprimantes, etc.) proviennent d'un utilisateur autorisé. Par défaut, il ne considère les utilisateurs autorisés que s'ils sont membres du lpadmin groupe. Pour continuer le tutoriel, nous devrons ajouter notre utilisateur (dans ce cas pi) à la lpadmin groupe. Nous le faisons avec la commande suivante: sudo usermod -aG lpadmin pi (remplacez pi par votre nom d'utilisateur).

Avant de continuer, commençons le service cups et assurez-vous que la configuration par défaut fonctionne: sudo /etc/init.d/cups start.

Comme nous venons de tester la configuration par défaut de CUPS, nous pourrions tout aussi bien faire de même avec le démon Avahi: sudo /etc/init.d/avahi-daemon début.

Si vous obtenez des erreurs lors des deux phases de démarrage précédentes, il est probable que vous n’ayez pas installé quelque chose correctement. Dans ce cas, je vous recommande de recommencer les étapes depuis le début et de vous assurer que tout va bien! Si vous procédez sans aucune erreur, il est temps de modifier le fichier de configuration CUPS pour nous permettre de l’administrer à distance (et de l’imprimer sans compte utilisateur sur le réseau local – nécessaire pour AirPrint). Entrer à l'intérieur sudo nano /etc/cups/cupsd.conf.

Le fichier de configuration se chargera dans l'éditeur nano. Il ressemblera à ceci.

Utilisez la flèche vers le bas jusqu'à ce que vous arriviez à la ligne qui dit Écouter localhost: 631.

Cela indique à CUPS d'écouter uniquement les connexions de la machine locale. Comme nous devons l'utiliser comme serveur d'impression réseau, nous devons commenter cette ligne avec un hashtag (#). Comme nous voulons écouter toutes les connexions sur le port 631, nous devons ajouter la ligne Port 631 immédiatement après la ligne, nous avons commenté.

Nous devons également dire à CUPS de s’aliaser à n’importe quel nom d’hôte car AirPrint communique avec CUPS avec un nom d’hôte différent de celui défini par la machine. Pour ce faire, nous devons ajouter la directive ServerAlias ​​* avant le premier bloquer.

Pour continuer à configurer l'administration à distance, il y a plusieurs endroits que nous devons entrer dans la ligne Autoriser @Local après la ligne Ordonnance autoriser, refuser – mais cela ne s'applique pas à toutes les instances de cette ligne.

Nous devons maintenant enregistrer le fichier de configuration CUPS et quitter l'éditeur de texte nano. Pour ce faire, maintenez ctrl et appuyez sur X. Vous serez invité à enregistrer les modifications. Assurez-vous de taper y quand il vous invite.

Il vous demandera ensuite de confirmer le nom du fichier dans lequel enregistrer. Appuyez simplement sur entrer quand il vous invite.

Ensuite, nous devons redémarrer CUPS pour que la version en cours d'exécution utilise les nouveaux paramètres. Courir sudo /etc/init.d/cups redémarrer pour redémarrer le serveur.

Il est temps de découvrir l'adresse IP du Pi pour continuer à configurer l'impression via l'outil de configuration Web. Dans mon cas, mon Pi se voit attribuer une adresse statique par mon serveur DHCP de 192.168.1.75. Pour connaître l'adresse IP de votre Pi, lancez simplement ifconfig.

Une fois que nous avons l'adresse IP, nous pouvons ouvrir un navigateur pour la page de configuration CUPS située à adresse_ip: 631. Plus que probablement, vous verrez une erreur de sécurité car le Raspberry Pi utilise un certificat SSL auto-fabriqué (sauf si vous en avez acheté et installé un).

Pour continuer, cliquez sur Continuer quand même ou sur l’équivalent de votre navigateur si vous êtes sûr d’avoir entré la bonne adresse IP. Vous verrez alors cet écran.

À partir de là, allez-y et cliquez sur l'onglet Administration en haut de la page. Vous devrez cocher la case qui dit Partager les imprimantes connectées à ce système puis cliquez sur le Modifier les paramètres bouton.

CUPS demandera l'authentification par mot de passe, et puisque nous avons ajouté l'utilisateur pi à la lpadmin groupe plus tôt, nous pouvons nous connecter avec le nom d'utilisateur pi et mot de passe framboise.

Le serveur CUPS écrit ces modifications dans son fichier de configuration, puis redémarre.

À ce stade, il est temps de configurer votre imprimante avec CUPS. Dans mon cas, j'utilise une imprimante laser réseau Brother HL-2170w et mes captures d'écran seront adaptées à cette imprimante. La plupart des autres imprimantes compatibles CUPS (vérifiez la compatibilité sur http://www.openprinting.org/printers) fonctionneront de la même manière. Si vous utilisez une imprimante USB, il est maintenant temps de la brancher. Donnez-lui quelques secondes pour être reconnu par le Pi, puis cliquez sur le Ajouter une imprimante bouton pour commencer!

CUPS commencera à chercher des imprimantes. Attendez jusqu'à ce qu'il s'agisse d'une liste d'imprimantes découvertes.

Finalement, vous arriverez à une page qui ressemble à ceci:

Une fois que vous avez choisi la bonne imprimante et cliqué sur Continuer – vous serez amené à la page des paramètres. Assurez-vous de cocher la case concernant le partage ou AirPrint peut ne pas fonctionner correctement.

Vous devrez ensuite sélectionner le pilote de votre imprimante. Dans la plupart des cas, CUPS aura déjà le pilote et tout ce que vous devez faire est de le sélectionner – mais avec les imprimantes plus récentes, vous devrez obtenir un fichier ppd de la base de données OpenPrinting et l'utiliser.

Vous devez ensuite définir les paramètres par défaut de l'imprimante, notamment le format et le type de papier. Assurez-vous que ceux-ci correspondent à votre imprimante afin que tout s'imprime correctement.

Une fois que vous avez terminé, vous devriez voir la page État de l'imprimante. Dans la zone Maintenance, sélectionnez Imprimer la page de test et assurez-vous qu'elle s'imprime et semble correcte.

Si vous obtenez une page de test appropriée, vous avez correctement configuré votre serveur CUPS pour imprimer sur vos imprimantes. Il ne reste plus qu'à configurer l'annonce AirPrint via le démon Avahi. Heureusement, nous n'avons plus à le faire manuellement, car TJFontaine a créé un script python qui parle automatiquement à CUPS et le configure pour nous! Il est temps de revenir au terminal Raspberry Pi et de créer un nouveau répertoire. Courir sudo mkdir / opt / airprint pour créer le répertoire empreinte en dessous de /opter/.

Nous devons ensuite passer à ce répertoire avec la commande cd / opt / airprint.

Maintenant, nous devons télécharger le script avec la commande suivante: sudo wget -O airprint-generate.py --no-check-certificate https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py

Ensuite, nous devons modifier les autorisations du script afin de pouvoir l'exécuter avec la commande sudo chmod 755 airprint-generate.py.

Il est temps d'exécuter enfin le script et de générer les fichiers de service Avahi. Utilisez la commande: sudo ./airprint-generate.py -d / etc / avahi / services pour placer directement les fichiers générés là où Avahi les souhaite.

À ce stade, tout devrait fonctionner, mais pour être sûr, j'aime faire un redémarrage complet du système avec la commande sudo reboot. Une fois le système de retour, votre nouveau serveur AirPrint devrait être prêt!

Pour imprimer à partir d'iOS, accédez simplement à n'importe quelle application prenant en charge l'impression (comme Mail ou Safari) et cliquez sur le bouton d'impression.

Une fois que vous avez sélectionné votre imprimante, celle-ci l'interroge et enverra la tâche d'impression! Cela peut prendre quelques minutes pour sortir sur l'imprimante, mais bon, votre appareil iOS imprime sur votre ancienne imprimante habituelle via un Raspberry Pi! C'est plutôt cool et fonctionnel, non? Et la meilleure partie absolue, puisque le Raspberry Pi utilise si peu d'énergie (j'ai entendu dire qu'il était inférieur à 10 watts), il est très bon marché de continuer à fonctionner 24/7 pour fournir des services d'impression!

MISE À JOUR: Si vous utilisez iOS6, en raison de légers changements dans la définition d'AirPrint, vous devrez suivre les instructions ici pour le faire fonctionner. Merci à Marco de les partager!

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.