3. Comment Imprimer

Contenu de cette section

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.

3.1 Les périphériques d'imprimantes dans le système

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.

3.2 Le périphérique lp

Noyaux antérieurs à 2.1.32

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.

Noyaux postérieurs à 2.1.32: le périphériqueparport.

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

3.3 Les périphériques série

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.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre