Informations natives en AIX 4.3 mais probablement toujours d'actualité en AIX 5.x
1) Le fichier qconfig
3835A:
nom de la file d’attente
device = dev1,dev2,dev3,dev4
périphériques associés à la file d’attente
dev1:
backend = /usr/lpp/psf/bin/ainbe 3835A
programme post-processeur
dev2:
backend = /usr/lpp/psf/bin/ainbe 3835A
dev3:
backend = /usr/lpp/psf/bin/ainbe 3835A
dev4:
backend = /usr/lpp/psf/bin/ainbe 3835A
imp:
device = hp@imp
hp@imp:
file = /var/spool/lpd/pio/@local/dev/hp@imp#hpJetDirect#9100
header = never
trailer = never
access = both
backend = /usr/lib/lpd/pio/etc/piojetd imp 9100
[…]
XU007488:
nom de la file d'attente
device = @XU007488
up = TRUE
file d'attente activée (FALSE pour désactivée)
host = XU007488
système où l'imprimante est physiquement connectée
s_statfilter = /usr/lib/lpd/aixshort
filtre de la définition de la file d'attente
l_statfilter = /usr/lib/lpd/aixlong " " " " "
rq = lpt1
nom de la file d'attente du système xu007488
@XU007488:
backend = /usr/lib/lpd/rembak
post-processeur de l'impression à distance
Dans cet exemple, les réquêtes de la file d’attente XU007DC4 sont envoyées vers la file d’attente lpt1 du système XU007DC4. La requête part donc de la XU vers le serveur pour revenir sur l’imprimante locale, connectée à la XU ; en ce sens, c’est une impression distante.
2) Les différents états d’une file d’attente
Pour afficher l’état des files d’attente, exécuter la commande : # lpstat
Voici les différents états possibles :
La file d’attente est dans l’état de base, elle attend un ordre.
C’est l’état initial lors de la création d’une file d’attente.
L’imprimante est en train d’imprimer.
Le programme de “backend” est en train de se connecter au serveur d’impression (carte réseau de l’imprimante ou autre RISC RS/6000).
Le programme de “backend” s’est connecté au serveur d’impression.
Le RS/6000 est en train d’envoyer le travail au serveur d’impression.
Cet état spécifie que le job est retenu et ne pourra pas être mis en file d’attente.
Vous pouvez passer par smit pour libérer le job :
smit spooler / manage print job / hold/release job, etc.
Plusieurs files d’attente sont définies sur la même unité et l’une d’entre-elles est en train de l’utiliser.
Attendre la fin de l’impression ou “tuer” le process qui utilise le port d’impression.
La file d’attente attend que l’imprimante soit prête car celle-ci est “en arrêt” (plus de papier, bourrage...).
Vérifier l’imprimante et les connexions. S’il s’agit d’une imprimante série, vérifier le contrôle de flux.
A la fin du “time out”, la file d’attente passe à l’état DOWN.
Il n’y a plus de communication entre l’imprimante et le RS/6000 après un “time out”.
Le “time out” permet, par exemple, de remettre du papier dans l’imprimante, lorsque celle-ci le demande, sans que la file d’attente passe à l’état “DOWN”.
Le “time out” doit être ajusté lors d’impressions sur des réseaux “chargés”. Par convention, on essaye de lui appliquer une durée au moins égale au temps maximum d’impression d’un job.
Le “time out” peut être ajusté, en fonction du type d’attachement de l’imprimante, de la façon suivante :
Imprimante LOCALE
Par l’une des commandes suivantes :
# smit chgprt (délai d’attente de l’imprimante / printer timeout period)
ou
# splp lpx
Note : L’unité de temps est la seconde.
Imprimante RESEAU
Par le protocole lpd/lpr :
Si le système est en 4.3.x :
ce paramètre se configure directement lors de la création de la file d’attente.
Si le système est d’une version < 4.3.x,
ou
Si le paramètre n’a pas été configuré lors de la création de la file d’attente :
Traitement standard :
Modifier le fichier “/etc/qconfig”
Exemple pour un délai de 30 minutes (de base 90 secondes) :
backend=/usr/lib/lpd/rembak -T30
En cas de modification, le fichier “/etc/qconfig” doit être recompilé par le
programme “digest” ou par les commandes :
#stopsrc -s qdaemon
#startsrc -s qdaemon
Filtrage local :
Avec un “backend=/usr/lib/lpd/pio/etc/piorlfb”, modifier dans le shell script “(/usr/lib/lpd/pio/etc/piorlfb)” la ligne de la façon suivante :
remplacer : typeset piorlfb_rbflag=”” # rembak flags
par : typeset piorlfb_rbflag=”--T30 T30” # rembak flags
Configuration HpJetdirect
Dans ce cas, le “time out” doit être réglé sur le boîtier lui-même.
Le programme de backend attend une action de l’opérateur.
On peut rencontrer cet état lorsque le fichier suivant a été effacé :
/var/spool/lpd/stat/s.queue.device_name
Pour restaurer ce fichier, arrêter et relancer qdaemon.
3) Dépannage
- L’impression ne se termine pas
Imprimante SERIE
L’imprimante ne peut imprimer que le contenu de son buffer.
Cet incident est généralement dû :
à une mauvaise gestion du flux d’impression (l’imprimante est en “DTR” et sa définition sur le RS/6000 est en “XON/OFF”, ou réciproquement),
ou à un problème de câble série.
Imprimante RESEAU
Dans ce cas, augmenter le “time out” entre le RS/6000 et le serveur d’impression (voir, ci-dessus, le paragraphe concernant le statut DOWN).
- L’impression démarre sur une mauvaise imprimante
Vérifier la “queue” de destination dans le fichier “/etc/qconfig”.
- La file d’attente passe en “DOWN”
Vérifier la place restante dans “/var”, par la commande “df -k /var”.
Vérifier qu’il n’y a pas d’imprimante “dummy” dans le fichier “/etc/qconfig”.
Si tel était le cas, effacer les lignes correspondantes puis arrêter et relancer le démon
“qdaemon”.
Imprimante LOCALE
Il se peut que le signal CTS (qui indique que l’imprimante est prête) soit manquant. Dans ce cas, vérifier la configuration série et le câble.
Imprimante RESEAU
Dans le cas des imprimantes en réseau, augmenter le “time out”. Pour cela, se référer à la méthode décrite plus haut (file d’état dans “DOWN”).
- La file d’attente est READY mais rien ne s’imprime
Vérifier que le type de fichier que l’on cherche à imprimer est bien du même type que celui de la file d’attente que l’on a configurée (PostScript, HPGL...).
Arrêter et relancer la file d’attente par les commandes “disable/enable”.
Annuler les demandes d’impression en cours et les relancer.
L’annulation se fera par la commande : # cancel job_number
_ En dernier recours, vider les files d’attente. Pour cela, passer les commandes :
# stopsrc -g spooler
# rm /var/spool/lpd/qdir/*
# rm /var/spool/lpd/stat/*
# rm /var/spool/lpd/* (il ne doit rester que les trois répertoires)
# rm /var/spool/qdaemon/*
# rm /etc/qconfig. bin
# startsrc -g spooler
En plus, on peut aussi effacer tous les messages d’erreur des imprimantes :
rm /var/spool/lpd/pio/@local/msg*
Vérifier les droits des fichiers ou des répertoires :
“/, /tmp, /var/spool, /var/spool/qdaemon, /etc/hosts,/etc/qconfig, ...”
sur les commandes “enq, qprt, lpd, lp, ...”.
ex :
#ls -l /usr/sbin/qdaemon
-rwxr-xr-x 1 root printq 67972 Mar 17 1998 /usr/sbin/qdaemon
#ls -al /etc/qconfig
-rw-rw-r-- 1 root printq 7785 Jan 10 13:27 /etc/qconfig
* La protection de qdaemon à changer en "-r-sr-s---", et celle de qconfig est correcte.
#chmod u+xs,g+xs,o-rx qdaemon
#chmod u-w qdaemon
#ls -al qdaemon
-r-sr-s--- 1 root printq 67972 Mar 17 1998 qdaemon
#stopsrc -g spooler
#startsrc -g spooler
- Des caractères spéciaux (garbage) apparaissent
(en début ou en fin de fichier)
Changer l’attribut d’initialisation et de restauration de l’imprimante virtuelle.
Pour cela :
choisir l’imprimante par son numéro : # lsvirprt
modifier les paramètres par : j=!
J=!
quitter par : <entrée>
Note : On ne trouvera pas ces paramètres si la file d’attente a été déclarée en “traitement standard” (pour les imprimantes en réseau).
- Erreur dans les menus de SMIT pour les imprimantes
(message : 1800-106 an error occured)
Vérifier que les fichiers ne sont pas à 0 (zéro) sous : /var/spool/lpd/pio/@local/smit/*
Si tel était le cas :
copier les fichiers :
de : /usr/lpp/printers.rte/inst_root/var/spool/lpd/pio/@local/smit/
dans : /var/spool/lpd/pio/@local/smit/
puis exécuter le script suivant sous “/var/spool/lpd/pio/@local/custom” :
#!/bin/ksh
for file in ‘ls’
do
/usr/lib/lpd/pio/etc/piodigest $file
done
Une file d’attente existe déjà (message 0782-652)
Si le message 0782-652 apparaît disant qu’une file d’attente existe déjà et que cette file d’attente n’existe plus dans la réalité, l’erreur peut être due au fait que des informations sur l’imprimante virtuelle existent encore.
Pour effacer ces informations, passer la commande :
# cd /var/spool/lpd/pio/@local/custom
et si l’on retrouve le nom de l’imprimante dans ce répertoire :
# rmvirprt -q queue_name -d device_name
- Support d’imprimantes nouvelles
La liste affichée sous smi mi mit lors de la création d’une file d’attente est la liste complète des imprimantes supportées sous cette version d’AIX.
Il est toutefois possible de configurer un autre type d’imprimante à condition :
soit de connaître son émulation (pour cela, se référer au manuel d’utilisation ou faire une demande auprès du constructeur), soit d’utiliser une imprimante “générique” (generic printer).
Il est également possible de trouver les drivers spécifiques aux imprimantes sur le sites WEB des différents constructeurs. Il faut faire très attention à bien télécharger le driver de la bonne version d’AIX.
Vérifier ensuite, sous “/usr/lib/lpd/pio/predef”, que le driver possède les bons droits.
4) Quelques commandes
enq –A –W : consulter la queue d’impression en format long
lpstat : consulter la queue d’impression
lpq : consulter la queue d’impression
lpr : imprimer