[Linux-bruxelles] HP 840C - Installation
Mnemonic Engineer
mnemonic at mail.be
Ven 5 Juil 20:26:17 CEST 2002
Oula, la mailing list commence a gonfler, 1Mega pour Juin 2002 ! :-)
Bas voila, je viens de relire la mailing list du mois passe, j'ai remarque
que quelqu'un voulais configurer une HP 840C sous Linux.
En gros, la directive a suivre pour configurer correctement une imprimante sur
quasi n'importe quel UNIX, est de :
1/ Identifier son device ( /dev/lp0, /dev/usb/lp0, /dev/lpt0, /dev/ulpt0,
...) et de bien entendu verifier s'est est active dans le noyau.
2/ Faire un test brut, c'est-a-dire envoyer un mot par exemple :
# echo "TEST" > /dev/lp0
L'imprimante doit au moins reagir, si vous avez de la chance elle
imprimera ce mot, mais ne vous etonnez pas de voir un effet d'escalier
ou des caracteres etranges :-) c'est un test brut.
3/ Verifier que LPR ou LPRng est installe :
# /usr/sbin/lpd -V
LPRng-3.8.12, Copyright 1988-2002 Patrick Powell, <papowell at lprng.com>
4/ Verifier que l'imprimante est supportee par Ghostscript (voir site).
Normalement dans le cas d'une HP Deskjet 840C/845C il s'agit du pilote
"cdj880" (gs -h pour afficher la liste des pilotes qui ont ete actives
lors de la compilation de Ghostscript).
5/ Editer (de preference creer un nouveau) un fichier printcap (PRINTer
CAPabilities) generalement dans /etc, voici un exemple :
lp|hpdj:\
:sh:\
:lp=/dev/ulpt0:\
:sd=/var/spool/lpd:\
:mx#0:\
:lf=/var/log/lpd-errs:\
:if=/usr/local/libexec/hpif:
"lp" est le nom pricipal de l'imprimante, "hpdj" le nom alternatif.
Vous l'aurez remarque le device est defini par "lp=", le repertoire du
spooler par "sd=" (endroit ou lpd va stocker les donnees en attente
d'impression, dans le cas d'un reboot, lpd vas lire les donnes qui y
sont restes si la precedente impression n'a pas ete achevee). Bien
entendu, il faut que ce repertoire existe (il peut etre interessant de
creer des sous-repertoires dans le cas de multiples imprimantes).
Si on avais defini "mx#100", le spooler serait limite a 100 entrees a
la fois, dans le cas de "mx#0" pas de limite (il est toujour interessant
de limiter la taille du spooler pour eviter le(s) gaspilage/abus).
"lf=" le fichier ou son logges les erreurs d'impression (spooler,
imprimante, device, ...) et enfin "if=" qui defini l'emplacement du
filtre d'impression.
6/ Creer un filtre d'impression, voici un exemple :
#!/bin/sh
#
# Filtre d'impression pour une imprimante de la serie HP Deskjet 8xx
# Simule une imprimante PostScript
#
# Traiter LF comme CR+LF (retour chariot)
# Fontionne generalement sur les imprimantes modernes commenter si
# ce n'est pas le cas.
#
printf "\033&k2G" || exit 2
#
# Lire les deux premiers caracteres du fichier, technique qui permet
# de detecter s'il s'agit d'un document PostScript
#
read premiere_ligne
deux_premiers_char=`expr "$premiere_ligne" : '\(..\)'`
#
if [ "$deux_premiers_char" = "%!" ]; then
#
# Il s'agit d'un document PostScript : utilisation de Ghostscript
# Adapter -sDEVICE si necessaire (gs -h), -dQuality est un parametre
# specifique au driver cdj880
#
exec 3>&1 1>&2
/usr/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=cdj880 -dQuality=0 \
-sOutputFile=/dev/fd/3 - && exit 0
#
/usr/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=cdj880 -dQuality=0 \
-sOutputFile=- - && exit 0
else
#
# Dans le cas de texte ASCII ou HP/PCL (Samba ?), imprimer directement
# et ejecter la derniere feuille
#
echo $premiere_ligne && cat && printf "\033&10H" && exit 0
fi
Ce filtre doit se trouver ou il a ete defini dans printcap, et doit avoir
les attributs d'execution (chmod 755).
7/ Lancer lpd, utiliser lpc pour controler l'etat de l'imprimante (mode
parametre ou interactif) exemple : lpc status lp, lpc status all
L'imprimante est normalement prete a l'usage.
8/ Tester :
$ echo "Ceci est un test !" | lpr
$ cat fichierPS.ps | lpr
9/ Si tout fonctionne correctement, vous pouvez activer lpd au boot :-)
-----------------------------------------------------
Mail.be, Free WebMail and Virtual Office
http://www.mail.be
Plus d'informations sur la liste de diffusion Linux-bruxelles