[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