Annexe F. Faire marcher une imprimante

Table des matières
1. Préliminaires
1.1. Mon imprimante est-elle supportée sous Linux ?
1.2. Un peu de théorie
1.3. Noter le driver recommandé
2. Installer et configurer CUPS
2.1. Charger les modules noyau
2.2. Installer CUPS
2.3. Installer le fichier PPD
2.4. Configurer CUPS
3. Imprimer !
3.1. Les commandes de base
3.2. Imprimer depuis une application
4. Transformer l'ordinateur en serveur d'impression
4.1. Configuration du serveur d'impression
4.2. Configuration des clients sous Debian GNU/Linux

Attention

Cette annexe est toute nouvelle, et n'a été que très peu testée. Mon expérience avec les imprimantes sous Linux étant extrêmement réduite, je ne garantis pas le résultat... mais toutes les remarques sont les bienvenues !

1. Préliminaires

1.1. Mon imprimante est-elle supportée sous Linux ?

Faire marcher une imprimante sous Linux fait partie des choses difficiles : c'est à mon avis plus difficile que de recompiler un noyau ou de faire marcher un serveur graphique !

Tout d'abord, il faut partir aux renseignements pour savoir si votre imprimante est supportée sous Linux ou non. Pour cela, rendez-vous sur le site LinuxPrinting.org et cliquez sur Printer listings : sélectionnez la marque et le modèle de votre imprimante, et vous affiche alors une page qui vous informe sur la qualité du support de votre imprimante sous Linux. Si cette page vous dit que votre imprimante est Paperweight avec un pingouin barré comme logo, alors ce n'est pas la peine d'aller plus loin ! Dans les autres cas, si vous avez un, deux ou trois pingouins, c'est que vous devez pouvoir faire quelque chose de votre imprimante sous Linux... continuez à lire ce chapitre !

D'une manière générale, la qualité du support d'une imprimante sous Linux dépend surtout du bon vouloir du constructeur : certains constructeurs comme HP et Epson collaborent avec la communauté du logiciel libre et leurs imprimantes sont bien supportées, alors que d'autres comme Canon ou Lexmark ne veulent pas dévoiler les spécifications techniques de leurs imprimantes, ce qui empêche l'écritures de pilotes pour Linux. Pour plus de détails sur le niveau de coopération du constructeur de votre imprimante avec la communauté du logiciel libre, consultez la page Vendor Info.

L'idéal est de vérifier ce critère avant d'acheter une imprimante. LinuxPrinting.org propose une page Suggested printers qui vous aide à choisir une bonne imprimante qui sera bien supportée sous Linux.

1.2. Un peu de théorie

Quelques connaissances théoriques sont nécessaires pour comprendre les différents formats et les différentes couches logicielles impliquée dans la chaîne d'impression en fonction des capacités de votre imprimante. La lecture de ce document (en anglais) vous permettra de beaucoup mieux comprendre la suite.

1.3. Noter le driver recommandé

Maintenant que vous avez les bases théories requises, retournez dans Printer listing sur le site LinuxPrinting.org, sélectionnez à nouveau votre imprimante et notez le driver recommandé pour faire marcher votre imprimante sous Linux :

  • si le driver recommandé est Postscript, cliquez sur view PPD, puis enregistrez le fichier PPD sous le nom conseillé dans les commentaires au début du fichier ;

  • si le driver recommandé est Gimp-print, faites de même ;

  • si ... [TODO : compléter]

2. Installer et configurer CUPS

2.1. Charger les modules noyau

Avant d'installer CUPS, il faut charger les modules du noyau qui vont permettre à votre ordinateur de communiquer avec votre imprimante. Si vous avez bien suivi mes consignes au chapitre Configuration du noyau Linux, vous avez du compiler les modules requis, il ne reste plus qu'à les charger à la main :

  • si vous avez une imprimante USB :

    
# modprobe usblp
    
  • si vous avez une imprimante sur port parallèle :

    
# modprobe lp
    

Une fois que vous aurez configuré votre imprimante dans CUPS, ce dernier se chargera d'insérer les modules requis au démarrage du système.

2.2. Installer CUPS

Installez les packages de CUPS :


# apt-get install cupsys cupsys-client cupsys-bsd foomatic-filters gs-esp

Si le driver recommandé pour votre imprimante est Gimp-print, installez en plus le package cupsys-driver-gimpprint. Si le driver recommandé est hpijs, installez en plus le package du même nom, hpijs.

2.3. Installer le fichier PPD

Si vous avez téléchargé un fichier PPD sur LinuxPrinting.org, copiez-le maintenant dans le répertoire /usr/share/cups/model/. Par exemple, pour une imprimante HP LaserJet 1300 :


# cp HP-LaserJet_1300-Postscript.ppd /usr/share/cups/model/

puis demandez à CUPS de tenir compte de ce changement :


# /etc/init.d/cupsys reload
Reloading CUPSys: cupsd.

2.4. Configurer CUPS

La configuration de CUPS se fait via une interface Web, qui, par défaut, n'est accessible qu'en local. Ouvrez donc votre navigateur web favori (si vous n'avez pas de serveur graphique, vous pouvez utiliser un navigateur web en console comme w3m) et tapez l'URL http://localhost:631/admin/.

Il va vous demander de vous authentifier : entez root comme login et votre mot de passe root (comme vous accédez à l'interface web en local sur la machine, votre mot de passe root ne sera pas transmis en clair à l'extérieur).

Note

Si vous voulez qu'un utilisateur qui ne connaît pas le mot de passe root puisse administrer CUPS par l'interface web, ajoutez-le au groupe lpadmin ; il pourra alors y accéder avec son login et son mot de passe.

Vous arrivez alors dans l'interface d'administration de CUPS :

Figure F-1. Interface d'administration de CUPS

Cliquez sur Ajouter une imprimante et suivez l'assistant :

  1. donnez un nom (sans espace) à votre imprimante (et éventuellement un emplacement et une description) ;

  2. sélectionnez le périphérique d'accès à l'imprimante : si c'est une imprimante sur port parallèle, sélectionnez Parallel port #1, si c'est une imprimante sur port USB, sélectionnez USB printer #1 ;

  3. sélectionnez la marque de votre imprimante ;

  4. sélectionnez le modèle de votre imprimante : si le nom exact n'apparaît pas, rappelez-vous du nom du driver qui était recommandé par LinuxPrinting.org.

Il vous informe alors que l'imprimante a été ajoutée avec succès. Cliquez sur le nom de l'imprimante pour aller directement à la page de status de celle-ci :

Figure F-2. Page de status de l'imprimante

Si le champ d'état de l'imprimante indique qu'elle est à l'arrêt, cliquez sur Démarrer l'imprimante. Ensuite, cliquez sur Configurer l'imprimante pour régler un certain nombre de paramètres (taille du papier, résolution, ...). Enfin, cliquez sur Imprimer page de test pour voir si vous êtes capable de faire cracher quelque chose à votre imprimante sous Linux !

3. Imprimer !

3.1. Les commandes de base

Tout d'abord, il faut connaître quelques commandes de base :

  • lpq affiche l'état de l'imprimante et la queue d'impression ;

  • lprm 12 supprime le job numéro 12 de la queue d'impression ;

  • lp rapport.ps ajoute le fichier PostScript rapport.ps à la queue d'impression de l'imprimante (si plusieurs imprimante sont configuées dans CUPS, il faut ajouter -d nom_de_l'imprimante dans la commande) ;

  • lp -n 3 -P 2,12-42,72 -d renoir rapport.ps ajoute à la queue d'impression de l'imprimante renoir l'impression en trois exemplaires des pages 2 et 72 ainsi que de toutes les pages entre 12 et 42 du fichier rapport.ps.

3.2. Imprimer depuis une application

La plupart des applications graphiques proposent un menu d'impression comme sous Windows... donc vous ne devriez pas être trop dérouté !

Figure F-3. Menu d'impression d'OpenOffice

4. Transformer l'ordinateur en serveur d'impression

Maintenant que l'impression en local marche, il est facile de transformer l'ordinateur en serveur d'impression ; les autres ordinateurs du réseau pourront alors se servir de l'imprimante à distance !

4.1. Configuration du serveur d'impression

Sur l'ordinateur auquel est connecté l'imprimante (désormais appelé serveur d'impression), éditez en root le fichier /etc/cups/cupsd.conf et positionnez-vous au niveau des lignes suivantes :


<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>

Modifiez le contenu de ce paragraphe pour autoriser d'autres ordinateurs du réseau à utiliser le serveur Cups de l'ordinateur. Par exemple, pour que tous les ordinateurs ayant des IPs comprises entre 192.168.0.1 et 192.168.0.255 puissent utiliser le serveur d'impression, modifiez le paragraphe pour qu'il contienne :


<Location />
Order Deny,Allow
Deny From All
Allow From 192.168.0.0/255.255.255.0
</Location>

Ensuite, dites à Cups de relire son fichier de configuration :


# /etc/init.d/cupsys reload
Reloading CUPSys: cupsd.

4.2. Configuration des clients sous Debian GNU/Linux

Sur chaque ordinateur du réseau sous Debian susceptible d'utiliser le serveur d'impression, exécutez les instructions ci-dessous.

Tout d'abord, installez le programme client de Cups :


# apt-get install cupsys-client

Ensuite, éditez le fichier /etc/cups/client.conf et décommentez la ligne commençant par ServerName. Sur cette ligne, vous devez alors préciser l'adresse IP ou le nom DNS du serveur d'impression.

Par exemple, si votre serveur d'impression a l'adresse IP 192.168.0.42, le fichier /etc/cups/client.conf devra contenir :


ServerName 192.168.0.42

Vous pouvez désormais imprimer depuis le poste client comme si l'imprimante était connectée directement à l'ordinateur : la commande est la même !