Configuration d'un serveur CUPS avec Docker sur un Synology NAS pour mon imprimante Brother – Serveur d’impression
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 …
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.
Commentaires
Laisser un commentaire