Publié le 6 octobre 2019 - par

Transformer une imprimante USB en imprimante WiFi

Je dispose d’une imprimante Epson DX9400f (sortie en 2007) connectée sur un PC en USB. Aujourd’hui avec plusieurs PC, des PC portables, un bureau à réorganiser ça devient intéressant de la transformer en imprimante WiFi… avec un Raspberry Pi et un serveur d’impression, bien sûr. Comme ça on pourra imprimer de partout sans avoir de fil à la patte.

Cliquez pour avoir la définition des niveaux

J’ai classé cet article pour les utilisateurs avancés car il n’est pas toujours simple de comprendre pourquoi ça n’imprime pas… Je ne pourrai pas répondre aux demandes du genre « J’ai suivi le tuto à la lettre mais ça marche pô ! » Les paramètres sont nombreux et je ne suis pas voyante

Je ne suis pas voyante !

 

Connecter une imprimante USB en WiFi grâce au Raspberry Pi

Le matériel utilisé

  • Un Raspberry Pi 3
  • Une carte microSD SanDisk 16Go
  • Une imprimante DX9400f

La version de Raspbian utilisée est la dernière disponible à l’heure où j’écris cet article : Raspbian Buster 2019-09-29. J’utiliserai le SSH pour me connecter et installer CUPS (serveur d’impression) et SAMBA (partage d’imprimante avec les machines Windows)

Comme j’utiliserai le Raspberry Pi à distance, je crée dans la partition /boot un fichier ssh qui activera le serveur SSH et je colle un fichier wpa_supplicant.conf tout prêt, qui va connecter le Raspberry Pi à la LiveBox.

Pour commencer, il faut connecter le port USB de l’imprimante sur le Raspberry Pi, insérer la carte microSD dans le connecteur du RasPi et mettre sous tension l’imprimante puis le Raspberry Pi.

Installation de CUPS

On va bien entendu commencer par le sempiternel

On peut maintenant installer CUPS

Puis le configurer

Remplacez

Listen localhost:631 qui oblige CUPS à écouter uniquement le port 631 local par

Listen 631 qui autorise les machines du réseau à accéder à CUPS.

Le serveur d’impression doit pouvoir faire connaître toutes les imprimantes connectées au réseau. On ajoute la ligne suivante :

BrowseAddress @LOCAL

Sous # Show shared printers on the local network. La valeur BrowseAddress indique à quels hôtes les informations de l’imprimante seront diffusées. « @LOCAL » signifie « tous » les hôtes du réseau local connecté.

Recherchez ensuite les lignes suivantes et insérez un « Allow @Local ».

Ici encore @LOCAL représente « toutes » les machines connectées au réseau local.
On peut maintenant quitter nano en enregistrant les modifs. (CTRL X)

Ensuite, nous devons ajouter un utilisateur au groupe d’utilisateurs « lpadmin« . Il peut s’agir de l’utilisateur par défaut « pi ». Vous pouvez également créer un nouvel utilisateur si vous le souhaitez. Mais ce n’est pas obligatoire. J’ai choisi d’utiliser l’utilisateur pi.

Comme après toute modification dans les paramètres de CUPS, un redémarrage du serveur CUPS est nécessaire.

Prise en charge des imprimantes pour Linux

Selon le fabricant et le modèle d’imprimante, l’installation des pilotes d’imprimante est parfois plus ou moins simple (ou plus ou moins compliquée 🙂 ). Pour les modèles courants, CUPS est livré avec des pilotes d’imprimante. Mais pas pour toutes les imprimantes. CUPS fonctionne généralement mieux avec les imprimantes HP. Mais on trouve aussi des drivers pour les imprimantes Samsung et Epson. D’autres fabricants sont moins sympa et dans ce cas, inutile de demander comment faire… Il va falloir vous dém… débrouiller !

Pour HP installez

puis configurez l’imprimante

Vous trouverez des drivers pour Samsung ici

Et pour les imprimantes Epson

Redémarrez CUPS après avoir installé les paquets qui vous intéressent.

Accéder à CUPS

Ouvrez un navigateur sur la page d’admin de CUPS, soit sur le Raspberry Pi soit sur un PC connecté au même réseau. Saisissez l’adresse du RasPi, suivie du numéro de port (n’oubliez pas les deux points 🙂 ) Pour moi c’est 192.168.1.19:631

Ajouter une imprimante

Sous le titre CUPS for Administrators, cliquez sur Adding Printers and Classes.

Cliquez maintenant sur le bouton  Ajouter une imprimante . Selon le navigateur, il est possible que vous ayez une alerte car CUPS n’est pas en https. Accédez en forçant l’accès dans les options avancées. Normalement CUPS demande ensuite le nom et le mot de passe de l’utilisateur. Remplissez les champs (pi, raspberrypi si vous n’avez pas modifié les identifiants). Sinon entrez les identifiants de l’utilisateur que vous avez ajouté à lpadmin.

Choisir l’imprimante

On voit que CUPS a bien détecté l’imprimante USB connectée au Raspberry Pi. C’est celle que j’ai choisie en cochant la case EPSON Stylus DX9400F.
Cliquez sur le bouton  Continuer .

Ici vous pouvez renseigner l’emplacement de l’imprimante. Si vous n’en avez qu’une… faites comme vous voulez. J’ai mis « Bureau ». Par contre il faut absolument cocher la case Partager cette imprimante pour que l’imprimante soit accessible pour les machines du réseau.
Cliquez sur le bouton  Continuer .

Super ! Mon imprimante existe dans la liste des imprimantes EPSON que j’ai installées plus haut. CUPS me la propose en tête de la liste, je n’ai qu’à choisir ce modèle DX9400F.
Si votre imprimante n’est pas dans la liste essayez (dans l’ordre) de choisir un modèle proche, de vous reporter aux forums, de pleurer ?
Pour terminer l’installation cliquez sur le bouton  Ajouter une imprimante .

Modifiez les options par défaut si vous le souhaitez, puis cliquez sur le bouton  Définir les options par défaut .

Votre imprimante est prête à imprimer depuis CUPS. On va la tester depuis le Raspberry Pi :

Dans le menu Maintenance cliquez sur Imprimer une page de test et vous devriez obtenir l’impression d’une page en couleur avec des infos sur l’impression réalisée.

Partager l’imprimante pour les machines Windows

Windows utilise SAMBA pour accéder aux imprimantes comme aux fichiers sur une machine distante. Nous allons installer SAMBA sur le Raspberry Pi pour partager l’imprimante.

Man page de cupsaddsmb :

C’est dans cette page de manuel qu’il est expliqué comment CUPS et SAMBA travaillent ensemble pour partager une imprimante pour des machines Windows.

CONFIGURATION DE SAMBA
cupsaddsmb utilise le mode d’impression basé sur RPC dans SAMBA, pour fournir aux clients Windows les pilotes d’impression et les fichiers PPD. Pour utiliser cette fonctionnalité, vous devez configurer le fichier smb.conf de SAMBA
pour qu’il utilise l’impression à travers CUPS, et fournisse un pilote à  télécharger. Cela est fait de la manière suivante :

[global]
load printers = yes
printing = cups
printcap name = cups

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
public = yes
guest ok = yes
writable = no
printable = yes

[print$]
comment = Printer Drivers
path = /etc/samba/drivers
browseable = yes
guest ok = no
read only = yes
write list = root

C’est ce qui va servir de base pour configurer SAMBA.

Installation de SAMBA

Lancer la commande suivante :

Seconde étape : configurer le partage

Il faut maintenant modifier le fichier de configuration de samba

Dans la rubrique [global] ajoutez

puis en fin de fichier modifiez [printers] et [print$] comme suit :

Redémarrez SAMBA pour prendre ces modification en compte.

Imprimer depuis Windows 10

Installer l’imprimante

Sum mon PC sous Windows 10 l’imprimante DX9400F était connectée en USB et définie par défaut.

Faites un clic droit pour ouvrir le menu puis Paramètres > Périphériques > Imprimantes et Scanners et enfin cliquez sur + Ajouter des imprimantes et des scanners.

Très vit le PC découvre l’imprimante DX9400F sur le Raspberry Pi (@raspberrypi indique le nom de la machine)

Cliquez sur l’imprimante puis sur le bouton Ajouter l’appareil.

Le PC connecte l’imprimante

Ce qui prend un certain temps. Une barre de défilement vous fait patienter…

Lorsque l’opération est terminée, l’imprimante est indiquée comme étant prête.

Sous Word avec un document ouvert, sélectionner l’imprimante connectée au Raspberry Pi. Vous pourrez la passer comme imprimante par défaut quand vous aurez confirmer que ça fonctionne bien.

Cliquez sur le bouton Imprimer et… ça imprime !

Conclusion

J’ai utilisé un Raspberry Pi 3… parce que j’en avais un de disponible. Pour ce genre d’application, n’importe quel modèle fera l’affaire, y compris un Pi Zero W.

Si vous vous lancez dans l’aventure, pensez à faire des sauvegardes de la carte SD, des fichiers de config de CUPS et SAMBA… ça permettra de revenir rapidement en arrière en cas de besoin. Et, comme indiqué en début de cet article, il faudra chercher vous même si  ça ne fonctionne pas car il y a tellement de paramètres qu’un dépannage à distance, avec toute la bonne volonté du monde, n’est pas envisageable… (pensez à consulter les log 🙂 )

Sources

https://www.elektronik-kompendium.de/sites/raspberry-pi/2007081.htm

https://maker.pro/raspberry-pi/projects/how-to-turn-a-usb-printer-into-a-wireless-printer-with-raspberry-pi-zero-w

 

 

 

 

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

22 réflexions au sujet de « Transformer une imprimante USB en imprimante WiFi »

  1. Laurent H

    pourquoi ne pas avoir choisi une solution Google cloud print ?

    je sais que lon doit parler du raspi mais je vois pas l’intérêt dans ce cas précis ?

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Laurent
      bin oui
      déjà c’est un blog sur le Raspberry Pi 😉
      et puis après je n’ai pas forcément envie que Google sache ce que j’imprime… ils en savent déjà assez !!
      Wikipedia : Le service Google Cloud Print se comporte comme un serveur d’impression déporté. Il accueille donc une file d’attente des documents à imprimer. En matière de protection de la vie privée, d’après Christophe Gautier, « Google assure que les documents envoyés sont supprimés de ses serveurs dès que l’impression est terminée – mais il précise tout de même qu’ils sont susceptibles d’être utilisés afin d’améliorer la qualité d’impression. »

      Répondre
  2. Foul

    Ou juste brancher son imprimante USB sur n’importe quel box internet qui se transforme alors en serveur d’impression wifi sans toucher à rien.. bhaa oui toutes les box internets ont cette fonctionnalité..;)

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      Quel intérêt de brancher l’imprimante sur une box quand on anime un site Raspberry Pi ? 😀
      et puis la box est à l’étage en dessous à l’autre bout de la maison…

      Répondre
  3. Ping : Transformer une imprimante USB en imprimante WiFi – Framboise 314, le Raspberry Pi à la sauce française…. – Jhc Info

  4. Ludovic

    Un pas plus loin : Allumer et éteindre l’imprimante via un relais piloté par le Raspberry….
    parce que bon… si il faut monter l’escalier pour allumer l’imprimante avant de lancer l’impression, ca diminue l’intéret 😉
    C’est de fait ce que je vais faire, avec un Orange Pi Zero, et un petit relais prévu pour etre connecté à ce type de carte.
    Le tout placé dans un boitier imprimé en 3D modélisé sur mesure 😉

    Répondre
    1. Iznogoud

      L’effort est louable mais pourquoi réinventer la roue ?
      On trouve nombre de prises connectées prêtes à l’emploi sur le marché.
      Pour une solution open source, une prise Sonoff S26 reprogrammée avec le firmware Tasmoda fait parfaitement l’affaire.

      Répondre
      1. Ludovic

        Pour le fun, et pour la conso d’energie…
        Pourquoi réinventer la roue ? Pourquoi ne pas jeter l’imprimante et en acheter une wifi ?
        Parce que mon OrangePi Zero a deja une prise RJ45, du WIFI, une prise USB, fait donc un parfait serveur CUPS, et ne demande qu’a avoir un relais de branché sur une sortie !
        Et parce que la SONOFF dans tous les cas, devra etre pilotée par le raspberry afin de détecter quand allumer/eteindre l’imprimante,
        Et parce que ca fait une prise de courant en plus (la sonoff + le raspberry), alors qu’en mettant tout dans le meme boitier, je peux n’utiliser qu’une prise….
        Bref, y’a des gens qui aiment « bidouiller » (le bon coté de la bidouille), se gratter la tête, se mettre des challenges, et y’a des gens qui préfère quand c’est déjà tout cuit 😉

        Répondre
        1. Iznogoud

          Ce n’est pas plus compliqué, voire moins, que d’installer un serveur d’impression sur un RPi ou d’y connecter un relais.
          Personnellement, ça m’a pris trois heures pour installer le firmware Tasmoda sur une S26, backup du firmware usine compris (partie la plus longue nécessitant l’installation de la suite de développement ESP32), alors que je n’avais jamais touché à l’ESP32.
          Pour répondre au commentaire plus haut, on peut préférer le tout cuit mais on peut aussi privilégier l’efficacité.
          Et en termes d’efficacité, le serveur d’impression intégré à la box, comme dit plus haut aussi, est ce qu’il y a de mieux. (sauf à habiter un château, comme certains 😉 )

          Répondre
  5. j2c

    Merci pour cet article qui retrace une des utilisations de cups. ça peut être utilisé aussi sur un PC sous linux, un serveur. Ou simplement pour faire un serveur d’impressions centralisé dans la maison.

    Article qui est un prétexte pour découvrir un nouvel outil 🙂 Et oui, on peut aussi utiliser un serveur d’impression tout fait.. ou utiliser sa box internet.. mais dans ce cas, on a perd l’esprit du Maker qui aime bien fabriquer ses objets pour les rendre utilisables comme il le souhaite.

    Pour ma part, j’ai une vieille imprimante laser pro avec un serveur d’impression ethernet qui marche à merveille.. et une MFP (imprimante multifonction) avec du wif.. (burk) qui me sert de scaner déporté.. et qui a rendu l’ame la semaine dernière (alim qui a explosée)

    Un ancien MFP qui prend la poussière au grenier pourrait être remis en service grace à ce genre de « bidouille » fiable a pas cher 😉

    J’attends avec impatience la partie SANE.. qui est un sacré défit.

    Répondre
    1. François MOCQ Auteur de l’article

      bonjour
      merci pour ce retour
      pour le moment SANE fonctionne en local avec xSane sur le scanner de la DX9400F mais à distance ????
      peut etre via VNC ? avec un partage du dossier de scan avec samba??
      je continue à creuser quand j’ai un peu de temps 🙂

      Répondre
        1. François MOCQ Auteur de l’article

          bonjour
          merci pour l info
          je regarde ça des que je peux
          la j’ai deux conférences RasPi à préparer pour le Mans et Rennes
          j’ai mis l’imprimante multifonction en sommeil 🙂

          Répondre
  6. Guillaume

    Merci pour ce super tuto, je peux maintenant imprimer depuis mon pc et mon ipad.
    J’ai juste un problème avec mon pc pro sous windows 10 aussi qui ne détecte pas l’imprimante. Une idée ?

    Répondre
  7. MCW4P

    J’ai peut-être raté une info…
    Il faut aussi installer le pilote de l’imprimante sur le PC d’où on veut imprimer, non ?

    Le « seul » intérêt de cette solution est de partager une imprimante en réseau, si je ne me trompe pas.

    Du coup, si les pilotes ne fonctionnent pas pour windows, l’imprimante ne sera pas utilisable.

    Ou bien ? 🙂

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.