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 :

  • Ready

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.

  • Running

L’imprimante est en train d’imprimer.

  • Initing

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).

  • Connect

Le programme de “backend” s’est connecté au serveur d’impression.

  • Sending

Le RS/6000 est en train d’envoyer le travail au serveur d’impression.

  • Hold

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.

  • Dev_Busy

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.

  • Dev_Wait

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.

  • 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.

 

  • Opr_Wait

Le programme de backend attend une action de l’opérateur.

  • Unknown

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*

  • Seul ROOT peut imprimer

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