<HTML> <HEAD> <TITLE>Comment Imprimer</TITLE> </HEAD> <BODY> <H1>3. <A NAME="s3"></A>Comment Imprimer</H1> <P> <A HREF="Printing-HOWTO.html#toc3">Contenu de cette section</A></P> <P></P> <P>Si le démon d'impression de votre machine est correctement configuré, vous pouvez lire le <I>Printing-Usage HOWTO</I></P> <P><CODE><http://www.loria.fr/services/linux/HOWTOFRENCH/Printing-Usage-HOWTO/Printing-Usage-HOWTO.html</CODE></P> <P>qui traite plus particulièrement de la commande <CODE>lpr</CODE> et de la manipulation des files d'impression.</P> <P></P> <P></P> <P>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.</P> <P></P> <P></P> <P></P> <H2>3.1 <A NAME="ss3.1"></A> Les périphériques d'imprimantes dans le système</H2> <P></P> <P>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 <CODE>/dev/lp?</CODE>.</P> <P></P> <P></P> <P>Si vous disposez d'une imprimante série, vous utiliserez bien sûr <CODE>/dev/ttyS?</CODE> (ou <CODE>/dev/ttys?</CODE>), et non pas <CODE>/dev/lp?</CODE> ni <CODE>/dev/cua?</CODE>. Le majeur de <CODE>/dev/ttyS?</CODE> est 4, celui de <CODE>/dev/cua?</CODE> est 5.</P> <P></P> <P></P> <P></P> <H2>3.2 <A NAME="ss3.2"></A> Le périphérique lp</H2> <P></P> <P></P> <H3>Noyaux antérieurs à 2.1.32</H3> <P></P> <P>Si vous utilisez une imprimante parallèle, vous devez disposer d'un noyau Linux compilé avec les gestionnaires de périphériques d'impression <CODE>lp</CODE>. Verifiez-le à l'aide de la commande</P> <P> <BLOCKQUOTE><CODE> <PRE> cat /proc/devices </PRE> </CODE></BLOCKQUOTE> </P> <P>qui doit vous montrer un ou plusieurs périphériques lp. De plus le répertoire <CODE>/dev</CODE> doit comporter la liste des périphériques <CODE>/dev/lp0</CODE>, <CODE>/dev/lp1</CODE>, ...</P> <P></P> <P></P> <P>Sur un système de type XT, <CODE>LPT1:</CODE> correspond à <CODE>/dev/lp0</CODE> (majeur 6, mineur 0), alors que sur un AT, LPT1: correspond à <CODE>/dev/lp1</CODE> (majeur 6, mineur 1).</P> <P> <BLOCKQUOTE><CODE> <PRE> Nom Majeur Mineur Port lp0 6 0 0x3bc lp1 6 1 0x378 lp2 6 2 0x278 </PRE> </CODE></BLOCKQUOTE> </P> <P>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.</P> <P></P> <P></P> <P>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.</P> <P></P> <P></P> <P>Vous ne pourrez pas utiliser les pilotes <CODE>plip</CODE> et <CODE>lp</CODE> en même temps. Vous pouvez cependant charger l'un ou l'autre soit manuellement, soit par <CODE>kerneld</CODE> 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.</P> <P></P> <P></P> <P>Un petit utilitaire appelé <CODE>tunelp</CODE> vous permet, sous le compte super-utilisateur, de régler les interruptions d'un périphérique <CODE>lp</CODE>, le mode de fonctionnement du pilote, la fréquence de scrutation, et plein d'autres options...</P> <P></P> <P></P> <P>Avec LILO et LOADLIN, vous pouvez configurer les adresses et interruptions utilisés par le pilote.</P> <P> <BLOCKQUOTE><CODE> <PRE> Syntaxe: lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]] Par exemple: lp=0x378,0 ou lp=0x278,5,0x378,7 ** </PRE> </CODE></BLOCKQUOTE> </P> <P>(**) le port <CODE>lp0</CODE> en <CODE>0x3bc</CODE> n'est plus utilisé sur les PC récents.</P> <P></P> <P></P> <P>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 <CODE>lp=0</CODE>.</P> <P></P> <P></P> <P>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 <CODE>/etc/conf.modules</CODE>, soit sur la ligne de commande de insmod en utilisant la même syntaxe. Les paramètres sont <CODE>io=port0,port1,port2</CODE> et <CODE>irq=irq0,irq1,irq2</CODE>. Lisez les mages de manuel de <CODE>insmod</CODE> pour plus d'information.</P> <P></P> <P></P> <P>Le code source du pilote de port parallèle se trouve dans <CODE>/usr/src/linux/drivers/char/lp.c</CODE>.</P> <P></P> <H3>Noyaux postérieurs à 2.1.32: le périphériqueparport.</H3> <P></P> <P>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 <CODE>parport</CODE>. L'ajout de ce <CODE>parport</CODE> corrige un certain nombre de problèmes dont était affublé <CODE>lp</CODE> - 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, ...</P> <P>Une prochaine version de ce document devrait couvrir le <CODE>parport</CODE> lorsque j'en aurai utilisé un, mais en attendant, vous pouvez lire le fichier <CODE>Documentation/parport.txt</CODE> dans les sources du noyau, ou aller sur le site <I>parport</I> à <CODE>http://www.cyberelk.demon.co.uk/parport.html</CODE></P> <P></P> <H2>3.3 <A NAME="ss3.3"></A> Les périphériques série</H2> <P></P> <P>Les périphériques série utilisables sont appelés <CODE>/dev/ttyS?</CODE> (les périphériques <CODE>/dev/cua?</CODE> sont aussi série mais pas utilisables dans ce domaine). L'utilitaire <CODE>stty</CODE> permet de visualiser ou de modifier les caractértiques d'un port donné. <CODE>setserial</CODE> permet de controler et configurer les IRQ et adresses d'entrée/sortie si besoin est. Référez-vous au <I>Serial-HOWTO</I> pour de plus amples renseignements.</P> <P></P> <P></P> <P>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.</P> <P></P> <P></P> <P>Si la commande <CODE>cat file > /dev/ttyS2</CODE> produit une sortie correcte pour les fichiers courts et tronquée pour les longs fichiers, vous êtes peut-être dans ce cas.</P> <P></P> <P></P> <P>Le délai de 30 secondes peut être ajusté à l'aide du paramètre ``closing_wait'' (attente fermeture) de la commande <CODE>setserial</CODE> (version 2.12 et ultérieure).</P> <P></P> <P></P> <P>Notez que les ports série sont généralement configurés au démarrage de la machine grace à un appel à <CODE>setserial</CODE> dans le fichier <CODE>/etc/rc.d/rc.serial</CODE>. Vous pouvez rajouter toute option nécessaire dans ce fichier.</P> <P></P> <P></P> <P></P> <HR> <P> Chapitre <A HREF="Printing-HOWTO-4.html">suivant</A>, Chapitre <A HREF="Printing-HOWTO-2.html">Précédent</A> <P> Table des matières de <A HREF="Printing-HOWTO.html#toc3">ce chapitre</A>, <A HREF="Printing-HOWTO.html#toc">Table des matières</A> générale</P> <P> <A HREF="Printing-HOWTO.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>