Gérer les impressions

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