Pour utiliser des imprimantes avec le gestionnaire d'impression, il vous faudra configurer à la fois la partie matérielle (c'est à dire les imprimantes) et la partie logicielle (c'est à dire LPD). Ce document présente deux niveaux de configuration:
La section Configuration simple de l'imprimante vous apprendra à connecter une imprimante, à renseigner LPD sur la façon dont il doit communiquer avec elle, et à imprimer de simples fichiers textes.
La section Configuration avancée de l'imprimante vous apprendra à imprimer différents formats de fichiers, des pages d'en-tête, par l'intermédiaire d'un réseau, à contrôler l'accès aux imprimantes, et comptabiliser leur utilisation.
Cette section vous apprendra à configurer l'imprimante et LPD. Elle présente les bases:
La section Configuration matérielle donne des indications sur la façon de connecter l'imprimante à l'un des ports de votre ordinateur.
La section Configuration
logicielle montre comment renseigner le fichier de
configuration du gestionnaire d'impression
LPD
(/etc/printcap
).
Si vous mettez en oeuvre une imprimante réceptionnant les données à imprimer via un protocole réseau plutôt que par les interfaces locales de l'ordinateur, lisez la section Imprimantes avec des interfaces utilisant des flux réseau.
Bien que cette section soit intitulée « Configuration simple de l'imprimante », elle s'avère en réalité plutôt complexe. La partie la plus difficile consiste à faire fonctionner l'imprimante avec votre ordinateur et LPD. Les options avancées telles les pages d'en-tête ou les statistiques sont relativement faciles à mettre en oeuvre une fois que l'imprimante fonctionne.
Cette section détaille les différentes manières de connecter une imprimante à votre PC. Elle discute les types de ports et de câbles, et de la configuration noyau dont vous pourriez avoir besoin afin que FreeBSD puisse communiquer avec l'imprimante.
Si vous avez déjà connecté votre imprimante et réussi à imprimer sous un autre système d'exploitation, vous pouvez probablement passer à la section Configuration logicielle.
Les imprimantes pour PC vendues aujourd'hui sont en général pourvues d'une ou plusieurs des trois interfaces suivantes:
Les interfaces série, également connues sous les noms RS-232 ou ports COM, utilisent un port série sur votre ordinateur pour envoyer des données à l'imprimante. Les interfaces série sont courantes, dans l'industrie informatique, et les câbles sont à la fois disponibles et faciles à réaliser. Elles réclament parfois des câbles spéciaux et peuvent nécessiter le paramétrage d'options de communication assez complexes. La plupart des ports série PC ont une vitesse de transmission maximale de 115200 bps, ce qui rend l'impression de travaux comportant beaucoup de graphismes malaisée.
Les interfaces parallèles utilisent un port parallèle sur votre ordinateur pour envoyer des données à l'imprimante. Les interfaces parallèles sont courantes dans l'industrie informatique et plus rapides que les interfaces série RS-232. Les câbles sont disponibles mais sont moins faciles à fabriquer à la main. En général, il n'y a aucune option de communication à paramétrer avec ces interfaces, ce qui rend leur configuration particulièrement simple.
Les interfaces parallèles sont parfois appelées « Centronics », nom tiré du type de connecteur de l'imprimante
Les interfaces USB, tenant leur nom de « Universal Serial Bus », ou « Bus Série Universel », s'avèrent plus véloces encore que les interfaces parallèles ou série RS-232. Les câbles sont simples et peu onéreux. L'USB surpasse les interfaces série RS-232 et parallèles pour l'impression, mais son support par les systèmes UNIX® n'est pas aussi bon. Une façon d'éviter ce problème est d'acheter une imprimante qui dispose à la fois d'une interface USB et d'une interface parallèle, comme beaucoup de modèles.
En règle générale, les interfaces parallèles n'offrent qu'une communication unidirectionnelle (de l'ordinateur vers l'imprimante) alors que les interfaces série et USB permettent un échange bidirectionnel. Les imprimantes et ports parallèles plus récents (EPP et ECP) peuvent communiquer dans les deux sens sous FreeBSD lorsque l'on a recourt à un câble conforme à la norme IEEE-1284.
La communication bidirectionnelle avec l'imprimante en utilisant un port parallèle se fait en général de l'une des deux manières suivantes. La première utilise un pilote d'imprimante compilé pour FreeBSD comprenant le langage propriétaire de l'imprimante. C'est couramment le cas des imprimantes jet d'encre et cela peut être utilisé pour retourner les niveaux d'encre et autres informations d'état. La seconde méthode est employée lorsque l'imprimante supporte PostScript®.
Les travaux PostScript® sont en fait des programmes envoyés à l'imprimante. Ils ne génèrent pas nécessairement de sortie papier et peuvent retourner leurs résultats directement à l'ordinateur. PostScript® utilise aussi la communication bidirectionnelle pour avertir l'ordinateur de problèmes, comme des erreurs dans le programme PostScript® ou des bourrages papier. Vos utilisateurs apprécieraient certainement de telles informations. De surcroît, la meilleure façon de tenir des statistiques sérieusement avec une imprimante PostScript® nécessite la communication bidirectionnelle: on demande à l'imprimante quel est son compteur de pages (combien en a-t-elle imprimées depuis sa fabrication), puis on lui envoie le travail de l'utilisateur, enfin on lui redemande son compteur de pages. La différence entre les deux valeurs donne la consommation de papier que vous pouvez attribuer à cet utilisateur.
Pour raccorder une imprimante utilisant une interface parallèle, branchez le câble Centronics sur l'imprimante et sur l'ordinateur. Les instructions accompagnant l'imprimante, l'ordinateur, ou les deux, devraient parfaitement vous renseigner.
Souvenez-vous du port parallèle que vous avez
utilisé sur l'ordinateur. Pour FreeBSD, le premier se
nomme ppc0
; le deuxième,
ppc1
, et ainsi de suite. Le nom du
fichier spécial de périphérique de
l'imprimante suit les mêmes règles:
/dev/lpt0
pour celle connectée
sur le premier port parallèle, etc.
Pour raccorder une imprimante utilisant une interface série, branchez le câble série adéquat sur l'imprimante et sur l'ordinateur. Les instructions accompagnant l'imprimante, l'ordinateur, ou les deux, devraient parfaitement vous renseigner.
Si vous n'êtes pas sûr de savoir quel est le bon câble, voici ce que vous pouvez essayer:
Un câble modem relie chacune des broches du connecteur depuis l'une des extrémités du câble directement à la broche lui correspondant dans le connecteur de l'autre extrémité. Ce type de câble est également connu sous le nom de câble « DTE-to-DCE ».
Un câble null-modem relie certaines des broches directement, en intervertit d'autres (par exemple, « émission de données » et « réception de données »), et en court-circuite d'autres en interne sur chacun des sertissages des connecteurs. Ce type de câble est également connu sous le nom de câble « DTE-to-DTE ».
Un câble série pour imprimante, requis par certaines imprimantes peu conventionnelles, ressemble au câble null-modem, à ceci près qu'il envoie certains signaux à l'autre extrémité au lieu de les court-circuiter en interne.
Vous devriez également définir les
paramètres de communication pour l'imprimante,
d'ordinaire en utilisant les contrôles sur la face
avant ou les commutateurs sur l'imprimante. Choisissez la
valeur la plus élevée de
bps
(bits par seconde, encore
appelés « vitesse de transmission »)
autorisée conjointement par votre ordinateur et
votre imprimante. Choisissez 7 ou 8 bits de
données; aucun contrôle de parité ou
un bit de parité paire ou impaire; et 1 ou 2 bits
d'arrêt. Choisissez également un protocole
de contrôle de flux: soit aucun, soit XON/XOFF
(également appelé « in-band », ou
encore « contrôle logiciel »). Retenez
ces paramètres pour la configuration logicielle,
dans la section qui suit.
Cette section détaille la configuration logicielle nécessaire pour imprimer sous FreeBSD avec le gestionnaire d'impression LPD.
Voici un aperçu des étapes à suivre:
Configurez le noyau, si nécessaire, pour utiliser le port sur lequel vous raccorderez votre imprimante; la section Configurer le noyau de FreeBSD vous donnera la marche à suivre.
Paramétrez le mode de communication du port parallèle si vous utilisez une imprimante de ce type; la section Paramétrer le mode de communication du port parallèle vous donnera les détails.
Configurez LPD pour qu'il
communique avec l'imprimante en renseignant le fichier
/etc/printcap
. Vous apprendrez
comment faire un peu plus loin dans ce chapitre.
Le noyau du système d'exploitation est compilé avec le support d'un certain ensemble de périphériques. Les interfaces série ou parallèle de votre imprimante en font partie. De ce fait, vous pourriez avoir à ajouter le support d'un port série ou parallèle supplémentaire si votre noyau n'a pas déjà été configuré en ce sens.
Pour savoir si le support d'une interface série est activé dans le noyau que vous êtes en train d'utiliser, entrez:
#
grep sioN /var/run/dmesg.boot
Où N
représente le numéro du port série,
en commençant à zéro. Si vous
obtenez un affichage similaire à:
sio2 at port 0x3e8-0x3ef irq 5 on isa sio2: type 16550A
alors le port est activé dans le noyau.
Pour savoir si le noyau supporte une interface parallèle, entrez:
#
grep ppcN /var/run/dmesg.boot
Où N
représente le numéro du port
parallèle, en commençant à
zéro. Si vous obtenez un affichage similaire
à:
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold
alors le port est activé dans le noyau.
Il se pourrait que vous ayez à reconfigurer le noyau afin que le système détecte et puisse utiliser un port parallèle ou série auquel vous avez connecté votre imprimante.
Pour ajouter le support d'un port série, voyez la section sur la configuration du noyau. Pour ajouter le support du port parallèle, voyez cette même section et celle qui suit.
Lorsque vous utilisez l'interface parallèle, vous avez le choix entre deux modes de communication avec l'imprimante: par interruption, ou par polling (interrogation régulière ou scrutation). Le pilote d'imprimante générique (lpt(4)) de FreeBSD utilise le système ppbus(4), qui contrôle le chipset du port via le pilote ppc(4).
Le mode par interruption est le mode par défaut avec un noyau GENERIC. De cette manière, le système d'exploitation utilise une ligne d'interruption (IRQ) pour déterminer si l'imprimante est prête à recevoir des données.
Le mode par scrutation enjoint au système d'exploitation d'interroger à intervalles réguliers l'imprimante pour savoir si elle est prête à recevoir d'autres données. Lorsqu'elle répond par l'affirmative, le noyau lui en envoie plus.
Le mode par interruption est en général nettement plus rapide, mais consomme une précieuse ligne d'interruption (IRQ). On rapporte que certaines imprimantes HP récentes ne fonctionneraient pas correctement en mode par interruption, apparemment à cause d'un problème (pas encore très bien identifié) d'horloge. Ces imprimantes nécessitent le recours au mode par scrutation. Utilisez celui des deux qui fonctionne. Certaines imprimantes fonctionnent dans les deux modes, mais s'avèrent désagréablement lentes en mode par interruption.
Vous pouvez choisir le mode de communication de deux manières différentes: en configurant le noyau ou en utilisant le programme lptcontrol(8).
Pour paramétrer le mode de communication en configurant le noyau:
Editez le fichier de configuration de votre noyau.
Cherchez une entrée ppc0
. Si
vous voulez configurer le deuxième port
parallèle, cherchez plutôt
ppc1
. Ou ppc2
pour le troisième, et ainsi de suite.
Si vous souhaitez activer le mode par interruption, éditez la ligne suivante:
hint.ppc.0.irq="N
"
dans le fichier
/boot/device.hints
et remplacez
N
par le numéro
d'IRQ approprié. Le fichier de configuration
du noyau doit également comporter le pilote
ppc(4):
device ppc
Si vous souhaitez activer le mode par
scrutation, ôtez la ligne suivante de votre
fichier
/boot/device.hints
:
hint.ppc.0.irq="N
"
Dans certains cas, positionner le port en mode scrutation sous FreeBSD n'est pas suffisant. La plupart du temps cela vient du pilote acpi(4), ce dernier étant capable de sonder et d'attacher des périphériques, et donc de contrôler le mode d'accès au port de l'imprimante. Vous devrez donc vérifier votre configuration acpi(4) pour résoudre ce problème.
Sauvegardez le fichier, puis configurez, compilez, et installez le noyau avant de redémarrer. Consultez la section configuration du noyau pour plus de détails.
Pour paramétrer le mode de communication avec lptcontrol(8):
Entrez:
#
lptcontrol -i -d /dev/lptN
pour sélectionner le mode par interruption
pour
lptN
.
Entrez:
#
lptcontrol -p -d /dev/lptN
pour sélectionner le mode par scrutation pour
lptN
.
Vous pouvez placer ces commandes dans votre fichier
/etc/rc.local
pour sélectionner
le mode à chaque démarrage du système.
Consultez lptcontrol(8) pour obtenir plus
d'informations.
Avant de passer à la configuration du gestionnaire d'impression, vous devriez vous assurer que le système d'exploitation fait parvenir avec succès des données à l'imprimante. Il est beaucoup plus facile de déboguer séparément la communication avec l'imprimante et la configuration du gestionnaire d'impression.
Pour tester l'imprimante, nous allons lui envoyer du texte. Pour les imprimantes qui peuvent immédiatement imprimer les caractères qui leur sont envoyés, le programme lptest(1) est parfait: il génère les 96 caractères ASCII imprimables sur 96 lignes.
Pour une imprimante PostScript® (ou basée sur un autre langage), il va nous falloir un test plus sophistiqué. Un petit programme PostScript®, tel que celui qui suit, devrait suffire:
%!PS 100 100 moveto 300 300 lineto stroke 310 310 moveto /Helvetica findfont 12 scalefont setfont (Is this thing working?) show showpage
Le code PostScript® ci-dessus peut être placé dans un fichier et utilisé comme indiqué dans les exemples qui apparaissent dans les sections suivantes.
Lorsque ce document fait référence à un langage d'imprimante, il suppose un langage comme PostScript®, et pas le PCL de Hewlett-Packard. Quoique PCL dispose de fonctionnalités intéressantes, il est possible de mélanger du texte simple avec des séquences d'échappement. PostScript® ne permet pas d'imprimer du texte clair, c'est le type de langage d'imprimante pour lequel nous devons prendre des mesures particulières.
Cette section vous apprendra à vérifier si FreeBSD peut communiquer avec une imprimante connectée sur un port parallèle.
Pour tester une imprimante connectée sur un port parallèle:
Passez en root
avec
su(1).
Envoyez des données à l'imprimante.
Si l'imprimante peut sortir du texte simple, alors utilisez lptest(1). Entrez:
#
lptest > /dev/lptN
Où N
est le
numéro du port parallèle, en
commençant à zéro.
Si l'imprimante comprend le PostScript® ou un autre langage d'imprimante, alors envoyez lui un petit programme. Entrez:
#
cat > /dev/lptN
Tapez ensuite le programme, ligne à
ligne et attentivement, car
vous ne pouvez plus éditer une ligne une
fois que vous avez appuyé sur la touche
Retour Chariot
ou
Entrée
. Une fois
terminé, faites
CONTROL+D
, ou la combinaison
correspondant à votre fin de
fichier.
Une autre manière de procéder est de placer le programme dans un fichier et d'entrer:
#
cat fichier > /dev/lptN
Où fichier
désigne le nom du fichier que vous
désirez envoyer à
l'imprimante.
Vous devriez voir quelque chose s'imprimer. Ne vous inquiétez pas si l'apparence du texte n'est pas satisfaisante; nous remédierons à ce genre de soucis plus tard.
Dans cette section vous apprendrez à vérifier si FreeBSD parvient à communiquer avec une imprimante connectée à un port série.
Pour tester une imprimante connectée sur un port série:
Passez en root
avec
su(1).
Editez le fichier
/etc/remote
. Ajoutez
l'entrée suivante:
printer:dv=/dev/port
:br#bps-rate
:pa=parity
Où port
représente le fichier de
périphérique du port série
(ttyd0
, ttyd1
,
etc.), bps-rate
représente la vitesse en bits-par-seconde
à laquelle l'imprimante communique, et
parity
représente la
parité réclamée par l'imprimante
(even
pour paire,
odd
pour impaire,
none
pour aucune, ou
zero
pour zéro).
Voici un exemple d'entrée pour une imprimante connectée à 19200 bps, sans parité, sur le troisième port série:
printer:dv=/dev/ttyd2:br#19200:pa=none
Connectez-vous à l'imprimante avec tip(1). Entrez:
#
tip printer
Si cette étape ne fonctionne pas,
éditez le fichier
/etc/remote
à nouveau et
essayez d'utiliser
/dev/cuaaN
au lieu de
/dev/ttydN
.
Envoyez des données à l'imprimante.
Si l'imprimante peut sortir du texte simple, alors utilisez lptest(1). Entrez:
%
$lptest
Si l'imprimante comprend le PostScript® ou
tout autre langage d'imprimante, envoyez-lui un
petit programme. Entrez-le ligne à ligne
et très attentivement,
dans la mesure où les touches
d'édition, comme retour-arrière,
peuvent revêtir une signification
particulière pour l'imprimante. Vous
pourriez également avoir besoin d'un
caractère de fin de fichier
(« EOF ») particulier pour que
l'imprimante sache qu'elle a reçu tout le
programme. Pour les imprimantes PostScript®,
appuyez sur CONTROL+D
.
Une autre manière de procéder est de placer le programme dans un fichier et d'entrer:
%
>fichier
Où fichier
est le nom du fichier contenant le programme.
Après avoir envoyé le fichier avec
tip(1), appuyez sur la touche de fin de
fichier appropriée.
Vous devriez voir quelque chose s'imprimer. Ne vous inquiétez pas si l'apparence du texte n'est pas satisfaisante; nous remédierons à ce genre de soucis plus tard.
A ce stade, votre imprimante doit être branchée, votre noyau configuré pour communiquer avec elle (si cela est nécessaire); et vous avez réussi à faire parvenir des données simples à l'imprimante. Nous sommes maintenant prêts à paramétrer LPD pour qu'il contrôle l'accès à l'imprimante.
LPD se paramètre en
éditant le fichier
/etc/printcap
. Le gestionnaire
d'impression LPD le lit à
chaque fois que le gestionnaire est solicité, donc
les mises à jour du fichier sont immédiatement
prises en compte.
Le format du fichier printcap(5) est explicite.
Utilisez votre éditeur favori pour modifier
/etc/printcap
. Le format est identique
aux autres fichiers de configuration comme
/usr/share/misc/termcap
et
/etc/remote
. Pour obtenir des
informations complètes concernant ce format,
consultez cgetent(3).
Le paramétrage simple du gestionnaire d'impression s'effectue selon les étapes suivantes:
Choisissez un nom (et quelques alias
appropriés) pour l'imprimante, et placez-les dans
/etc/printcap
; lisez la section
Nommer
l'imprimante pour plus d'informations sur le
nommage.
Désactivez les pages d'en-tête (elles
sont activées par défaut) en
insérant le paramètre
sh
; lisez la section Supprimer les pages
d'en-tête pour plus d'informations.
Créez un répertoire de file d'attente,
et précisez son chemin d'accès avec le
paramètre sd
; lisez la section
Créer le
répertoire de fil d'attente pour obtenir
plus d'informations.
Sélectionnez l'entrée
dev
à utiliser pour
l'imprimante, et notez la dans
/etc/printcap
avec le
paramètre lp
; lisez la section
Identifier le
périphérique d'imprimante pour
obtenir plus d'informations. De plus, si l'imprimante
est reliée par un port série,
précisez les paramètres de communication
avec le paramètre ms#
, qui est
détaillé dans la section Configurer les
paramètres de communication du gestionnaire
d'impression.
Installez un filtre d'entrée sous forme de fichier texte simple; lisez la section Installer le filtre texte pour obtenir plus de détails.
Testez la configuration en imprimant quelque chose avec la commande lpr(1). Vous trouverez plus de détails dans les sections Tester l'impression et Résolution des problèmes.
Les imprimantes basées sur un langage d'impression, telles les imprimantes PostScript®, ne peuvent imprimer du texte simple directement. La configuration simple esquissée ci-dessus et détaillée dans les sections suivantes présuppose que si vous installez ce genre d'imprimante vous n'imprimerez que des fichiers qu'elle peut comprendre.
Les utilisateurs s'attendent souvent à pouvoir imprimer du texte simple sur n'importe laquelle des imprimante installées sur votre système. Les applications qui s'en remettent à LPD pour imprimer s'y attendent en général elles aussi. Si vous installez ce genre d'imprimante et désirez pouvoir imprimer à la fois des travaux dans le langage de l'imprimante et des travaux en texte simple, vous êtes instamment prié d'ajouter une étape supplémentaire à la configuration simple esquissée ci-dessus: installez un programme de conversion automatique texte simple vers PostScript® (ou tout autre langage d'imprimante). La section Prendre en charge des travaux texte sur des imprimantes PostScript® vous apprendra à le faire.
La première étape (facile) est de choisir un nom pour l'imprimante. Que vous choisissiez un nom fonctionnel ou fantaisiste n'a aucune importance puisque vous pouvez également fournir une série d'alias.
Au moins l'une des imprimantes définies dans le
fichier /etc/printcap
devrait avoir
pour alias lp
. C'est le nom de
l'imprimante par défaut. Si les utilisateurs n'ont
pas positionné la variable d'environnement
PRINTER
et ne spécifient pas le nom
d'une imprimante lorsqu'ils utilisent une ligne de
commande relative à LPD,
lp
sera l'imprimante par défaut
utilisée.
Par ailleurs, l'usage commun veut que le dernier alias d'une imprimante en soit une description complète, en incluant le fabricant et le modèle.
Une fois le nom et des alias communs choisis,
placez-les dans le fichier
/etc/printcap
. Le nom de
l'imprimante devrait commencer dans la colonne la plus
à gauche. Séparez chaque alias par une
barre verticale et mettez le caractère deux-points
après le dernier alias.
Dans l'exemple suivant, nous commençons avec le
squelette d'un /etc/printcap
qui
définit deux imprimantes (une Diablo 630 et une
imprimante PostScript® laser Panasonic KX-P4455):
# # /etc/printcap for host rose # rattan|line|diablo|lp|Diablo 630 Line Printer: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:
Dans cet exemple, la première imprimante se
nomme rattan
et possède les
alias suivants: line
,
diablo
, lp
et
Diablo 630 Line Printer
. Puisque
l'alias lp
lui est attribué,
elle est également l'imprimante par défaut.
La seconde s'appelle bamboo
et
possède les alias suivants: ps
,
PS
, S
,
panasonic
et Panasonic
KX-P4455 PostScript v51.4
.
Par défaut, le gestionnaire d'impression LPD imprime une page d'en-tête pour chaque impression. Celle-ci mentionne le nom de l'utilisateur qui a demandé l'impression, la machine qui l'a envoyé, et le nom de l'impression, en grands et jolis caractères. Malheureusement, tout ce texte supplémentaire parasite le débogage d'une configuration simple de l'imprimante, aussi supprimerons-nous ces pages d'en-têtes.
Pour cela, ajoutez le paramètre
sh
à l'entrée de
l'imprimante dans /etc/printcap
.
Voici un exemple de /etc/printcap
où sh
a été
ajouté:
# # /etc/printcap for host rose - no header pages anywhere # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:
Observez la façon dont nous avons respecté le format correct: la première ligne commence dans la colonne la plus à gauche, et les lignes suivantes sont indentées. Toutes les lignes d'une entrée sauf la dernière se terminent par un antislash.
La prochaine étape dans la configuration simple du gestionnaire d'impression consiste à créer un répertoire de file d'attente, c'est à dire un répertoire où les travaux vont demeurer jusqu'à ce qu'ils soient imprimés, et où un certain nombre d'autres fichiers nécessaires au gestionnaire d'impression prennent place.
A cause de la nature variable des répertoires
de file d'attente, il est d'usage de les placer dans
/var/spool
. Il n'est pas non plus
nécessaire de sauvegarder leur contenu. Les
recréer est aussi simple que de faire un
mkdir(1).
Il est également d'usage de créer le répertoire avec un nom identique à celui de l'imprimante, comme dans l'exemple ci-dessous:
#
mkdir /var/spool/nom-de-l-imprimante
Toutefois, si votre réseau comporte beaucoup
d'imprimantes, vous pouvez préférer placer
les répertoires de file d'attente dans un unique
répertoire que vous réserverez à
l'impression avec LPD. C'est
ce que nous allons faire pour les deux imprimantes de
notre exemple, rattan
et
bamboo
:
#
mkdir /var/spool/lpd
#
mkdir /var/spool/lpd/rattan
#
mkdir /var/spool/lpd/bamboo
Si la confidentialité des travaux
imprimés par les utilisateurs vous importe, vous
souhaiterez certainement protéger le
répertoire de file d'attente afin qu'il ne soit
pas accessible par tout le monde. Les
répertoires de file d'attente doivent appartenir,
être accessibles en lecture et écriture et
pouvoir être parcourus par l'utilisateur
daemon
et le groupe
daemon
, et personne d'autre.
C'est ce que nous allons faire pour les deux imprimantes
de notre exemple:
#
chown daemon:daemon /var/spool/lpd/rattan
#
chown daemon:daemon /var/spool/lpd/bamboo
#
chmod 770 /var/spool/lpd/rattan
#
chmod 770 /var/spool/lpd/bamboo
Pour finir, vous devez avertir
LPD de l'existence de ces
répertoires en utilisant le fichier
/etc/printcap
. Vous spécifiez
le chemin du répertoire file d'attente avec le
paramètre sd
:
# # /etc/printcap for host rose - added spooling directories # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:
Notez que le nom de l'imprimante commence dans la première colonne mais que toutes les autres entrées décrivant l'imprimante doivent être indentées et que chaque fin de ligne doit être protégée par un antislash.
Si vous ne précisez pas de répertoire de
file d'attente avec sd
, le gestionnaire
d'impression utilisera /var/spool/lpd
par défaut.
Dans la section Entrées des
périphériques nous avons identifié
l'entrée du répertoire
/dev
que FreeBSD utiliserait pour
communiquer avec l'imprimante. Maintenant, nous allons
passer cette information à
LPD. Quand le gestionnaire
d'impression aura une impression à effectuer, il
ouvrira le périphérique
spécifié au nom du programme de filtre (qui
est responsable de la transmission des données
à l'imprimante).
Positionnez l'entrée pour le chemin
d'accès /dev
dans le fichier
/etc/printcap
en utilisant le
paramètre lp
.
Dans notre exemple, supposons que
rattan
est sur le premier port
parallèle, et que bamboo
est sur
un sixième port série; voici les ajouts
à apporter à
/etc/printcap
:
# # /etc/printcap for host rose - identified what devices to use # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:
Si dans votre /etc/printcap
vous
ne précisez pas le paramètre
lp
pour une imprimante,
LPD utilisera
/dev/lp
par défaut. A l'heure
actuelle, il n'existe pas d'entrée
/dev/lp
sous FreeBSD.
Si l'imprimante que vous êtes en train d'installer est connectée à un port parallèle, vous pouvez directement vous rendre à la section Installer le filtre texte. Sinon, assurez-vous de suivre les instructions de la section qui suit.
Pour les imprimantes connectées au port série, LPD peut configurer la vitesse en bps, la parité, et d'autres paramètres de communication série, pour le compte du programme de filtre qui envoie les données à l'imprimante. C'est avantageux dans la mesure où:
Cela vous laisse essayer divers paramètres
simplement en éditant le fichier
/etc/printcap
; vous n'avez pas
besoin de recompiler le programme de filtre.
Cela permet au gestionnaire d'impression d'utiliser le même programme pour de multiples imprimantes qui peuvent avoir des paramètres de communication série différents.
Les paramètres
/etc/printcap
suivants
contrôlent les options de communication série
pour le périphérique spécifié
dans le paramètre lp
:
br#vitesse-bps
Positionne la vitesse de transmission du
périphérique à
vitesse-bps
, où
vitesse-bps
peut prendre
l'une des valeurs suivantes: 50, 75, 110, 134, 150,
200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200,
38400, 57600, ou 115200 bits par seconde.
ms#stty-mode
Positionne les options du périphérique de terminal après l'avoir ouvert. stty(1) présente les options disponibles.
Quand LPD ouvre le
périphérique spécifié par le
paramètre lp
, il positionne les
caractéristiques de ce périphérique
aux valeurs précisées par le
paramètre ms#
. Les modes
suivants, détaillés dans stty(1) sont
particulièrement intéressants:
parenb
, parodd
,
cs5
, cs6
,
cs7
, cs8
,
cstopb
, crtscts
, et
ixon
.
Peaufinons notre exemple pour l'imprimante qui est
connectée au sixième port série. Nous
allons paramétrer sa vitesse à 38400 bps.
Quant au mode, nous allons spécifier aucune
parité avec -parenb
, des
caractères 8 bits avec cs8
,
aucun contrôle modem avec clocal
et un contrôle de flux matériel avec
crtscts
:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:
Nous sommes maintenant en mesure de dire à
LPD quel filtre texte utiliser
pour envoyer les travaux à l'imprimante. Un
filtre texte, également connu
sous le nom de filtre
d'entrée, est un programme que
LPD lance lorsqu'il a une
impression à effectuer. Lorsque
LPD exécute le filtre
texte pour une imprimante, il redirige l'entrée
standard du filtre sur le travail d'impression, et la
sortie standard sur le fichier spécial de
périphérique spécifié par le
paramètre lp
. On attend du
filtre qu'il lise le travail d'impression sur son
entrée standard, effectue les transformations
nécessaires pour l'imprimante, et écrive le
résultat sur sa sortie standard, qui sera
imprimée. Pour plus d'informations sur les filtres
texte, lisez la section Filtres.
Pour notre configuration simple de l'imprimante, le
filtre texte peut être une petite procédure
d'interpréteur de commandes qui ne fera
qu'exécuter /bin/cat
pour
envoyer le travail d'impression à l'imprimante. Un
autre filtre est livré avec FreeBSD, nommé
lpf
, qui se charge de faire des
suppressions arrière et des soulignements pour les
imprimantes qui ne sauraient pas gérer correctement
ce genre de flux de caractères. Et bien sûr,
vous pouvez utiliser un autre filtre, quel qu'il soit. Le
filtre lpf
est détaillé
dans la section lpf: un filtre
texte.
Tout d'abord, composons le filtre
/usr/local/libexec/if-simple
qui sera
un simple filtre texte. Ecrivez ceci avec votre
éditeur de texte favori:
#!/bin/sh # # if-simple - Simple text input filter for lpd # Installed in /usr/local/libexec/if-simple # # Simply copies stdin to stdout. Ignores all filter arguments. /bin/cat && exit 0 exit 2
Rendez le fichier exécutable:
#
chmod 555 /usr/local/libexec/if-simple
Et avertissez LPD qu'il
doit l'utiliser, en renseignant le paramètre
if
dans
/etc/printcap
. Nous l'ajouterons aux
deux imprimantes utilisées jusqu'ici dans notre
/etc/printcap
d'exemple:
# # /etc/printcap for host rose - added text filter # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:\ :if=/usr/local/libexec/if-simple:
Vous trouverez une copie du filtre
if-simple
dans le répertoire
/usr/share/examples/printing
.
lpd(8) se lance depuis
/etc/rc
, avec la variable de
contrôle lpd_enable
. Cette
variable a NO
pour valeur par
défaut. Si vous ne l'avez pas déjà
fait, ajoutez la ligne:
lpd_enable="YES"
à votre /etc/rc.conf
, puis
relancez votre machine, ou lancez simplement
lpd(8).
#
lpd
Vous avez achevé la configuration simple de LPD. Malheureusement, les félicitations ne sont pas encore à l'ordre du jour, puisque nous devons encore tester la configuration et résoudre tout problème. Pour tester la configuration, essayez d'imprimer quelque chose. Pour imprimer avec le système LPD, vous devez utiliser la commande lpr(1), qui soumet un travail d'impression.
Vous pouvez combiner lpr(1) au programme lptest(1), que nous avons présenté à la section Vérifier la communication avec l'imprimante, pour produire du texte de test.
Pour tester la configuration simple de LPD
Entrez:
#
lptest 20 5 | lpr -Pnom-de-l-imprimante
Où
nom-de-l-imprimante
représente le nom (ou l'alias) d'une imprimante tel
que spécifié dans
/etc/printcap
. Pour tester
l'imprimante par défaut, tapez lpr(1) sans
aucun argument -P
. Encore une fois, si
vous faites ce test avec une imprimante qui s'attend
à recevoir du PostScript®, envoyez un programme
PostScript® au lieu d'employer lptest(1). Vous
pouvez le faire en plaçant le programme dans un
fichier et en entrant lpr
fichier
.
Pour une imprimante PostScript®, vous devriez obtenir le résultat du programme. Si vous utilisez lptest(1), alors votre sortie devrait ressembler à ça:
!"#$%&'()*+,-./01234 "#$%&'()*+,-./012345 #$%&'()*+,-./0123456 $%&'()*+,-./01234567 %&'()*+,-./012345678
Pour tester l'imprimante plus encore,
téléchargez des programmes (pour les
imprimantes basées sur un langage
spécifique) plus longs, ou lancez lptest(1)
avec des arguments différents. Par exemple,
lptest 80 60
produira 60 lignes de 80
caractères chacune.
Si l'impression ne fonctionne pas, lisez la section Résolution des problèmes.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.