Si vous suspectez que le problème soit matériel, voyez la section réparation et diagnostic. Si le problème concerne le port série lui-même, voyez le Serial-HOWTO.
Voici une liste des problèmes possibles :
Il y a deux cas dans lesquels le terminal se comporte mal. L'un arrive quand il a fonctionné correctement et s'est mis à mal fonctionner tout à coup. C'est ce dont on parle dans la sous-section suivante. L'autre cas arrive quand les choses vont mal juste après l'installation du terminal. Dans ce cas, vous pouvez passer à la section suivante.
Quand un terminal qui fonctionnait correctement ne tourne tout d'un coup pas bien, il est souvent facile de déceler le problème. Si vous réfléchissez à ce qui s'est passé récemment cela vous donnera certainement un indice quant à la cause du problème.
Le problème peut être évident comme un message d'erreur au démarrage du terminal. S'il émet un bruit, il a sûrement besoin d'une réparation. Voyez réparation et diagnostics. D'abord, réflechissez à ce que vous avez fait ou modifié récemment car c'est sûrement la cause du problème. Est-ce que le problème est apparu juste après l'installation d'un nouveau logiciel ou après une modification de configuration ?
Si le terminal ne répond pas correctement (s'il répond tout court) à ce que vous tapez, vous avez peut-être une interface de terminal corrompue.
Si vous venez de relier un terminal à votre ordinateur en suivant les instructions et qu'il ne fonctionne pas, cette section vous concerne. Si un terminal qui fonctionnait correctement auparavant ne fonctionne plus, voyez le terminal fonctionnait. Si vous présumez que le port série de votre ordinateur est défectueux, vous pouvez essayer de lancer un programme de test et de diagnostics sur ce port. À présent (juin 1998) il semble que Linux ne dispose pas encore d'un tel programme de diagnostics et vous devrez donc lancer les diagnostics sous MS DOS/Windows. Il y a quelques programmes pour surveiller les diverses lignes série comme DTR, CTS, etc. et qui peuvent vous aider. Voyez surveillance/diagnostic série.
Une manière est d'abord de voir si le terminal fonctionne en essayant de copier un fichier vers le terminal (cp mon_fichier /dev/ttyS?) dans la situation la plus simple. Ceci implique la désactivation des lignes de contrôle du modem et à une vitesse qui ne nécessite pas de contrôle de flux (assurez-vous que le contrôle de flux matériel est désactivé). Si cette copie fonctionne, compliquez alors un petit peu la situation et voyez si ça fonctionne encore, etc., etc. Quand le problème apparaît juste après avoir fait une modification, alors ce changement est sûrement la cause du problème. En fait, il est plus efficace (mais plus compliqué) de sauter de la situation simple à à peu près la moitié de la configuration finale pour que le test élimine à peu près la moitié des causes possibles restantes pour le problème. Répétez alors cette méthode pour le test suivant. De cette manière il ne faudrait que dix tests environ pour trouver la cause sur un millier de causes possibles. Vous devriez vous écarter un peu de cette méthode en vous basant sur des intuitions et des indices.
Un bon terminal démarre en général en affichant quelques mots à l'écran. Si ces mots ne donnent aucun message d'erreur, le terminal va probablement bien. S'il n'y aucun signe de courant (aucune lumière n'est allumée, etc.), réenfoncez le câble d'alimentation des deux côtés. Assurez-vous qu'il y ait du courant sur la prise murale (ou au bout du cordon d'alimentation). Essayez un autre cordon si vous en avez un. Assurez-vous que le terminal est allumé et que son fusible n'a pas sauté. Un écran blanc (ou sombre) peut parfois être réparé simplement en tournant les molettes de luminosité et de contraste ou par une touche de clavier dans le mode de configuration. Si cela ne fonctionne toujours pas, voyez réparations et diagnostics pour avoir des astuces sur la réparation du terminal.
Si le terminal démarre correctement, mais que vous soupçonnez qu'il y ait un problème, mettez-vous en "mode local" où il fonctionnera comme une machine à écrire et essayez de taper. Voyez mode local.
Si le texte s'affiche normalement sur le terminal puis s'arrête sans avoir terminé (au milieu d'un mot, etc.) ou si des morceaux de texte manquent, vous avez sûrement un problème avec le contrôle de flux. Si vous ne pouvez pas trouver tout de suite ce qui le cause, baissez la vitesse. Si cela l'arrange, c'est sûrement un problème de contrôle de flux. Il se peut que le contrôle de flux ne fonctionne pas du tout à cause d'un manque de configuration correcte ou à cause d'un câblage incorrect (pour le contrôle de flux matériel). Voyez contrôle de flux.
Si des caractèrs isolés manquent, le port série est peut-être dépassé par une vitesse trop élevée. Essayez une vitesse plus petite.
Si vous utilisez une vitesse de transmission en dessous de 1200 (très lente, principalement utilisée par les anciens terminaux à copie papier et les imprimantes) et que le texte est tronqué, alors le problème peut provenir du pilote de périphériques série. Voyez le Printing-HOWTO à la section "périphériques série" sur la manière de régler ceci.
Utilisez la commande "lsmod" pour voir si le module série est chargé.
Si getty ne peut pas ouvrir et/ou utiliser un port à cause du manque de tension de contrôle de modem positive sur l'une des broches, alors getty peut se terminer. Alors, grâce aux instructions dans inittab, getty se relance et essaie encore, uniquement pour être terminé à nouveau, etc. etc. Vous pouvez voir un message d'erreur indiquant que, à cause de getty qui se relance trop rapidement, il a été temporairement désactivé. Essayez d'utiliser l'option "local" dans getty et/ou de vérifier les paramètres et les tensions de contrôle du modem.
Une autre cause possible du relancement de getty est qu'une touche du clavier soit enfoncée, ce qui donne le même résultat que si la touche était maintenue appuyée en continu. Avec la répétition automatique activée, ceci "tape" des milliers de caractères à l'invite de login. Cherchez un écran rempli de caractères identiques (dans certains cas avec deux caractères différents ou plus).
Si vous pouvez vous logger correctement mais ne pouvez utiliser le terminal il se peut que le démarrage du shell de login ait reconfiguré le terminal (avec des paramètres incorrects) à cause d'une commande que quelqu'un a mise dans l'un des fichiers qui sont lancés quand vous vous loggez, et qu'un shell soit lancé. Ces fichiers comprennent /etc/profile et /.bashrc. Cherchez une commande commençant par "stty" ou "setserial" et assurez-vous qu'elle est correcte. Même si elle est correcte dans un fichier d'initialisation, elle peut être repositionnée de manière incorrecte dans un autre fichier d'initialisation que vous ne soupçonnez pas. Des méthodes pour revenir sur le système afin de le réparer et d'utiliser un autre terminal ou console est d'utiliser une disquette de secours ou de taper : "linux single" à l'invite de LILO qui vous mettra en mode utilisateur unique sans lancer les fichiers de démarrage.
Si vous obtenez une invite de login mais pas de réponse (ou peut-être une réponse embrouillée) à vos tentatives de login, une cause possible est que la communication se fait mal dans un sens du terminal vers l'ordinateur. Cela peut être dû à un connecteur/câble mauvais ou mal câblé. Si vous n'utilisez pas encore l'option "local" de getty, faites-le afin de désactiver les lignes de contrôle du modem. Voyez getty (dans /etc/inittab). Vous pourriez aussi désactiver le contrôle de flux matériel (stty -crtscts) s'il était activé. Si cela fonctionne maintenant correctement, alors soit les lignes de contrôle de votre modem sont câblées de manière incorrecte, soit il y a une erreur dans votre configuration. Certains terminaux permettent le positionnement de valeurs différentes (comme la vitesse de transmission) pour envoyer et recevoir, de sorte que la réception soit bonne mais pas l'envoi.
Vous devriez aussi (sur la console) essayer "stty < /dev/ttyS1" (si vous utilisez ttyS1) pour vérifier qu'il est configuré correctement. Il sera souvent en mode brut (et c'est sûrement bon) avec -icanon et -echo, etc. Si le terminal est configuré de manière incorrecte en half-duplex (HDX), alors une partie des caractères que vous voyez quand vous tapez viennent du terminal lui-même. Si les caractères sont doublés, alors les échos de l'ordinateur sont bons et vous pouvez passer en full-duplex pour corriger ceci. Mais si vous êtes en half-duplex et que vous ne voyez que ce qui semble être des "échos" normaux, ils ne viennent donc pas de l'ordinateur comme ils devraient le faire.
Si vous obtenez un message qui ressemble à "login failed" (le login a échoué) alors, si vous n'avez fait aucune erreur en tapant ou dans votre mot de passe, il peut y avoir des restrictions sur les logins qui ne vous permettent pas de vous logger. Malheureusement, ce message peut ne pas vous dire pourquoi la tentative a échoué. Voyez restrictions sur les logins.
Ceci peut-être à cause de l'utilisation d'un jeu de caractères incorrect, des erreurs de transmission dues à des vitesses de connexion trop élevées, des vitesses de connexion incompatibles, des parités incompatibles ou un nombre de bits par octet incorrect. Si c'est une variété de caractères étranges vous avez un jeu de caractères incorrect ou un bit de haut rang est positionné par erreur. Si les mots ont des fautes d'orthographe, essayez une vitesse de transmission plus basse. Pour les incompatibilités de vitesse de transmission, de parité ou de bits/caractère, vous voyez beaucoup d'erreurs "character error" identiques (erreur de caractère) qui représentent le fait qu'un vrai caractère ne peut être affiché correctement à cause d'une erreur dans la parité ou la vitesse de transmission.
Si vous utilisez agetty (souvent nommé simplement getty), le programme agetty détectera et positionnera la parité et/ou les bits/caractère si vous tapez quelque chose. Essayez-le avec un retour chariot pour voir si cela répare quelque chose.
Cela arrive quand rien ne se passe du tout sur le terminal, mais que le terminal semble fonctionner correctement. L'une des premières choses à faire est de s'assurer que toutes les connexions câblées sont fermes et reliées au bon connecteur à la fois sur l'ordinateur et sur le terminal. D'autres causes comprennent du matériel ou des câbles défectueux (les câbles doivent être des null-modem), getty ne tournant pas, une différence de vitesse de transmission, un terminal en mode local, etc. À ce point, deux possibilités d'approche sont (vous pouvez en suivre plus d'une à la fois) :
Sur la console (ou sur un autre terminal qui fonctionne), utilisez "top" ou "ps -al" pour voir si getty fonctionne sur le port. Ne le confondez pas avec d'autres programmes getty qui tournent sur d'autres ports ou sur les consoles virtuelles. Vous n'obtiendrez pas d'invite de login si getty ne tourne pas.
Un test possible est de tenter la copie d'un court fichier vers le terminal (une bonne idée serait d'essayer cela au début du processus d'installation avant de configurer getty). Utilisez la commande Linux de copie comme ceci : cp nom_fichier /dev/ttyS1. Si cela ne fonctionne pas, utilisez stty pour rendre l'interface aussi simple que possible en désactivant tout (comme le contrôle de flux matériel : -crtscts ; la parité, et les signaux de contrôle du modem : clocal). Assurez-vous que les vitesses de transmission et le nombre de bits par octet sont les mêmes. Si rien ne se passe, vérifiez que le port est vivant avec un voltmètre grâce à la section suivante.
Si vous disposez d'un voltmètre à portée de main, vérifiez qu'il y a une tension négative (-4v à -15v) sur la broche 3 (réception de données) du côté du terminal sur le câble null modem. La borne positive du voltmètre devrait être reliée à une bonne terre (les connecteurs métalliques sur les extrémités des câbles ne sont souvent pas reliés à la terre). S'il n'y a pas de tension négative, vérifiez-la sur la broche de transmission (TxD) sur l'ordinateur (voyez DB9-DB25 pour le brochage). Si elle est présente là mais pas sur la broche de réception (RxD) du terminal, alors le câble est mauvais (connexion flottante, câble cassé ou le câble n'est pas null modem). S'il n'y a pas de tension du côté de l'ordinateur, le port série de l'ordinateur est mort. Testez-le avec un programme de diagnostics ou remplacez-le.
Si le port série est vivant, vous pouvez lui envoyer un fichier (avec les contrôles de modem désactivés) et voyez si quelque chose y arrive. Pour vérifier qu'un signal est transmis avec un voltmètre analogique, regardez l'aiguille à -12 V quand la ligne est inactive. Commencez ensuite à envoyer un fichier (ou lancez getty). Vous devriez voir l'aiguille revenir à zéro et bouger autour de 0 alors qu'elle mesure des moyennes de courte distance sur le flux de données. Vous pouvez aussi le voir sur l'échelle de courant alternatif à condition que votre voltmètre dispose d'une capacité pour bloquer les tensions continues quand vous êtes sur l'échelle alternative. S'il n'en a pas, alors le -12 V continu en inactif donnera une lecture alternative erronée. Sans voltmètre, vous pourriez relier un périphérique que vous savez en bon état (comme un autre terminal ou un modem externe) au port série et voir s'il fonctionne correctement.
Vous avez surement mal parametrer les interruptions: Voyez les sections du Serial-HOWTO commençant par "Ralentissement:".
Quelques programmes Linux surveilleront les lignes de contrôle du modem et indiqueront si elles sont positives (1) ou négatives (0).
Vous les avez peut-être déjà. Sinon, allez à logiciels série. En les utilisant, gardez à l'esprit que ce que vous voyez est l'état des lignes sur l'ordinateur hôte. La situation sur le terminal sera différente puisque certains fils sont souvent manquants des câbles alors que d'autres fils se croisent. En juin 1998, je ne connais aucun programme de diagnostic sous Linux pour le port série.
En mode local, le terminal se déconnecte de l'ordinateur et se comporte comme une machine à écrire (sauf qu'il n'imprime pas sur papier mais sur l'écran). En revenant en ligne, le terminal se reconnecte à l'ordinateur vous permettant de reprendre les activités au point où vous vous étiez arrêté quand vous êtes passé en mode "local". Ceci est utile à la fois pour tester le terminal et à des fins éducatives. En mode local vous pouvez taper des séquences d'échappement (en commençant par la touche ESC) et observer ce qu'elles font. Si le terminal ne fonctionne pas correctement en mode local, il est quasiment certain qu'il ne fonctionnera pas mieux quand il sera relié à l'ordinateur. Si vous n'êtes pas vraiment sûr de ce que fait une séquence d'échappement, vous pouvez l'essayer en mode local. Vous pouvez aussi l'utiliser pour essayer un terminal qui est à vendre. Pour aller en mode local vous devez d'abord entrer en mode de configuration et ensuite sélectionner "local" dans un menu (ou presser une certaine touche). Voyez aller dans le mode de configuration.
Alors qu'un multimètre (utilisé comme voltmètre) peut être tout ce dont vous avez besoin pour quelques terminaux, un équipement de test spécial simple a été fait pour tester les lignes des ports série. Certains s'appellent "évasion ..." (breakout, NdT) où évasion veut dire sortir des conducteurs d'un câble. Ces gadgets possèdent quelques connecteurs et s'insèrent dans le câble série. Certains possèdent des points de tests pour y relier un voltmètre. Certains possèdent des LEDs qui s'allument quand certaines lignes de contrôle sont activées (allumées). D'autres encore possèdent des cavaliers pour que vous puissiez relier n'importe quel fil à n'importe quel fil. Certains possèdent des interrupteurs.
Radio Shack vend (en 1998), un "expert de RS-232" ou "testeur de ligne RS-232" qui vérifie TD, RD, CD, RTS, CTS, DTR, et DSR. Une lumière verte veut dire "allumé" (+12 V) alors que rouge veut dire "éteint" (-12 V). Ils vendent aussi une "boîte de cavaliers série RS-232" qui permet de relier les broches de la manière dont vous le souhaitez.
N'importe quel voltmètre ou multimètre, même les moins chers qu'on vend pour environ 60 F, devraient fonctionner correctement. Essayer d'utiliser d'autres méthodes pour tester la tension est compliqué. N'utilisez pas de diode électroluminescente (LED) sauf si on lui adjoint une résistance en série pour réduire la tension sur la diode. On utilise une résistance de 470 ohms pour une diode de 20 mA (mais toutes les diodes ne font pas 20 mA). La diode ne s'allumera que pour une certaine polarité pour que vous puissiez tester les tensions positives ou négatives. Personne ne fait un tel gadget pour tester automatiquement les circuits ?? Les sondes logiques peuvent être endommagées si vous essayez de les utiliser puisque les tensions TTL pour lesquelles elles sont faites ne sont que de 5 volts. Tenter d'utiliser une ampoule incandescente de 12 V n'est pas une bonne idée. Cela ne vous montrera pas la polarité et à cause du courant de sortie limité de l'UART, l'ampoule ne s'allumera probablement pas.
Pour mesurer la tension sur un connecteur femelle, vous pouvez enfoncer un trombone déplié dans l'ouverture désirée. Le diamètre du trombone ne doit pas être plus grand que les broches afin de ne pas abîmer le contact. Mettez une pince croco (ou autre) sur le trombone pour vous connecter.
En dernier recours, si vous n'avez pas d'équipement de test et voulez risquer d'être choqué (ou même électrocuté) vous pouvez toujours goûter à la tension. Avant de toucher à l'une des broches de test avec votre langue, testez-les pour vous assurez qu'il n'y a pas de haute tension sur elles. Prenez les deux broches (à la fois) dans une main pour voir si ça vous fait de l'effet. Si ce test vous choque, vous n'aurez sûrement pas envie d'utiliser votre langue.
Pour tester du 12 V, léchez un doigt et tenez-y une broche de test. Mettez l'autre broche de test sur votre langue. Si la broche sur votre langue est positive, il y aura un goût reconnaissable. Vous pouvez d'abord essayer ceci avec des piles 4,5 V pour savoir quel goût ça aura.