Si le démon d'impression de votre machine est correctement configuré, vous pouvez lire le Printing-Usage HOWTO
<http://www.loria.fr/services/linux/HOWTOFRENCH/Printing-Usage-HOWTO/Printing-Usage-HOWTO.html
qui traite plus particulièrement de la commande lpr
et de
la manipulation des files d'impression.
Si, par contre, vous venez d'installez un nouveau système (un qui marche, quoi...) vous souhaitez certainement configurer les services d'impression. Restez sur cette chaîne :-) ne zappez pas et allons-y.
Les imprimantes sont souvent rattachées (surtout les imprimantes
personnelles) au port parallèle. Elles sont gérées par
les périphériques de type /dev/lp?
.
Si vous disposez d'une imprimante série, vous utiliserez bien
sûr /dev/ttyS?
(ou /dev/ttys?
), et non pas
/dev/lp?
ni /dev/cua?
. Le majeur de /dev/ttyS?
est 4, celui de /dev/cua?
est 5.
Si vous utilisez une imprimante parallèle, vous devez disposer d'un
noyau Linux compilé avec les gestionnaires de
périphériques d'impression lp
. Verifiez-le à
l'aide de la commande
cat /proc/devices
qui doit vous montrer un ou plusieurs périphériques lp. De
plus le répertoire /dev
doit comporter la liste des
périphériques /dev/lp0
, /dev/lp1
, ...
Sur un système de type XT, LPT1:
correspond à
/dev/lp0
(majeur 6, mineur 0), alors que sur un AT, LPT1:
correspond à /dev/lp1
(majeur 6, mineur 1).
Nom Majeur Mineur Port
lp0 6 0 0x3bc
lp1 6 1 0x378
lp2 6 2 0x278
Le port parallèle peut être géré par le pilote du noyau de deux manières. D'une part par polling (scrutation), d'autre part par interruption. La méthode de gestion par interruption est en théorie plus efficace, puisque le gestionnaire n'est sollicité par une interruption qu'au moment où un travail est à effectuer. En pratique, il semble que ce soit dépendant de la machine. Dans beaucoup de cas, il n'y a pas tant de différence que cela.
Un certain nombre d'utilisateurs se sont plaints que leur port parallèle bidirectionnel n'était pas détecté lorsqu'ils utilisent un vieux cable unidirectionnel. Vérifiez que le vôtre est récent.
Vous ne pourrez pas utiliser les pilotes plip
et lp
en même
temps. Vous pouvez cependant charger l'un ou l'autre soit manuellement,
soit par kerneld
version 2.x (et noyaux au moins 1.3.x). En
configurant les interruptions avec attention, vous pourrez
théoriquement utilisez plip sur un port et lp sur l'autre.
Quelqu'un l'a fait en modifiant les pilotes... J'attends avec impatience
que quelqu'un me dise comment faire à partir d'une simple et
ingénieuse commande.
Un petit utilitaire appelé tunelp
vous permet, sous le compte
super-utilisateur, de régler les interruptions d'un
périphérique lp
, le mode de fonctionnement du pilote, la
fréquence de scrutation, et plein d'autres options...
Avec LILO et LOADLIN, vous pouvez configurer les adresses et interruptions utilisés par le pilote.
Syntaxe: lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]
Par exemple: lp=0x378,0 ou lp=0x278,5,0x378,7 **
(**) le port lp0
en 0x3bc
n'est plus utilisé sur les PC
récents.
Si cette caractéristique est utilisée, vous devez
spécifier tous les ports que vous souhaitez utiliser, il n'y a pas
de valeurs par défaut. Vous pouvez invalider un pilote en indiquant
lp=0
.
Lorsque le pilote est chargé en tant que module (version noyau 2 et
1.3.x), il est également possible de spécifier les lignes
d'interruption utilisées soit dans le fichier
/etc/conf.modules
, soit sur la ligne de commande de insmod en
utilisant la même syntaxe. Les paramètres sont
io=port0,port1,port2
et irq=irq0,irq1,irq2
. Lisez les
mages de manuel de insmod
pour plus d'information.
Le code source du pilote de port parallèle se trouve dans
/usr/src/linux/drivers/char/lp.c
.
Depuis le noyau 2.1.33 (il existe un patch pour la version 2.0.30), le
périphérique lp est simplement un client du nouveau
périphérique parport
. L'ajout de ce parport
corrige un certain nombre de problèmes dont était
affublé lp
- il peut partager le port avec d'autres pilotes, il
met dynamiquement en relation les ports parallèles disponibles avec
les numéros de périphériques plutôt que de
forcer une correspondance statique entre addresse d'entré/sortie et
numéro de port, ...
Une prochaine version de ce document devrait couvrir le parport
lorsque j'en aurai utilisé un, mais en attendant, vous pouvez lire
le fichier Documentation/parport.txt
dans les sources du noyau, ou
aller sur le site parport à http://www.cyberelk.demon.co.uk/parport.html
Les périphériques série utilisables sont
appelés /dev/ttyS?
(les périphériques
/dev/cua?
sont aussi série mais pas utilisables dans ce
domaine). L'utilitaire stty
permet de visualiser ou de modifier les
caractértiques d'un port donné. setserial
permet de
controler et configurer les IRQ et adresses d'entrée/sortie si
besoin est. Référez-vous au Serial-HOWTO pour de plus
amples renseignements.
Si vous utilisez une imprimante série lente avec le contrôle de flux, vous constaterez peut-être que certaines impressions sont tronquées. Ceci est certainement dû au port série dont le comportement par défaut est de purger son tampon des caractères non transmis dans les 30 secondes après sa fermeture. Une imprimante trop lente n'aura pas le temps de le vider. Le tampon peut contenir 4096 caractères.
Si la commande cat file> /dev/ttyS2
produit une sortie correcte
pour les fichiers courts et tronquée pour les longs fichiers, vous
êtes peut-être dans ce cas.
Le délai de 30 secondes peut être ajusté à
l'aide du paramètre ``closing_wait'' (attente fermeture) de la
commande setserial
(version 2.12 et ultérieure).
Notez que les ports série sont généralement
configurés au démarrage de la machine grace à un appel
à setserial
dans le fichier /etc/rc.d/rc.serial
.
Vous pouvez rajouter toute option nécessaire dans ce fichier.