next up previous contents index
Next: Filtres d'impression Up: Installer une nouvelle imprimante Previous: Installer une nouvelle imprimante

Un exemple simple de configuration

Le fichier de configuration d'une imprimante est /etc/printcap. Voici un exemple simple de configuration d'imprimante :  

#----------------------------------------#
# simple, un modele simple pour printcap #
#----------------------------------------#

# cf. /var/lib/apsfilter

# sd nom du repertoire de la file d'attente
#
# lp nom du port auquel l'imprimante est connecte
#	/dev/lp1 pour LPT1
#	/dev/ttyS0 pour COM1
#	/dev/ttyS1 pour COM2
#	/dev/null pour des tests sans gacher de papier...
#
# if charge un filtre
#
# lf specifie le fichier journal d'erreurs
#	dans cet exemple, il faudra creer le fichier /usr/spool/lp1/simple.log
#	et lui affecter le groupe lp et les droits 664 :
#	chgrp lp /usr/spool/lp1/simple.log
#	chmod 664 /usr/spool/lp1/simple.log
#
# mx#0 desactive des limites de taille de fichiers a imprimer
#
# sh desactive la page d'en tete
#
# sf desactive le saut de page
#

simple|simple-printer|Un simple printer qui ecrit dans un fichier:\
	:sd=/usr/spool/lp1:\
	:lp=/dev/null:\
	:if=/root/simple-if.tcl:\
	:lf=/usr/spool/lp1/simple-log:\
	:mx#0:\
	:sh:\
	:sf:

Pour économiser du papier, cette imprimante imprimera sur le périphérique /dev/null (corbeille, ou trou noir). Une fois installée et les essais terminés, on n'aura qu'à remplacer la ligne :lp=/dev/null:\ par :lp=/dev/lp1:\.

La déclaration pour chaque imprimante doit tenir sur une seule ligne, le charactère \ permet de faire tenir les différents champs sur plusieurs lignes (il ne doivent cependant pas être suivis par un espace ou une tabulation).

Le filtre utilisé est un programme Tcl qui écrit la date courante suivi par l'entrée standard dans le fichier /tmp/simple.out :

 

#!/usr/bin/tclsh

set outfile [open /tmp/simple.out w]

puts $outfile "------------------------------------------------"
flush $outfile
exec date >@ $outfile
puts $outfile "------------------------------------------------"

while { [gets stdin line] != -1} {
    puts $outfile $line
}
close $outfile

Le journal des messages d'erreur peut être crée comme suit (on fabrique un fichier vide, puis on lui attribue les droits qu'il faut) :

cd /usr/spool/lpd
touch simple-log
chgrp lp simple-log
chmod ug=rw,o=r simple-log

Pour utiliser une telle imprimante, il faut éditer le fichier d'initialisation /etc/rc.d/rc.local, et rajouter les lignes suivantes :

echo "Configuration de l'imprimante simple..."

/usr/sbin/lpc up simple

et taper en ligne de commande :  

lpr -Psimple fichier

On peut par ailleurs ajouter un répertoire spécial pour cette imprimante dans la file d'attente (là où sont mis les fichiers en attendant qu'ils puissent être imprimés), comme /usr/spool/lpd/simple, a condition de le préciser en remplacant dans le fichier /etc/printcap la ligne indiquant le répertoire de la file d'attente :    

sd=/var/spool/lpd/simple:\

Voici un exemple d'utilisation. Il faut d'abord relancer lpd :

lpc restart all

La présence du fichier /tmp/simple.out est la preuve que le système est bien configuré (cette impression peut se faire sans qu'une imprimante ne soit réelement connectée, elle permet juste de vérifier que le fichier /etc/printcap ainsi que le démon lpd et les commandes telles que lpr, lpq, lprm et lpc fonctionnent) :

ls -l | lpr -Psimple

Le fichier simple.out doit alors ressembler à ca (sa présence prouve que tout est correctement configuré) :

------------------------------------------------
Sat Mar 20 14:42:33 CET 1999
------------------------------------------------
total 37
-rw-r--r--   1 mathieu  users           8 Jan 31 18:16 fictest
-rwxr--r--   1 mathieu  users         313 Jan 31 18:53 lc.tcl
-rwxr--r--   1 mathieu  users         215 Sep 30 22:16 lc.tcl~
-rwxr--r--   1 mathieu  users         378 Jan 31 18:25 questions.tcl
-rwxr--r--   1 mathieu  users          74 Oct  3 23:40 questions.tcl~
-rwxr-xr-x   1 root     root          647 Dec  2 16:02 simple-if.tcl
-rwxr-xr-x   1 root     root          497 Dec  2 15:53 simple-if.tcl~
-rwxr--r--   1 mathieu  users        6990 Jan 31 19:04 simple.tcl
-rwxr--r--   1 mathieu  users        7064 Jan 31 18:42 simple.tcl~
-rwxr--r--   1 mathieu  users        3153 Feb  2 07:42 tkdraw
-rwxr--r--   1 mathieu  users        3153 Feb  2 07:33 tkdraw~
-rwxr--r--   1 mathieu  users         937 Jan 31 20:53 tkedit
-rwxr--r--   1 mathieu  users         399 Oct  6 19:42 tkedit~
-rwxr--r--   1 mathieu  users        2796 Feb  1 19:52 tkmin
-rwxr--r--   1 mathieu  users         777 Oct  6 20:16 tkmin~
-rwxr--r--   1 mathieu  users         442 Jan 31 19:22 tksalut
-rwxr--r--   1 mathieu  users         106 Oct  5 23:30 tksalut~

Sans spécification de nom d'imprimante, celle utilisée par défaut sera celle contenue dans la variable d'environnement $PRINTER (lp en général). Pour définir l'imprimante lp, il suffit de la déclarer comme suit dans le fichier /etc/printcap :  

lp|Nom de l'imprimante:\

ou

Nom de l'imprimante|lp:\

On peut remplacer Nom de l'imprimante par le vrai nom de l'imprimante, ou par tout autre nom.

  Si ca ne marche pas avec une vraie imprimante, il existe une commande, lptest, qui produit une sortie ASCII. On peut rediriger cette sortie vers le périphérique de l'imprimante pour voir si il s'agit d'un problème de configuration d'imprimante :

lptest > /dev/lp1

ou, pour avoir 6 lignes de 35 caractères seulement :

lptest 35 6 > /dev/lp1

Le résultat ressemble à ceci :

!"#$%&'()*+,-./0123456789:;<=>?@ABC
"#$%&'()*+,-./0123456789:;<=>?@ABCD
#$%&'()*+,-./0123456789:;<=>?@ABCDE
$%&'()*+,-./0123456789:;<=>?@ABCDEF
%&'()*+,-./0123456789:;<=>?@ABCDEFG
&'()*+,-./0123456789:;<=>?@ABCDEFGH

On peut aussi tester simplement l'une des commandes suivantes :

lptest | lpr
lpr test.txt
lptest > /dev/lp1
cat test.txt > /dev/lp1

Les fichiers suivants recueillent les messages d'erreur de l'imprimante, il seront donc à consulter si l'impression ne marche pas (l'exemple est prit pour l'imprimante simple) :

/var/spool/lpd/simple/status
/var/log/lpd-errs
/sbin/pac


next up previous contents index
Next: Filtres d'impression Up: Installer une nouvelle imprimante Previous: Installer une nouvelle imprimante
MATHIEU DECORE
1999-11-03
Merci de me dire ce que pensez de ce document.