LP
Section: Manuel du programmeur Linux (4) Updated: 25 juillet 2003 Index
NOM
SYNOPSIS
CONFIGURATION
DESCRIPTION
FICHIERS
AUTEURS
VOIR AUSSI
TRADUCTION
NOM
lp - Imprimantes parallèles.
SYNOPSIS
CONFIGURATION
lp[0-2] sont des périphériques caractères pour les imprimantes à
liaison parallèle. Ils ont un numéro majeur 6 et un numéro mineur 0-2.
Le numéro mineur correspond aux ports d'imprimantes d'adresse de base
0x03bc, 0x0378 et 0x0278.
Habituellement ils ont un mode d'accès 220 et un propriétaire root.lp.
On peut utiliser les ports parallèles soit en scrutation (polling) soit
en interruption. L'utilisation en interruption est surtout recommandée
avec un haut trafic (ex : imprimante laser). Pour les imprimantes
matricielles classiques, la scrutation suffira. Par défaut le système
utilise la scrutation.
DESCRIPTION
Les appels-système
ioctl(2)
suivants sont supportés :
- int ioctl(int fd, LPTIME, int arg)
-
fixe la durée pendant laquelle le driver s'endort avant de revérifier
l'état de l'imprimante après que le buffer ait été rempli.
Avec une imprimante rapide on peut diminuer ce délai, avec une imprimante
lente on peut l'augmenter.
La durée est indiquée dans arg, en centièmes de secondes. La valeur
par défaut est 2 (soit 0,02 seconde). Cela n'influe que sur le driver
en scrutation.
- int ioctl(int fd, LPCHAR, int arg)
-
indique le nombre maximum d'itérations d'attente active que le driver
en scrutation effectue alors qu'il attend que l'imprimante soit prête.
Si l'impression est trop lente, augmenter cette valeur, si le système
ralentit trop, la diminuer.
Le nombre est indiqué dans arg, la valeur par défaut est 1000. Cela
n'influe que sur le driver en scrutation.
- int ioctl(int fd, LPABORT, int arg)
-
Si arg vaut 0, le driver réessaiera en cas d'erreur d'impression,
sinon il abandonnera. La valeur par défaut est 0.
- int ioctl(int fd, LPABORTOPEN, int arg)
-
Si arg vaut 0,
open(2)
sera annulé en cas d'erreur, sinon l'erreur sera ignorée. Par défaut elle
est ignorée.
- int ioctl(int fd, LPCAREFUL, int arg)
-
Si arg vaut 0, on bloquera l'écriture sur le port parallèle au cas
où les broches erreur, plus-de-papier, ou imprimante-hors-ligne
sont validées. Sinon ces signaux seront ignorés. Par défaut
ils sont ignorés.
- int ioctl(int fd, LPWAIT, int arg)
-
Indique le nombre d'itérations d'attente active à effectuer avant d'activer
la broche STROBE pour que l'imprimante accepte le caractère écrit,
et le nombre d'itérations à effectuer avant d'éteindre à nouveau la
broche STROBE.
Les spécifications indique que ce délai devrait être de 0,5 micro-secondes,
mais l'expérience a montré que le délai induit par le code du driver
est suffisant. La valeur est indiquée dans arg, elle vaut 0
par défaut. Ceci concerne autant le gestionnaire en interruption que
celui en scrutation.
- int ioctl(int fd, LPSETIRQ, int arg)
-
Cet ioctl() nécessite des privilèges Super-User. Son argument est une
nouvelle IRQ pour l'imprimante. Comme effet de bords, l'imprimante est
réinitialisée. Si arg vaut 0, le gestionnaire en scrutation sera
utilisé, ce qui est le comportement par défaut.
- int ioctl(int fd, LPGETIRQ, int *arg)
-
Stocke la valeur actuelle d'IRQ dans arg.
- int ioctl(int fd, LPGETSTATUS, int *arg)
-
Stocke le statut actuel du port dans arg. Les bits ont les significations
suivantes :
| LP_PBUSY | Entrée OCCUPÉE inversée, active à 1
|
| LP_PACK | Entrée ACQUITTEMENT, active à 0
|
| LP_POUTPA | Entrée PLUS-DE-PAPIER, active à 1
|
| LP_PSELECD | Entrée SELECT, active à 1
|
| LP_PERRORP | Entrée ERREUR, active à 0
|
Référez vous au manuel de votre imprimante pour la signification de ces
signaux. Des bits non documentés peuvent également être présents,
suivant le type d'imprimante.
- int ioctl(int fd, LPRESET)
-
Réinitialise l'imprimante. Pas d'argument.
FICHIERS
/dev/lp*
AUTEURS
Le driver d'imprimante a été écrit à l'origine par Jim Weigand et Linus
Torvalds. Il fut ensuite amélioré par Michael K. Johnson. Le code
d'interruption a été écrit par by Nigel Gamble. Alan Cox l'a modularisé.
LPCAREFUL, LPABORT, LPGETSTATUS ont été ajoutés par Chris Metcalf.
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|