LinuxÉdu

Faire un serveur d’impression WiFi avec Raspberry-Pi

Tutoriel légèrement hors-sujet avec le thème de ce site mais sait-on jamais…

Le but est de faire un serveur d’impression wifi utilisant un raspberry-pi.

Contexte de ce tutoriel : L’imprimante est une HP laserJet Pro 1102w. Le « w » c’est pour « wireless ». Personnellement, j’aurais bien rajouté TF après le W. Bref, tout devrait fonctionner facilement en théorie. Sauf que… Sous Windows, il faut installer des Mo et des Mo d’un espèce de bloatware privateur pour avoir un fonctionnement aléatoire. On n’a absolument aucune idée de ce que fait ce « logiciel », il pèse 140 Mo et doit en occuper deux fois plus sur le disque dur ! Oui, vous avez bien lu, 140 Mo pour une bête imprimante réseau en 2017 !?

Sous GNU/Linux c’est quand même mieux sauf que le format du mot de passe que va utiliser l’imprimante pour accéder à votre réseau wifi ne peut pas être unicode (apparu en 1991) ! Oui, nous sommes en 2017 toujours avec tout plein de starts-ups innovantes digitales, disruptives et non, il faut écrire en ISO-8859-1 pour un mot de passe wifi même qu’avec des chiffres ! Le progrès fait rage. Explications ici : https://answers.launchpad.net/hplip/+question/254909

Tout ceci est visiblement trop compliqué pour les ingénieurs de chez HP (?). En 2017 nous sommes tous ingénieurs alors, allons-y !

Matériel nécessaire

  • Raspberry-pi bien sûr
  • dongle USB Wifi

Installation

Ici, nous n’avons pas d’écran, ni de clavier ou de souris ! Tout va se faire en ssh pour la configuration.

Récupérez la dernière raspbian sur le lien suivant. En torrent, c’est plus rapide et vu le niveau de certains médias, cela fait de vous un hacker !

https://downloads.raspberrypi.org/raspbian_latest

La décompresser puis « graver » l’image obtenue sur votre carte SD avec la commande suivante (à adapter bien sûr) :

sudo dd bs=4M if=2017-04-10-raspbian-jessie.img of=/dev/sdc

Patienter jusqu’à ce que dd vous rende la main. Ensuite faite un :

sync

 

afin d’être certain que toutes les données en cours de déplacement soient bien enregistrées…

Important : Par défaut, ssh n’est pas activé. Pour le faire ajoutez un fichier nommé ssh (sans extensions ni rien, vide ou pas) dans la partition boot de la carte SD. Plus d’informations ici : https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/

Insérez la carte SD dans le Raspberry et démarrez.

Configuration de base

Pour retrouver l’IP du Raspberry, vous pouvez chercher dans l’interface de configuration de votre box Internet ou faire un :

nmap -sn 192.168.0.0/24

qui va scanner votre réseau local. Vous devriez trouver l’IP attribuée à votre Raspeberry.

Il suffit ensuite de s’y connecter en ssh avec :

ssh pi@192.168.0.31

Comme vous le voyez, l’utilisateur par défaut est « pi ». Son mot de passe est raspberry (à changer par la suite)

Faire les réglages habituels (dont « étendre le système de fichiers ») avec :

sudo raspi-config

Configuration du dongle WiFi

Le dongle est reconnu instantanément. Aucun problème de ce côté là. Sous Windows, il faudra sûrement passer par la case bloatware privateur pour qu’il marche ou pas.

Modifiez le fichier /etc/wpa_supplicant/wpa_supplicant.conf

et rajoutez-y :

network={
ssid="Votre_SSID"
psk="Votre_Mot_De_Passe"
}
Ensuite, nous allons affecter une IP fixe à la carte Wifi du Raspberry en suivant l’excellent tutoriel de framboise314 ci-dessus.
Dans le fichier /etc/dhcpcd.conf, rajoutez à la fin :
interface eth0
static ip_address=192.168.0.31/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
interface wlan0
static ip_address=192.168.0.32/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1Vérifiez que la résolution DNS se passe correctement...

Configuration de l’imprimante

On installe CUPS qui permet de gérer les imprimantes en plus via une interface web !

sudo apt-get install cups

 On ajoute ensuite l’utilisateur pi au groupe lpadmin afin qu’il puisse accéder à l’administration des imprimantes :
sudo usermod -a -G lpadmin pi
puis pour y accéder directement sans authentification (on est supposé être dans un réseau local sûr) :
sudo cupsctl --remote-any
sudo /etc/init.d/cups restart
Ensuite, aller sur http://192.168.0.32:631/ pour installer et configurer l’imprimante. L’installer via la page « Administration », ne pas oublier de cocher la case « partager cette imprimante ». Si votre modèle d’imprimante n’est pas dans la liste et que c’est une HP récente (comme ici), alors
sudo apt-get update
sudo apt-get install hplip (qui va tirer les dépendences dont  printer-driver-hpcups)
Si cela ne fonctionne toujours pas (c’est le cas encore ici !) :
sudo apt-get update
sudo apt-get install hplip
apt-get install cups
wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
tar zxf foo2zjs.tar.gz
cd foo2zjs
make
make install
make cups
adduser pi lpadmin
et retourner dans l’interface web de CUPS pour l’installer avec cette fois-ci le pilote foo2zjs !
Choisir : HP LaserJet Pro P1102w Foomatic/foo2zjs-z2 (cherchez bien dans la liste des choix possibles)
Source : https://www.raspberrypi.org/forums/viewtopic.php?t=60530 dans le cas d’une HP LaserJet p1102 (que je ne recommande pas…)

Ajout de l’imprimante sur les autres ordinateurs du réseau

Il suffit ensuite d’utiliser la procédure habituelle pour ajouter une imprimante selon votre distribution 🙂

Comments are closed.