Serveur d'impression

Utilisation d’un Raspberry Pi en tant que serveur d’impression pour le HL-2140 · Kit aléatoire – Serveur d’impression

Par Titanfall , le 17 août 2019 - 14 minutes de lecture

L’une des choses que vous commencez à apprécier vraiment est la commodité d’une imprimante en réseau. Lorsque notre dernier ordinateur a cessé de fonctionner en raison d'une défaillance de la batterie, il ne nous restait qu'une seule imprimante laser Brother HL-2140 USB. Et bien que cela ait fonctionné, le fait d’imprimer uniquement à partir d’un seul ordinateur était une vraie douleur!

tasses-rpi

Avec un Raspberry Pi de rechange traînant encore une fois, il était temps de remédier à cela. Le résultat final est un serveur d'impression à la demande rapide, compatible AirPlay, avec des clients Windows se connectant via des clients LPR et * nix via IPP.


Préface

Je commencerai par dire qu’aujourd’hui, les imprimantes sont tellement bon marché qu’elles sont essentiellement des articles à jeter. La capacité de mise en réseau est également plus ou moins donnée, avec un prix aussi bas que 65 $ à 70 $. Une fois mis en perspective, cela ne représente qu’un peu plus que le coût d’un Raspberry Pi! Certes, ce projet visait davantage à tirer le meilleur parti des équipements déjà disponibles.

Exigences

Mon cas d'utilisation est pour un environnement domestique, où le plus souvent, l'imprimante est éteinte. Ceci est différent dans un bureau, où l’imprimante est presque toujours en ligne. En conséquence, mes exigences étaient les suivantes:

  1. Le RPi ne doit être activé que lorsque l'imprimante est allumée
  2. Il devrait démarrer aussi vite que possible – pour être prêt au démarrage de l'imprimante
  3. Il doit gérer les coupures de courant fréquentes et fréquentes avec élégance (c'est-à-dire lorsque l'imprimante est éteinte)
  4. Le moins de modifications possibles sur l'imprimante doivent être effectuées
  5. Côté client, l’imprimante doit être gérée correctement hors connexion. Cela signifie qu’il est permis d’imprimer en mode hors connexion, où il sera imprimé lorsqu'il sera finalement mis en ligne.

C'est assez spécifique, mais c'étaient des nuances que j'ai remarquées et aimé à propos de l'ancienne imprimante. Fait important, aucun des innombrables tutoriels en ligne ne couvre ces problèmes:

  • Beaucoup suggèrent d'utiliser CUPS et IPP pour partager l'imprimante avec un périphérique Windows
    • Aucun n’adresse le fait qu’essayer de hors ligne Une imprimante IPP provoque le gel de l'interface d'impression pendant un temps considérable
    • Peu de gens discutent de la question de savoir si Foomatic prend du temps à charger lors du chargement de la liste des pilotes, particulièrement du Raspberry Pi.
  • Certains suggèrent d'utiliser SAMBA (SMB) pour partager l'imprimante
    • SAMBA n'est… pas le plus agréable à installer et tend à ralentir considérablement le processus de démarrage.
    • Encore une fois, essayer d'imprimer sur une imprimante partagée SMB hors connexion bloquera assez souvent le dialogue d'impression.
  • Moins suggèrent encore d'utiliser LPRng
    • C’est en fait un moyen simple et très efficace de partager l’imprimante sur un ordinateur Windows. Pour un guide à ce sujet, voir ici. La seule raison pour laquelle je suis resté avec CUPS à la fin était dû à un meilleur support pour les clients non-Windows.

Mise en place du Raspberry Pi

Installation de base

Pour assurer le temps de démarrage le plus rapide possible, je souhaitais utiliser le système d'exploitation le plus mince possible (aussi raisonnable que possible). Ma solution préférée est le projet raspbian-ua-netinst, qui vous permet de réaliser une installation minimale de Raspbian. Les étapes sont assez simples:

  1. Téléchargez la dernière image à partir d'ici et écrivez-la sur votre carte microSD. Par exemple, téléchargez et décompressez raspbian-ua-netinst-v1.0.9.img.xz, puis utilisez quelque chose comme Win32DiskImager pour écrire raspbian-ua-netinst-v1.0.9.img sur votre carte microSD.
  2. La carte microSD devrait maintenant apparaître comme un lecteur FAT sur votre ordinateur – c'est la partition de démarrage. Pour certaines personnalisations ajoutées, ajoutez un nouveau fichier appelé installer_config.txt. Cela vous permet de personnaliser l'installation comme indiqué ici. Voici le contenu de la configuration que j'ai utilisée:

    1
    2
    3
    4
    5
    6
    7
    
    prédéfini = serveur
    packages = nano, sudo, apt-utils, achèvement de bash
    mirror = http: //mirror.internode.on.net/pub/raspbian/raspbian/
    release = jessie
    nom d'hôte = pi
    rootpw = admin
    taille de botte = + 64M
    

    Cela permet d'installer certains paquets supplémentaires par défaut. Cela me permet également de définir le miroir de téléchargement à utiliser, ainsi que de réduire la taille de la partition de démarrage à 64 Mo.

  3. À partir de là, vous pouvez simplement remettre la carte dans votre RPi, brancher la prise Ethernet sur votre routeur et l’alimenter. Il se connectera automatiquement à Internet et téléchargera les derniers fichiers pour une distribution minimale. Je trouve que cela prend environ une heure pour un RPi B +. Quand ce sera fait, vous pourrez y entrer en SSH.

Personnalisation

Étant donné que l'installation est minimal, il y a moins de commodités fournies hors de la boîte. Ces étapes facilitent l'utilisation:

  1. SSH sur le périphérique en tant que racine. Si configuré comme ci-dessus, le mot de passe est admin. Sinon, la valeur par défaut est Raspbian.
  2. Ajouter un utilisateur non root:

    Suivez les instructions pour configurer les informations utilisateur et le mot de passe.

  3. Ajoutez l'utilisateur à la liste des sudoers:

    Ajoutez la ligne suivante:

    Vous pouvez maintenant vous connecter en tant que cet utilisateur (pi dans ce cas) au lieu de root.

  4. Reconfigurer le fuseau horaire:

    1
    
    dpkg-reconfigure tzdata
    

  5. Pour économiser de l'espace, je n'ai pas généré de paramètres régionaux. Mais si vous souhaitez:

    1
    
    dpkg-reconfigure les locales
    

  6. Pour économiser davantage d’espace, je désactive l’installation de fichiers man, comme indiqué dans ce guide.

Configuration du serveur d'impression

À ce stade, nous installerons un minimal Installation du serveur CUPS.

  1. Installer CUPS:

    1
    
    apt-get install --no-install-recommend tasses
    

    Ceci installe CUPS sans installer aucun des pilotes et SANE (interface de scanner). J'ai trouvé que c'était mieux que de le laisser installer tous les pilotes, car il semble installer Foomatic. Foomatic met longtemps à énumérer sa liste de pilotes, ce qui entraîne souvent le dépassement de CUPS sur la page de sélection de pilotes.

  2. Installez les pilotes pour votre imprimante. OpenPrinting est une excellente ressource pour cela. Pour le HL-2140, il utilise le pilote HPIJS:

    1
    
    apt-get installer pilote-d'imprimante-hpijs
    

  3. Ajoutez votre utilisateur au groupe d’administrateurs CUPS:

    1
    
    Usermod -une -G lpadmin pi
    

  4. Modifiez CUPS pour permettre l'administration à distance. Modifier /etc/cups/cupsd.conf:

    Trouvez les sections suivantes et ajoutez Autoriser @LOCAL pour eux:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    dix
    11
    
    # Restreindre l'accès au serveur ...
    <Emplacement    />
      Ordre autoriser, refuser
      Permettre @LOCAL
    </Emplacement>
    
    # Restreindre l'accès aux pages d'administration ...
    <Emplacement    / admin>
      Ordre autoriser, refuser
      Permettre @LOCAL
    </Emplacement>
    

    Pour désactiver le stockage des tâches d'impression, ajoutez:

    Redémarrer CUPS:

  5. Naviguez vers http: // your-pi-ip: 631, ensuite aller à Administration -> Ajouter une imprimante. Si on vous le demande, cliquez sur le lien pour passer à contrôle admin – utilisez votre nom d'utilisateur et votre mot de passe pour le compte que vous avez créé avec lpadmin groupe.

    tasses1

  6. Du Ajouter une imprimante page, sélectionnez l’imprimante que vous souhaitez ajouter.

    tasses2

  7. Dans la page suivante, sélectionnez un nom pour l’imprimante. Il s’agit du nom de la file d’attente de cette imprimante. Je vous recommande donc de choisir un nom simple, par exemple hl2140. Assurez-vous que l’option ‘Partager cette imprimante’ est cochée.

    tasses3

  8. Sur la page suivante, vous devez fournir un fichier PPD pour votre imprimante. Étant donné que nous avons choisi une installation minimale, la liste des pilotes pré-fournis est petite. Par exemple, voici le lien vers la page OpenPrinting du HL-2140. Sur ce site, cliquez sur télécharger directement PPD. Sur la page CUPS, cliquez sur Feuilleter et sélectionnez le fichier PPD téléchargé. Cliquez sur Ajouter une imprimante pour compléter le processus. Notez que le fichier PPD est distinct du pilote d’imprimante (tel que pilote-imprimante-hpijs).

    tasses4

  9. Pour activer le support LPR pour Windows, nous devons installer le démon inet:

    1
    
    apt-get install openbsd-inetd
    

    Une fois installé, ajoutez la ligne suivante à la fin de /etc/inetd.conf:

    1
    
    flux imprimante tcp maintenant lp / usr / lib / cups / daemon / cups-lpd cups-lpd -o document-format = application / octet-stream
    

    Redémarrez inetd avec:

    1
    
    systemctl redémarrer openbsd-inetd
    

  10. Pour le support AirPrint, vous devez installer avahi-daemon:

    1
    
    apt-get install --no-install-recommend avahi-daemon libnss-mdns
    

Tester la configuration

À ce stade, le RPi est principalement configuré. Essayez d’ajouter et d’utiliser l’imprimante à partir de vos périphériques:

Test sur Windows

  1. Aller à Appareils et imprimantes (trouvé dans le Panneau de configuration ou via une recherche à partir du menu Démarrer)
  2. Cliquer sur Ajouter une imprimante puis sur L'imprimante que je veux n'est pas répertoriée
  3. Sélectionner Ajouter une imprimante en utilisant une adresse TCP / IP ou un nom d'hôte et cliquez sur OK
  4. Entrez l'adresse IP de votre RPi (attribuez-lui une adresse statique). Décocher la Interrogez l'imprimante et sélectionnez automatiquement le pilote à utiliser. option et cliquez sur Suivant. Cela va prendre du temps.
  5. dans le Informations supplémentaires sur le port requises dialogue, sélectionnez Douanepuis cliquez sur Réglages....
  6. Définissez le protocole comme LPR. Définissez le nom de la file d’attente sur le nom que vous avez appelé l’imprimante dans CUPS. Dans ce cas, hl2140.
  7. Cochez l'option intitulée Comptage d'octets LPR activé. Laisser Statut SNMP activé décoché. Cliquez sur Suivant.

    win-port-cfg

  8. Sélectionnez le pilote approprié dans la liste ou cliquez sur Avoir un disque et pointez-le vers le pilote à utiliser. IMPORTANT POUR HL-2140 – Il est préférable d'utiliser le pilote HL-2150N plutôt que le pilote HL-2140. Cela est dû au fait que le pilote HL-2150N vous permet d’imprimer hors connexion, contrairement au pilote HL-2140, qui ne fait que supprimer le document.
  9. Suivez les invites restantes et imprimez une page de test.

Test sur Android

  1. Pour Android, j'ai trouvé Let’s Print Droid au travail.
  2. Lors de l'ajout de l'imprimante, utilisez IPP au lieu de LPR. Cela permet de restituer les documents sur le RPi. Si vous utilisez plutôt LPR, vous devez alors installer Let’s Print PDF, qui restitue le document sur votre périphérique avant de l’envoyer à l’imprimante. Pour utiliser IPP, définissez l'adresse sur http: // your-pi-ip: 631 / printers / nom-d'imprimante (par exemple. http://192.168.0.10:631/printers/hl2140)

Test sur iOS

  1. Appuyez sur le bouton de partage et sélectionnez Impression.
  2. Rechercher des périphériques AirPrint – l’imprimante partagée doit être répertoriée.

Autres personnalisations du RPi

Activer le chien de garde

En tant que système intégré, il est judicieux d’activer le chien de garde, qui redémarrera le système si, par exemple, le RPi se bloque ou se bloque.

  1. Modifier /boot/config.txt pour activer le chien de garde:

    1
    2
    
    # Ajoutez cette ligne à la fin du fichier config.txt
    dtparam=chien de garde=sur
    

    Au prochain redémarrage, le chien de garde devrait être activé et le bcm2835-wdt le module devrait être actif.

  2. Installez le client Watchdog:

    1
    
    apt-get install watchdog
    

    Ce client vous permet de spécifier davantage d'options pour le moment où le chien de garde doit déclencher un redémarrage. Cela fonctionne en tandem avec le wd_keepalive service, qui continue simplement de nourrir le chien de garde si aucune condition n'est spécifiée. Voir ici pour plus d'informations sur la configuration du chien de garde.

Système de fichiers en lecture seule

Pour rendre le RPi plus résistant aux coupures de courant fréquentes, je souhaitais que le système de fichiers soit en lecture seule. Cela contribuerait également à éviter une usure inutile de la carte microSD.

Ce que j'ai trouvé pour fonctionner était superposition, ce qui rend les modifications temporaires du système de fichiers. Lorsque des modifications sont apportées au système de fichiers, elles sont stockées en mémoire. Les modifications sont alors perdues au prochain redémarrage.

Pour configurer cela, je suggère de suivre les instructions fournies dans ce référentiel. À titre de clarification, si vous souhaitez apporter des modifications persistantes une fois ce système de superposition en vigueur, exécutez simplement la commande rootwork script pour obtenir un shell où les modifications resteront:

1
2
./rootwork
# Tout ce que vous faites ici persistera sur le disque

Modifications à l'imprimante

AVERTISSEMENT: cette section implique la modification des composants internes de votre imprimante. En plus d’annuler potentiellement votre garantie, il contient des circuits haute tension, qui doivent être manipulés avec le plus grand soin. Essayez cette section à vos risques et périls.

Comme je voulais que le RPi démarre et s’arrête avec l’imprimante allumée et éteinte, je voulais connecter son alimentation d’une certaine manière à l’interrupteur de l’imprimante. Je pouvais le faire côté réseau en reliant l’alimentation électrique du RPi au commutateur, ou bien je pouvais simplement débrancher le rail 5V de la propre alimentation de l’imprimante.

Étant donné que je ne voulais pas vraiment toucher à l’électronique côté secteur, je devais trouver un point où elle fournissait une alimentation 5V. Heureusement, il semble que cela soit possible en retirant la carte mère de l’imprimante.

Malheureusement, j’ai également oublié de prendre des photos, mais heureusement, il n’est pas trop difficile de trouver le manuel de réparation. La carte mère se trouve sur le côté gauche de l’imprimante, comme indiqué ci-dessous:

hl2140

Le connecteur surligné en rouge est l'endroit où j'ai exploité l'alimentation 5V. Dans le manuel d’entretien, la broche + 5V est la 2Dakota du Nord la broche de droite, GND étant le 3rd broche de droite. Mieux vaut le confirmer avec un multimètre.

Notez aussi l'alimentation haute tension (HVPS) que j'ai surligné en rouge. C'est l'alimentation qui monte la tension du secteur, probablement pour une utilisation avec le laser. Vous pouvez l'identifier grâce aux fentes anti-suivi étendues et aux larges vides d'isolation sur le circuit imprimé. Cela va sans dire, mais vous ne voulez vraiment pas jouer avec ce circuit. Tu étais prévenu.

Pour connecter ceci au RPi, j'avais une rallonge USB de rechange comme celle-ci:

USB

C'était en fait parfait, car je pouvais intégrer assez facilement l'un de ces ports dans les logements existants. Il me suffisait de percer la plaque arrière qui contenait également le port USB existant. Avec un peu de prudence, vous pouvez percer les trous pour les bornes à vis afin de fixer le port à la plaque arrière. J'ai ensuite coupé le connecteur d'origine et les fils de données, ne me laissant que les lignes + 5V et GND. J'ai ensuite juste étamé ces lignes et les ai fourrées dans le connecteur existant.

Lorsque tout est en place, celui-ci se connecte au RPi via son port microUSB, tandis que le port USB-B existant se connecte via les ports USB normaux du RPi.

Notes finales

Dans l’ensemble, je pense que la modification s’est bien déroulée. J'étais assez satisfait de la propreté des modifications physiques apportées à l'imprimante. Mon seul souci était de savoir si le RPi surchargerait l'alimentation interne de l'imprimante. Avec le recul, il aurait été préférable de mesurer le tirage au sort actuel du RPi, mais avec tout mis en place, je suis réticent à le rouvrir. Je suppose que le temps dira à quel point il tient le coup!

En ce qui concerne les logiciels, il a fallu quelques tentatives et de faux-départs pour que tout soit là où je suis heureux, mais cela semble assez robuste. L’utilisation de LPR pour Windows reposait sur ce que faisait mon ancienne imprimante. Certes, c’est un protocole plus ancien et moins «avancé» que IPP, mais il travauxet fonctionne bien. L’état de l’imprimante est une chose qui ne fonctionne pas. Je pense que cela fonctionne avec SNMP, mais je ne sais pas comment le configurer correctement avec CUPS.

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

Commentaires

Laisser un commentaire

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