L'impression avec Gentoo John P. Davis Phil Bordelon Wesley Leggette Carl Anderson Heinrich Wendel Sven Vermeulen Xavier Lüthi Matthieu Montaudouin Un guide complet pour imprimer avec Gentoo Linux. Ce document couvre l'impression locale et réseau. 1.2 28 août 2003 Installer CUPS et foomatic

Configurer l'impression sous Gentoo Linux est relativement aisé, grâce à  certains très bons programmes comme CUPS (the Common Unix Printing System) et foomatic. Ces deux programmes sont actuellement dans l'arbre de Portage, et sont très simples à configurer par l'utilisateur final.

Notez bien que CUPS ne dépend pas du bureau, cela signifie que vous pouvez suivre ces instructions pour imprimer aussi bien sous GNOME que sous KDE. Il existe d'autres alternatives pour y arriver, telles que l'utilitaire KDE de configuration de l'impression, mais je trouve CUPS plus simple et plus évolutif.

Avant d'installer CUPS, c'est une bonne idée de mettre à jour la variable USE dans le fichier /etc/make.conf.

ajoutez cups et usb (siv ous utilisez une imprimante se connectant par le port USB) à  votre variable USE actuelle.
USE="cups usb autre_var1 autre_var2"
				

Pour plus d'informations sur la variable USE, référez-vous au Guide Gentoo pour les paramètres USE

 
# emerge cups  
# emerge foomatic 
				
Mise en place des modules du noyau
Generalités

Maintenant que les paquets nécessaires ont été installés, il est temps d'installer l'imprimante.

Selon le type de connexion utilisé par votre imprimante, il sera nécessaire d'activer le port parallèle ou USB dans le noyau.

Cela est seulement nécessaire pour l'impression locale, si vous voulez imprimer via Samba, passez cette section. Si vous n'êtes pas sûr de la marche à suivre pour compiler le noyau, le HOWTO officiel se trouve ici. Assurez vous d'avoir trouvé comment compiler et installer de nouveaux modules sans devoir recompiler votre noyau et redémarrer votre ordinateur. Cela vous économisera bien du temps.
Modules USB

Pour activer le support des imprimantes USB, allez au USB support et activez Support for USB et USB Printer support. Les activer tous les deux comme modules installera usbcore.o et printer.o dans votre répertoire de modules. Je vous suggère l'utilisation de modules pour ne pas avoir à redémarrer votre ordinateur.

Une fois que le noyau est construit et l'ordinateur redémarré, il est temps de charger les modules nécessaires:

 
# modprobe usbcore 
# modprobe printer 
				

Une fois les modules correctement chargés, connectez l'imprimante et vérifiez /var/log/messages pour voir si elle a été détectée.

Si vous utilisez autre chose que sysklogd, votre fichier de log du noyau sera différent.
 
# tail -f /var/log/messages 
				

Vous devriez lire quelque chose comme ceci:

hub.c: USB new device connect on bus2/2, assigned device number 2 
printer.c: usblp0: USB bidirectional printer dev 2 if 0 alt 1 proto 2 vid 0x03F0 pid 0x1104
Modules du port parallèle

Pour activer le support du port parallèle, allez à Parallel port support et activez Parallel port support et PC-style hardware. Selon votre imprimante, vous devrez aussi activer Multi-IO cards (parallel and serial), Support for foreign hardware et IEEE 1284 transfer mode. Allez ensuite dans Character devices et activez Parallel Printer Support.

Après que le noyau ait été construit, assurez vous que l'imprimante est connectée et redémarrez votre ordinateur. Il est maintenant temps de charger les modules nécessaires:

# modprobe parport 
# modprobe parport_pc

Après que les modules se soient chargés correctement, branchez l'imprimante et vérifiez /var/log/messages pour voir si elle a été détectée.

Si vous utilisez quelque chose d'autre que sysklogd, votre fichier de log du noyau sera différent.
# tail /var/log/messages

Vous devriez voir quelque chose comme cela:

lp0: using parport0 (polling).
Tests de bas niveau

Avant de configurer l'imprimante avec CUPS, nous pouvons la tester avec quelques commandes simples de bas niveau.

# touch test.txt
# echo "Hello World" > test.txt
# cat test.txt > /dev/usb/lp0 

 Un alternative pour les imprimantes sur port parallèle: 
# cat test.txt > /dev/lp0 
Quelques imprimantes (par exemple plusieurs HP Laserjets) nécessitent un ^L (Control-L) à la fin du fichier pour activer l'impression. Sans le ^L, le cat se fera correctement, mais l'imprimante absorbera les données puis s'arrêtera et ne fera plus rien.
Pilotes pour imprimantes spéciales

Avant d'utiliser foomatic pour générer un fichier PPD, il peut être nécessaire de localiser les pilotes "officiels" pour votre imprimante. Par exemple, Epson propose plusieurs pilotes d'imprimantes pour les systèmes d'exploitation Open Source. Toutefois, comme dans le cas d'Epson, la plupart de ces pilotes ne sont pas Open Source.

Les pilotes d'imprimantes suivants sont disponibles en tant qu'ebuilds dans Portage: gimp-print, omni, hpijs, pnm2ppa.

Pour la plupart des imprimantes, en dehors des HP jets d'encre, vous pourrez utiliser les pilotes d'imprimante Linux standards. Allez voir la base de support d'imprimantes linuxprinting.org pour trouver des informations sur votre imprimante. Lisez bien la documentation fournie avec un pilote que vous téléchargez en ce qui concerne l'installation et les informations de licence.

Si vous utilisez une imprimante HP jet d'encre, il est nécessaire d'installer le pilote d'impression hpijs. Ce pilote interpréte correctement le Postscript pour que l'iprimante HP fonctionne. Le pilote hpijs est fait seulement pour les imprimantes jet d'encre HP, mais est disponible dans l'arbre de Portage par commodité. La documentation de HP pour le pilote hpijs sera placée dans /usr/share/doc/hpijs-<version>. L'auteur vous recommande fortement de la lire.
# emerge hpijs
Si vous utilisez une HP Laserjet, elle est peut être supportée via le système d'impression de GNOME. Si vous utilisez une imprimante autre qu'une HP jet d'encre, il n'est pas nécessaire d'installer ce pilote spécifique.
Configuration du fichier PPD

Il est temps à  présent de configurer l'imprimante et CUPS. Afin que votre imprimante interprète correctement le Postscript, CUPS a besoin d'un fichier PPD (Printer Postscript Definition). La manière la plus simple de générer un fichier PPD est d'utiliser foomatic.

Trois informations sont requises pour réaliser la commande ci-dessous; le modèle de l'imprimante, le device de l'imprimante, et le pilote d'imprimante (ce sera hpijs si vous avez eu besoin d'installer ce pilote spécial). Le pilote et l'ID de l'imprimante peuvent être trouvés (via grep) dans la base de données de foomatic, et le device est l'interface physique à laquelle est connectée l'imprimante (par exemple /dev/lp0, /dev/usb/lp0 ou, pour les imprimantes samba, smb://utilisateur:mot_de_passe@server/share).

Avant d'utiliser foomatic-configure, n'oubliez pas de démarrer cupsd.

# /etc/init.d/cupsd start
		
# grep $printer_model /usr/share/foomatic/db/source/printer/* 
# grep $print_device /usr/share/foomatic/db/source/driver/* 
# foomatic-configure -s cups -p $printer_model_number -c $print_device_path -n queue name -d driver 
				

Maintenant, voici un exemple plus spécifique. Le code suivant suppose que vous avez une Epson Stylus Color 980. Bien sur, vous devrez l'adapter à votre modèle d'imprimante actuel.

# grep Stylus Color 980 /usr/share/foomatic/db/source/printer/* 
Maintenant cherchez la ligne contenant: 
/usr/share/foomatic/db/source/printer/Epson-Stylus_Color_980.xml:   <model>Stylus Color 980</model>
 Epson-Stylus_Color_980 est l'ID de votre imprimante. 

# grep Epson-Stylus_Color_980 /usr/share/foomatic/db/source/driver/* 
/usr/share/foomatic/db/source/driver/gimp-print-ijs.xml:  <printer><id>printer/Epson-Stylus_Color_980</id></printer>
 Ici, votre pilote d'imprimante est gimp-print-ijs.

# foomatic-configure -s cups -p Epson-Stylus_Color_980 -c file:/dev/lp0 -n Epson -d gimp-print-ijs 
Si vous rencontrez des problèmes, vous pouvez consulter la documentation de foomatic ici ou vous rendre sur linuxprinting.org pour plus d'informations.
Configuration de CUPS

Maintenant que l'imprimante en elle-même est configurée, il faut configurer CUPS pour qu'il gère la file d'attente de l'imprimante. CUPS peut être accédé via un navigateur web sur le port 631 du serveur d'impression.

CUPS possède un fichier de configuration par défaut du démon qui peut, mais ne doit pas nécessairement, être modifié. Vous pouvez y jeter un coup d'oeil, il se trouve dans le répertoire /etc/cups/cupsd.conf.
# rc-update add cupsd default
# /etc/init.d/cupsd start
				

Le démon CUPS doit maintenant tourner, vous pouvez donc ouvrir votre navigateur favori et le diriger ici cliquez ensuite sur Manage Printer. Vous pourrez trouver à cet emplacement votre imprimante nouvellement installée, la configurer ou imprimer une page de test.

Si votre imprimante ne fonctionne pas, jetez un oeil au journal error_log de CUPS situé dans le répertoire que vous avez spécifié lors de la configuration.
Configurer des programmes pour imprimer avec CUPS
Géneralités

La plupart des programmes récents ont une interface CUPS native, donc vous ne devrez rien changer. Essayez juste d'imprimer avec votre programme.

The GIMP

Avant tout, il faut installer les extensions de The Gimp pour utiliser CUPS

# emerge gimp-print-cups 
				

A présent, lancez The Gimp puis ouvrez une image existante ou juste une image vide; cela n'a pas d'importance car tout ce qui nous intéresse, c'est le menu File. Cliquez avec le bouton droit sur l'image et allez sur File/Print. Lorsque la boîte de dialogue d'impression apparaît, cliquez sur new printer. Si votre imprimante n'est pas dans la liste, tapez le nom de votre imprimante puis sélectionnez son type. Voilà, tout est prêt pour imprimer à  partir de The Gimp. Vous pouvez affiner les paramètres et vous amuser un peu.

Utiliser Linux comme serveur d'impression compatible Windows

Linux est un bon serveur d'impression, en fait c'est un bon serveur pour tout. La première chose à faire est d'éditer le fichier /etc/samba/smb.conf pour ajuster vos paramètres. Le fichier smb.conf contient tous les paramètres qui feront que votre machine Linux ressemblera à un serveur Windows NT pour toute autre machine Windows. J'ai inclus ci-dessous un example très utilitaire de ce fichier. Editez le si nécessaire pour l'adapter à votre environnement réseau.

[global]

      workgroup = YOUR_WORKGROUP
      server string = Gentoo Linux Server
      encrypt passwords = True
      security = user
      smb passwd file = /etc/samba/private/smbpasswd
      log file = /var/log/samba/log.%m
      socket options = IPTOS_LOWDELAY TCP_NODELAY
      domain master = Yes
      local master = Yes
      preferred master = Yes
      os level = 65
      dns proxy = No
      name resolve order = lmhosts host bcast
      bind interfaces only = True
      interfaces = eth0
      hosts deny = ALL
      hosts allow = 192.168.1.4 127.0.0.1 # liste d'hôtes autorisés ici 
      debug level = 1
      create mask = 0644
      directory mask = 0755
      level2 oplocks = True
      read raw = no
      write cache size = 262144

[printers]
      comment = All Printer
      path = /var/spool/samba
      browseable = no 
   
		

Maintenant que SAMBA est configuré, redémarrez samba, allez sur votre machine Windows et installez-y une imprimante réseau. Simple comme bonjour, non ?