Serveur d'impression

Configuration d'un serveur CUPS avec Docker sur un Synology NAS pour mon imprimante Brother – Serveur d’impression

Par Titanfall , le 2 août 2019 - 7 minutes de lecture

Mon imprimante Brother faite pour Windows

J'ai fait la malheureuse erreur en achetant une imprimante Brother bon marché, la Brother HL-L2300D, qui est uniquement USB. Et ce n’est pas seulement une imprimante USB, c’est un Winprinter qui le rend très limité en toute autre chose que Windows. L’imprimante laser est idéale pour l’impression, mais l’achat de la version la moins chère à fonctionnalités limitées a été une mauvaise décision. Si je pouvais remonter dans le temps, je me dirais d’acheter une imprimante réseau Brother et d’éviter les ennuis en essayant de partager en réseau une imprimante USB. Je t'encourage à faire de même. Mais si vous lisez cette page, vous avez probablement commis la même erreur que moi, alors lisez la suite …

Depuis que j'ai mon Synology DS916 +, qui prend en charge le rôle de serveur d'impression, je souhaitais l'utiliser pour partager mon imprimante sur des périphériques en réseau. Malheureusement, le type d’imprimante USB pris en charge par Synology est très limité. La liste de support Synology est très petite et seules quelques imprimantes Brother sont approuvées. Winprinters, ou techniquement les imprimantes GDI, n’ont que très peu d’assistance en dehors de Windows. Mais attendez une minute, Brother fournit des pilotes Linux, non? Pourquoi ne pas simplement installer cela sur le Synology NAS?

Les pilotes Linux de Brother ne s’installent pas facilement sur Synology en raison des différentes exigences en matière de plate-forme et de bibliothèque, bien qu’il s’agisse de Linux. La solution qui reste consiste à utiliser ces pilotes Linux Linux sur un conteneur Docker avec un framework Linux réel compatible avec les pilotes.

Préparation du Synology NAS

Installateur Easy Bootstrap

La première chose que j’ai mise en place a été la Installateur Easy Bootstrap, qui fournit la structure ipkg pour l’installation des paquets linux. Le moyen le plus simple est d'ajouter la source https://www.cphub.net à ton Source du paquet sous le Centre de conditionnement réglages. Easy Bootstrap Installer devrait maintenant être disponible pour l’installation à partir de la liste des packages de la communauté.

Une fois que je SSH dans la machine, ipkg devrait être disponible à partir de / opt / bin / ipkg

Installer lsusb avec ipkg

Nous avons besoin de lsusb pour déterminer l’adresse de périphérique de l’imprimante à laquelle Docker a accès. Une simple commande ipkg install usbutils est tout ce qui est nécessaire pour installer lsusb.

Docker Container docker-debian-cups

J'ai trouvé que le conteneur Docker Docker-Debian-Cups était un bon point de départ pour cette configuration.

Fichiers conteneur Docker

Installation du pilote Brother

Le programme d'installation du pilote Brother est exécuté à chaque démarrage du conteneur Docker. Il doit donc être accessible. J'ai téléchargé le script d'installation linux linux-brprinter-installer-2.0.0-1 à partir du site Web de Brother et l'ai placé sous / volume1 / docker / cups qui est le répertoire qui sera monté sur le conteneur Docker. Ce script est universel et devrait fonctionner avec n’importe quelle imprimante Brother.

Fichiers de configuration Avahi pour AirPrint

Si AirPrint ne vous intéresse pas, vous pouvez ignorer cette étape. Comme je possède de nombreux produits Apple chez moi, je voulais vraiment installer AirPrint et Avahi fournit ce service. Dans l'annuaire / volume1 / docker / cups J'ai placé deux fichiers:

Mon script Bash de démarrage de Docker

J'ai créé un script Bash que je peux exécuter chaque fois que je veux exécuter le menu fixe Cups et que tout est configuré automatiquement. Décomposons le script:

#!/ bin / sh

# Arrêtez CUPSD s'il est en cours d'exécution
écho "Arrêter cupsd sur Synology ..."
/ usr / syno / sbin / synoservicecfg - hard-stop cupsd

# Obtenir l'emplacement de l'imprimante
écho "Obtenir des informations sur l'imprimante ..."
AUTOBUS=$(/ opt / sbin / lsusb|grep Brother|awk 'print $ 2')
DEV=$(/ opt / sbin / lsusb|grep Brother|awk 'print $ 4')
DEV="$ DEV%?"
IMPRIMANTE="/ dev / bus / usb/$ BUS/$ DEV"

# Stop Container
écho "Arrêt du conteneur actuel ..."
/ usr / local / bin / docker tuer serveur de tasses
/ usr / local / bin / docker rm cups-server

# Run Docker
écho "Conteneur en cours ..."
conteneurID=$(/ usr / local / bin / docker courir -ré -p 631:631 -p 5353:5353 --name cups-server -net=hôte --dispositif=$ IMPRIMANTE -v / volume1 / docker / cups/:/ home / print -v /volume1/docker/cups/avahi-daemon.conf:/etc/avahi/avahi-daemon.conf -v /volume1/docker/cups/AirPrint-HLL2300D.service:/etc/avahi/services/AirPrint-HLL2300D.service olbat / docker-debian-cups)

# Exécuter le script d'installation
écho "Exécution du script d'installation du conteneur ..."
/ usr / local / bin / docker exec $ containerID / bin / sh -c "/home/print/setup.sh" Et

écho "Terminé!"

sortie 0

La première partie consiste à arrêter le démon cups inclus dans le système DSM de Synology. La partie suivante utilise le programme lsusb que nous avons déjà installé afin de saisir l’adresse de l’imprimante à transmettre à Docker. La troisième section arrête tout conteneur Docker en cours d'exécution en cours d'exécution. La commande d'exécution du menu fixe saisit l'ID du conteneur lors de son lancement. olbat / docker-debian-cups. Deux ports sont transférés du conteneur, 631 qui est utilisé pour les tasses et 5353 qui est utilisé pour les services Avahi. L'adresse de l'appareil de $ IMPRIMANTE est transmis au conteneur. Autre que le lien du répertoire personnel / volume2 / docker / cups / à / home / print, le reste mappe les fichiers de configuration Avahi mentionnés précédemment.

Si vous n'avez pas besoin d'Avahi, vous pouvez supprimer en toute sécurité les parties destinées à la configuration d'Avahi.

Enfin, le script /home/print/setup.sh est exécuté dans le conteneur qui effectue la configuration debian.

Script de configuration du conteneur

Le script d'installation /home/print/setup.sh est exécuté à partir du conteneur Docker pour installer les pilotes Brother et également installer / configurer Avahi pour Airprint.

#!/ bin / sh

écho "Lancer apt-get mise à jour / mise à niveau ..."
apt-get update

écho "Configuration requise pour l'installation de Brother ..."
apt-get install lib32gcc1 libc6-i386 lib32stdc ++6 -y

écho "Exécution de la configuration de l'imprimante Brother ..."
printf 'y  nn  nn  n' | /home/print/linux-brprinter-installer-2.0.0-1 HL-L2300D

écho "Activation du partage d'imprimante pour CUPS ..."
cupsctl --share-printers
cupsctl --remote-admin

écho "Installer Avahi ..."
DEBIAN_FRONTEND=apt-get noninteractive installer avahi-daemon -y -o Dpkg::Les options::="--force-confdef" -o Dpkg::Les options::="--force-confold"

écho "Commencer Avahi ..."
/etc/init.d/avahi-daemon début

Nous installons certaines bibliothèques requises pour les pilotes Brother qui ne sont pas fournies en standard dans le conteneur. Nous exécutons ensuite le script d’installation Brother à partir du / home / print répertoire qui est monté sur le Synology / volume1 / docker / cups côté. Je le configure pour installer les pilotes pour HL-L2300D. Si vous avez une imprimante différente, vous devez placer son nom. CUPS est ensuite configuré pour permettre le partage d'imprimante et l'accès administrateur distant. Enfin, Avahi est installé et démarré pour AirPrint.

Vérification via la page CUPS

Maintenant, si le script initial /volume1/docker/cups/cups_start.sh est exécuté, tout doit démarrer correctement. Si vous accédez au port 631 de votre adresse Synology NAS, http://192.168.1.2:631, vous devriez voir la page du serveur CUPS et la section Imprimante devrait avoir votre imprimante configurée et prête.

Je peux maintenant voir et imprimer avec succès mes appareils Windows, macOS et Apple sur mon imprimante USB Brother connectée à mon Synology NAS. L’un des problèmes de cette imprimante Winprinter peu coûteuse est qu’elle finit par ne plus répondre du jour au lendemain et ne sera plus imprimée. Donc, ce que je devais faire était d'avoir le Planificateur de tâches exécuter cups_start.sh tous les soirs pour que mon imprimante continue à fonctionner.

J'espère que vous pourrez également utiliser ce guide pour configurer votre Synology NAS afin qu'il agisse en tant que serveur d'impression CUPS.

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

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