Installer une imprimante sur un Raspberry Pi


Le Raspberry Pi est un ordinateur monocarte à processeur ARM, de la taille d'une boite d'allumettes, conçu en 2012 par la fondation Rasberry Pi.
Cet ordinateur fonctionne parfaitement avec le système d'exploitation gratuit Raspbian (variante de Linux optimisée pour le Raspberry Pi). Le modèle 3 du Raspberry Pi (Raspberry Pi 3) possède la connectivité Wifi et permet de se connecter facilement sur internet. Il ne lui manque qu'une imprimante pour pouvoir répondre à l'essentiel des besoins de la majorité des utilisateurs. Dans ce qui suit, on va installer une imprimante Brother HL-2032 sur un Raspberry Pi 3. La procédure d'installation décrite ci-après est générale et permet d'installer une grande variété d'imprimantes sur un Raspberry Pi 3 Cette procédure peut se décomposer selon les 5 étapes suivantes

1) Créer un utilisateur root sur le Raspberry Pi

Après l'installation du système d'exploitation Raspbian, le nom de l'utilisateur principal du Raspberry Pi 3 est pi (utilisateur possédant des droits limités) et le mot de passe par défaut de cet utilisateur est raspberry. La première chose à faire est de modifier ce mot de passe par défaut qui est connu de tous. Pour modifier ce mot de passe par défaut, on ouvre le terminal et on saisit la commande passwd.
après (current) UNIX password : on saisit raspberry (mot de passe actuel)
après Enter new UNIX password: on saisit le nouveau mot de passe (toto123 par exemple...)
Bien entendu, il faut ensuite se souvenir de ce nouveau mot de passe associé à l'utilisateur pi.

1

2

D'autre part, par défaut le système Raspbian ne permet pas de se connecter à partir du profil administrateur (appelé également super-utilisateur ou root qui possède tous les droits)). Il est donc nécessaire de mettre préalablement en place un mot de passe administrateur puis d'activer celui-ci à chaque ouverture du Terminal de commandes. Pour cela, on ouvre le terminal de commandes, on saisit la commande sudo passwd root puis on saisit le mot de passe pour le compte super utilisateur et on le confirme.

sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Lors de la prochaine ouverture du terminal de commandes, il sera alors possible de se connecter à l'aide du compte administrateur (root) avec mot de passe correspondant. Pour cela, on tape la commande su puis on saisit le mot de passe administrateur

pi@raspberrypi:~ $ su
Password:
root@raspberrypi:/home/pi#

2) Télécharger le fichier Brother-HL-2030-hl1250.ppd

Il faut savoir que malheureusement il existe des imprimantes qui ne possèdent pas de driver Linux. Il existe également des imprimantes dont le driver Linux mis à disposition par le fabricant fonctionne bien avec une distribution Linux classique (installée sur un PC doté d'une architecture de type i386) mais ne fonctionne malheureusement pas avec un Rasberry Pi doté de la distribution Raspbian et d'une architecture de type ARM. Dans ce cas, il faut télécharger un fichier driver opensource (gratuit) correspondant à l'imprimante sur le site The Linux Foundation wiki qui se trouveà l'adresse https://wiki.linuxfoundation.org/ . Ce fichier possède l'extension .ppd (Printer Postscript Description).

On peut se demander ce qu'est un fichier ppd. Un fichier PPD est tout simplement un fichier qui décrit (dans le format Postcript) l'ensemble des caractéristiques et possibilités d'une imprimante donnée, c'est à dire tout ce que cette imprimante est intrinsèquement capable de comprendre et de faire. Ce fichier est un fichier texte qui peut être ouvert et modifié avec un éditeur de texte.

une fois connecté sur le site The Linux Foundation wiki , on clique "OpenPrinting"

3

On clique ensuite "printer privers packages"

4

On choisit le fichier "hl1250"

5

On sélectionne le modèle de l'imprimante (Brother HL-2030 dans le cas présent) puis on clique le bouton "Generate PPD file"

6

Une fois le fichier téléchargé (fichier Brother-HL-2030-hl1250.ppd dans le cas présent), on ouvre le répertoire dans lequel ce fichier a été téléchargé et on mémorise son emplacement pour la suite.

7

3) installer cups

Pour pouvoir faire fonctionner son imprimante avec un Raspberry Pi. Il faut installer, sur le Raspberry Pi, le logiel CUPS (Common Unix Printing System) qui fonctionne de concert avec le driver ppd évoqué ci-dessus qui correspond à l'imprimante.

CUPS est un logiciel d'impression qui fonctionne avec les systèmes d'exploitation Unix et Linux. Un ordinateur qui utilise CUPS se comporte comme un serveur d'impression. Il reçoit des documents envoyés par une application cliente (traitement de texte par exemple). Avant impression, il met en forme les informations contenues dans ces documents (de façon compatible avec le contenu du fichier ppd associé à l'imprimante) puis il envoit ces informations à l'imprimante concernée.

8

Depuis le bureau, on clique la framboise située en haut à gauche de l'écran puis on clique l'option de menu "Preferences".
On clique "Add/Remove Software"
Dans la boîte de dialogue qui s'ouvre on écrit cups dans la zone de saisie de recherche située en haut à gauche.
On sélectionne Common Unix Printing System (tm) cups 2.2.1-8 - PPD/driver support, web interface
Puis on clique le bouton Apply

9

Dans le cas où une boîte de dialogue s'ouvrirait, informant que cette installation va nécessiter d'installer des paquets additionnels, on clique "Continue" (généralement cette boîte n'apparaît pas...)

10

Le système demande de saisir le mot de passe de l'utilisateur pi. On saisit ce mot de passe et on clique "OK"

11

Le système affiche la progression du téléchargement des paquets nécessaires puis de leur installation. On patiente.

12

Une fois l'installation terminée, on vérifie, à l'aide de l'explorateur de fichier, que le répertoire CUPS est bien présent dans le répertoire etc de raspbian. On vérifie notamment la présence du fichier "cupsd.conf" dans ce répertoire.

14

4) Utiliser CUPS pour déclarer l'imprimante

On commence par mettre l'imprimante sous tension et on la connecte au Raspberry Pi à l'aide d'un cable USB. Ensuite, pour redémarrer Cups, on ouvre le terminal de commandes et on écrit la commande suivante

sudo /etc/init.d/cups restart

18

Une fois Cups redémarré, on ouvre le navigateur et on saisit, dans sa barre d'adresse, l’adresse locale de notre Raspberry pi suivi de ":631" (c'est à dire localhost:631)
Dans la fenêtre web qui s'ouvre on clique "Adding Printers and Classes"

19

On clique "Add Printer"

20

Si cela est demandé, on saisit le mot de passe adminitrateur (root) puis on clique le bouton "Log In"

21

On sélectionne notre imprimante (Brother HL-2030), détectée suite à sa mise sous tension et au branchement du cable usb, puis on clique le bouton "Continue"

22

On donne un nom quelconque à cette imprimante ("ma_brother" par exemple) puis on clique Continue.

18

Dans notre cas, on ne choisit pas l'un des modèles proposé dans la liste déroulante "Model" mais on clique le bouton Choose file afin de sélectionner directement le fichier "Brother-HL-2030-hl1250.ppd" qui a été téléchargé en 1) depuis le site The Linux Foundation et qui correspond parfaitement à notre imprimante. Puis on clique Add Printer

24

25

Dans la fenêtre Set Printer Options, cliquer le bouton "Set Default Options"

26

L'imprimante est alors disponible et est prête pour effectuer des jobs d'impression.

27

Remarque : localhost:631 ou 192.168.x.x:631

Pour se connecter à Cups à l'aide de Chromium, il est préférable d'utiliser l'adresse "localhost:631" du Raspberry Pi et non pas l'adresse IP du Raspberry (192.168.x.x:631) atribuée par la Box internet.

En effet l'utilisation, dans la barre d'adresse de Chromium, de l'adresse IP du Raspberry (adresse 192.168.x.x:631 atribuée par la box internet) peut parfaitement fonctionner mais peut aussi parfois ne pas fonctionner et afficher le message suivant rendant impossible toute connexion à Cups

27b

On peut se demander pourquoi l'utilisation, dans la barre d'adresse de Chromium, de l'adresse "localhost:631" autorise sans problème la connexion locale à Cups alors que l'adresse IP du Raspberry Pi(192.168.x.x:631) atribuée par la box internet ne le permet pas toujours.

L'explication peut provenir du fait que la connexion "localhost:631" entre Chromium d'une part (situé sur le Raspberry Pi) et Cups d'autre part (également situé sur le Raspberry Pi, dans le répertoire etc/cups) s'effectue directement en local sur le Raspberry, sans passer par la Box internet (donc sans avoir besoin d'être autorisé par cette dernière). En revanche, la connexion entre Chromium et Cups en utilisant l'adresse 192.168.x.x:631 s'effectue en passant par la box internet. Si celle ci est paramétrée pour autoriser les connexions d'une adresse ip locale vers une autre, tout se passe bien mais dans le cas contraire la connexion est interdite. Il est bien sûr toujours possible de modifier le paramétrage de la box pour autoriser ce type de connexion mais cela est déconseillé si l'on ne maîtrise pas parfaitement le sujet (en effet, en cas de mauvais paramétrage de la box, celle-ci risque de ne plus fonctionner correctement...). Lorsqu'on ne maîtrise pas parfaitement le sujet, il est donc préférable de ne pas toucher au paramétrage par défaut de la box et d'utiliser l'adresse "localhost:631" qui ne présente aucun risque. Le schéma suivant illustre cette cause possible.

27b

5) Imprimer un document

On ouvre le Bloc-Note et on saisit un texte ("mon essai" par exemple).
Depuis le Bloc Note, on clique "Fichier/Imprimer"
Dans la boîte de dialogue "Print" qui s'ouvre, on sélectionne l'imprimante installée et on clique "Print". L'impression s'effectue alors aussitôt.

28

6) Annexes

6.1) Problème éventuel lors de la connexion à Cups

Normalement les étapes décrites ci-dessus se déroulent sans autre problème que celui mentionné en remarque à la fin de l'étape 3).

Cependant, dans le cas où des difficultés se produiraient lors de l'étape 4, lors de la tentative de connexion à Cups à l'aide de Chromium, on peut tenter de les résoudres en modifiant le contenu du fichier "/etc/cups/cupsd.conf"

En effet, le comportement de CUPS est configuré par les directives contenues dans le fichier "/etc/cups/cupsd.conf" dans lequel chaque ligne est soit une directive de configuration, soit une ligne vide ou bien un commentaire (ligne commençant par le caractère #)

Pour modifier "cupsd.conf", on ouvre le terminal de commandes, on se déclare administrateur (root) puis on tape la commande su puis on saisit le mot de passe administrateur.

pi@raspberrypi:~ $ su
Password:
root@raspberrypi:/home/pi#

Ensuite on tape dans le terminal la commande "sudo nano /etc/cups/cupsd.conf" pour ouvrir le fichier cupsd.conf puis, depuis le terminal, on parcourt le fichier en utilisant les flèches du clavier.

15

16

On peut par exemple effectuer les modifications suivantes puis regarder si cela solutionne le problème

On recherche les deux lignes suivantes situées vers le début du fichier

# Only listen for connections from the local machine
Listen localhost:631

On ajoute « # » à la ligne « listen localhost:631 et on ajoute Port 631 aussitôt après

# Only listen for connections from the local machine
# Listen localhost:631
Port 631

On recherche les lignes qui contiennent "Order allow,deny" et on ajoute juste après une ligne "Allow@local"

# Restrict access to the server...
Order allow,deny
Allow @local

# Restrict access to the admin pages...
Order allow,deny
Allow @local

etc ...

On recherche les deux lignes suivantes.

# Default authentication type, when authentication is required...
DefaultAuthType Basic

Pour pouvoir se connecter à cups sans rencontrer de blocage https on peut par exemple essayer d'ajouter "DefaultEncryption IfRequested"

# Default authentication type, when authentication is required...
DefaultAuthType Basic
DefaultEncryption IfRequested

Une fois les modifications effectuées, on quitte le fichier conf en faisant: "Ctrl+x", puis "Yes (Y)" puis "Enter". Puis on effectue un nouvel essai de connexion à Cups depuis la barre d'adresse de Chromium.

17

6.2) Problème éventuel lors de l'impression

D'autre part, dans le cas où une difficulté de connexion à l'imprimante se produirait lors de l'étape 4), la raison peut éventuellement être la suivante: Par défaut, CUPS crée un groupe d’utilisateur de l'imprimante nommé « lpadmin ». Etant donné que l’utilisateur par défaut du Raspberry Pi est « pi », il peut (ou non) se produire une impossibilité de connexion à l'imprimante. Si cela se produit, on ouvre le terminal de commandes et on saisit la commande suivante (le -a permet d’ajouter l'utilisateur pi vers le groupe existant "lpadmin" spécifié par -G).

sudo usermod -a -G lpadmin pi

6.3) Fichier ppd

Fichier Brother-HL-2030-hl1250.ppd téléchargé en 1) sur le site the Linux Fondation Wiki.