j'ai une machine qui tourne sous Gentoo et qui est à jour (que
j'appellerai /serveur/ dans la suite) sur laquelle est lancée la
commande "agetty 38400 ttyS0"
Sur une autre machine (que j'appellerai /terminal/ ci-dessous) connectée
à la première via un câble null-modem est lancé le programme d'émulation
de terminal "minicom". Je précise que le terminal est un 386 avec 4 Mo
de RAM et un lecteur de disquette. J'ai confectionné une disquette de
boot contenant un noyau 2.4.26, busybox 1.0 pour (j'en ai besoin pour
loadkmap, afin de configurer le clavier en azerty) et minicom, le tout
compilé avec la µlibc au lieu de la classique glibc.
Les ports série des deux machines sont configurés de manière cohérente :
38400 8N1, contrôle de flux matériel (crtscts) activé, contrôle de flux
logiciel (xon/xoff) désactivé.
Mais j'ai aussi essayé toutes (enfin, beaucoup en tout cas) les
combinaisons possibles de configurations : différentes vitesses,
différentes parités, différents réglages de contrôle de flux...
En fait, il s'agit là du cas classique d'un terminal connecté à une
machine Linux.
Seulement, ça ne marche pas aussi bien que ça devrait.
Avant le login, j'ai un logo "Gentoo" en caractères affiché sur le
terminal, suivi du prompt de login.
Je tape alors sur le clavier du terminal mon login et j'appuie sur
Entrée. Jusque là, tout fonctionne normalement.
Mais ensuite, au lieu d'afficher un prompt me demandant mon mot de
passe, j'ai les deux caractères "{ù". Mais je me souviens qu'une fois,
je ne sais plus comment, le prompt du login s'était correctement affiché.
Ça ne marche pas du tout comme il faudrait si j'ose dire :)
Alors, pour essayer de trouve la cause du problème, j'ai arrêté le
processus agetty sur le serveur, puis j'ai lancé un minicom.
Normalement, à présent, si tout va bien, les touches tapées sur le
clavier du serveur devraient apparaitre sur l'écran du terminal ; et
vice versa, les touches tapées sur le clavier du terminal devraient
s'afficher dans le minicom du serveur. Eh bien là, je n'ai que des
caractères bizaroïdes, du genre le caractère 0xff (un i-grec tréma).
Ensuite, en faisant un "modprobe -r serial ; modprobe serial" sur le
serveur, ce qui a pour effet de réinitialiser la gestion du port série
du serveur, on revient à la case départ : tout remarche jusqu'au moment
de valider le login.
Autre indice : en branchant au port série du serveur une calculatrice
hp49 sur laquelle est lancé un émulateur de terminal, et via un câble ad
hoc, tout marche correctement : je valide mon login, mon mot de passe,
tout marche vraiment bien. Je précise que pour cette config, les ports
dérie des deux machines ont été configurées en 9600 8N1, avec flux
logiciel seulement.
En connectant la hp49 au terminal, et en configurant de marnière
cohérente les ports série de chaque machine, la communication s'effectue
correctement : j'ai bel et bien des lettres qui s'affchent au lieu de
caractères bizarres.
Ah et puis aussi, il y a quelques jours, j'avais confectionné une
disquette de boot contenant msdos et un équivalent de minicom nommé
telix. Ça marchait bien, sauf que telix ne gèrait pas bien les
caractères accentués et puis n'est pas un logiciel libre (c'est un
shareware). C'est pour ces deux inconvénients que je me suis lancé dans
la construction d'une disquette de boot linux + minicom.
Finalement, après toutes ces manips, je conclue que :
- le câble null-modem n'est a priori pas défectueux puisque le gros logo
gentoo et le prompt du login s'affichent correctement. Et de plus, ça
marchait bien avec msdos+telix. Enfin en toute rigueur il faudrait que
je réessaye demain matin pour être sûr que ce n'est pas le câble qui
s'est détérioré depuis, loi de Muphy oblige ;) Il est malheureux que je
n'ai pas un aute câble null-modem pour vérifier cette hypothèse.
- on ne sait pas trop laquelle des machines entre le serveur et le
terminal est mal configurée puisque les deux fonctionnent correctement
avec la hp49, et de plus ça marche bien avec telix. J'ai l'impression
qu'il y a une espèce d'incompatibilité entre les deux machines.
Peut-être qu'elles ne s'aiment pas ;)
Enfin bon, j'ai bien cherché une ébauche d'explication mais google n'est
pas très bavard.
Auriez-vous par hasard (et chance pour moi) une idée ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Khanh-Dang
Bonjour !
Alors j'ai quelques éléments nouveaux.
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un xterm, finalement ça marche impeccablement. Mais quand je me logout à partir du terminal, les caractères bizarres reviennent et je suis obligé de lancer un "modprobe -r serial" sur le serveur.
Par contre, quand je met la commande agetty dans le /etc/inittab du serveur, les problèmes reviennent dès la validation du login, avant la demande du mot de passe.
Je pense donc que c'est un problème de configuration du serveur, même si je reste sceptique.
Car je rappelle que sur le 386 (le terminal), si je lance msdos + telix, ça marche correctement. Et avec une calculatrice hp49 comme terminal, ça marche également.
Tout celà est vraiment très bizarre, et je ne sais vraiment pas comment faire pour essayer de trouver la cause du problème.
Existe-t-il pour mon serveur sous Linux un espèce de sniffer de port série qui me permettrait de voir ce qui se passe ?
Merci par avance,
-- Khanh-Dang
Bonjour !
Alors j'ai quelques éléments nouveaux.
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un
xterm, finalement ça marche impeccablement. Mais quand je me logout à
partir du terminal, les caractères bizarres reviennent et je suis obligé
de lancer un "modprobe -r serial" sur le serveur.
Par contre, quand je met la commande agetty dans le /etc/inittab du
serveur, les problèmes reviennent dès la validation du login, avant la
demande du mot de passe.
Je pense donc que c'est un problème de configuration du serveur, même si
je reste sceptique.
Car je rappelle que sur le 386 (le terminal), si je lance msdos + telix,
ça marche correctement.
Et avec une calculatrice hp49 comme terminal, ça marche également.
Tout celà est vraiment très bizarre, et je ne sais vraiment pas comment
faire pour essayer de trouver la cause du problème.
Existe-t-il pour mon serveur sous Linux un espèce de sniffer de port
série qui me permettrait de voir ce qui se passe ?
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un xterm, finalement ça marche impeccablement. Mais quand je me logout à partir du terminal, les caractères bizarres reviennent et je suis obligé de lancer un "modprobe -r serial" sur le serveur.
Par contre, quand je met la commande agetty dans le /etc/inittab du serveur, les problèmes reviennent dès la validation du login, avant la demande du mot de passe.
Je pense donc que c'est un problème de configuration du serveur, même si je reste sceptique.
Car je rappelle que sur le 386 (le terminal), si je lance msdos + telix, ça marche correctement. Et avec une calculatrice hp49 comme terminal, ça marche également.
Tout celà est vraiment très bizarre, et je ne sais vraiment pas comment faire pour essayer de trouver la cause du problème.
Existe-t-il pour mon serveur sous Linux un espèce de sniffer de port série qui me permettrait de voir ce qui se passe ?
Merci par avance,
-- Khanh-Dang
no_spam
On Mon, 27 Dec 2004 11:29:52 +0100, Khanh-Dang wrote:
Bonjour !
Alors j'ai quelques éléments nouveaux.
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un xterm, finalement ça marche impeccablement. Mais quand je me logout à partir du terminal, les caractères bizarres reviennent et je suis obligé de lancer un "modprobe -r serial" sur le serveur.
Les problèmes de caractères bizares sont sans doute liés aux encodages utilisés de part et d'autre. Je soupçonne que le serveur envoie de l'utf8 ce qui passe bien dans un xterm mais ne passe en console que si le noyau du terminal est compilé pour... Voire du coté des options NLS_DEFAULT du noyau... Vérifie que ce sont les mêmes pour les deux noyaux, afin que la console de l'un soit compatible avec l'autre.
Par contre, quand je met la commande agetty dans le /etc/inittab du serveur, les problèmes reviennent dès la validation du login, avant la demande du mot de passe. [...]
On Mon, 27 Dec 2004 11:29:52 +0100, Khanh-Dang wrote:
Bonjour !
Alors j'ai quelques éléments nouveaux.
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un
xterm, finalement ça marche impeccablement. Mais quand je me logout à
partir du terminal, les caractères bizarres reviennent et je suis obligé
de lancer un "modprobe -r serial" sur le serveur.
Les problèmes de caractères bizares sont sans doute liés aux encodages
utilisés de part et d'autre. Je soupçonne que le serveur envoie de
l'utf8 ce qui passe bien dans un xterm mais ne passe en console que si le
noyau du terminal est compilé pour...
Voire du coté des options NLS_DEFAULT du noyau...
Vérifie que ce sont les mêmes pour les deux noyaux, afin que la console
de l'un soit compatible avec l'autre.
Par contre, quand je met la commande agetty dans le /etc/inittab du
serveur, les problèmes reviennent dès la validation du login, avant la
demande du mot de passe.
[...]
On Mon, 27 Dec 2004 11:29:52 +0100, Khanh-Dang wrote:
Bonjour !
Alors j'ai quelques éléments nouveaux.
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un xterm, finalement ça marche impeccablement. Mais quand je me logout à partir du terminal, les caractères bizarres reviennent et je suis obligé de lancer un "modprobe -r serial" sur le serveur.
Les problèmes de caractères bizares sont sans doute liés aux encodages utilisés de part et d'autre. Je soupçonne que le serveur envoie de l'utf8 ce qui passe bien dans un xterm mais ne passe en console que si le noyau du terminal est compilé pour... Voire du coté des options NLS_DEFAULT du noyau... Vérifie que ce sont les mêmes pour les deux noyaux, afin que la console de l'un soit compatible avec l'autre.
Par contre, quand je met la commande agetty dans le /etc/inittab du serveur, les problèmes reviennent dès la validation du login, avant la demande du mot de passe. [...]
Khanh-Dang
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un xterm, finalement ça marche impeccablement. Mais quand je me logout à partir du terminal, les caractères bizarres reviennent et je suis obligé de lancer un "modprobe -r serial" sur le serveur.
Les problèmes de caractères bizares sont sans doute liés aux encodages utilisés de part et d'autre. Je soupçonne que le serveur envoie de l'utf8 ce qui passe bien dans un xterm mais ne passe en console que si le noyau du terminal est compilé pour... Voire du coté des options NLS_DEFAULT du noyau... Vérifie que ce sont les mêmes pour les deux noyaux, afin que la console de l'un soit compatible avec l'autre.
Je vais vérifier ça, même si je pense que ça ne va pas régler grand chose, car je n'utilise pas d'UTF-8, et les caractères bizarres dont je parle ne correspondent vraiment à rien de reconnaissable. Même les lettres de l'alphabet de s'affichent pas correctement : je vois des points, des "o" barrés, etc..., comme si les données étaient corrompues.
De plus, quand c'est msdos + telix, ça marche bien bien que telix ne supporte pas l'encodage du serveur : les caractères ASCII s'affichent correctement, même si ça n'est pas encore ça pour les caractères accentués par exemple.
Enfin merci beaucoup pour ta réponse :)
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un
xterm, finalement ça marche impeccablement. Mais quand je me logout à
partir du terminal, les caractères bizarres reviennent et je suis obligé
de lancer un "modprobe -r serial" sur le serveur.
Les problèmes de caractères bizares sont sans doute liés aux encodages
utilisés de part et d'autre. Je soupçonne que le serveur envoie de
l'utf8 ce qui passe bien dans un xterm mais ne passe en console que si le
noyau du terminal est compilé pour...
Voire du coté des options NLS_DEFAULT du noyau...
Vérifie que ce sont les mêmes pour les deux noyaux, afin que la console
de l'un soit compatible avec l'autre.
Je vais vérifier ça, même si je pense que ça ne va pas régler grand
chose, car je n'utilise pas d'UTF-8, et les caractères bizarres dont je
parle ne correspondent vraiment à rien de reconnaissable. Même les
lettres de l'alphabet de s'affichent pas correctement : je vois des
points, des "o" barrés, etc..., comme si les données étaient corrompues.
De plus, quand c'est msdos + telix, ça marche bien bien que telix ne
supporte pas l'encodage du serveur : les caractères ASCII s'affichent
correctement, même si ça n'est pas encore ça pour les caractères
accentués par exemple.
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un xterm, finalement ça marche impeccablement. Mais quand je me logout à partir du terminal, les caractères bizarres reviennent et je suis obligé de lancer un "modprobe -r serial" sur le serveur.
Les problèmes de caractères bizares sont sans doute liés aux encodages utilisés de part et d'autre. Je soupçonne que le serveur envoie de l'utf8 ce qui passe bien dans un xterm mais ne passe en console que si le noyau du terminal est compilé pour... Voire du coté des options NLS_DEFAULT du noyau... Vérifie que ce sont les mêmes pour les deux noyaux, afin que la console de l'un soit compatible avec l'autre.
Je vais vérifier ça, même si je pense que ça ne va pas régler grand chose, car je n'utilise pas d'UTF-8, et les caractères bizarres dont je parle ne correspondent vraiment à rien de reconnaissable. Même les lettres de l'alphabet de s'affichent pas correctement : je vois des points, des "o" barrés, etc..., comme si les données étaient corrompues.
De plus, quand c'est msdos + telix, ça marche bien bien que telix ne supporte pas l'encodage du serveur : les caractères ASCII s'affichent correctement, même si ça n'est pas encore ça pour les caractères accentués par exemple.
Enfin merci beaucoup pour ta réponse :)
no_spam
On Tue, 28 Dec 2004 12:12:01 +0100, Khanh-Dang wrote:
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un xterm, finalement ça marche impeccablement. Mais quand je me logout à partir du terminal, les caractères bizarres reviennent et je suis obligé de lancer un "modprobe -r serial" sur le serveur.
Les problèmes de caractères bizares sont sans doute liés aux encodages utilisés de part et d'autre. Je soupçonne que le serveur envoie de l'utf8 ce qui passe bien dans un xterm mais ne passe en console que si le noyau du terminal est compilé pour... Voire du coté des options NLS_DEFAULT du noyau... Vérifie que ce sont les mêmes pour les deux noyaux, afin que la console de l'un soit compatible avec l'autre.
Je vais vérifier ça, même si je pense que ça ne va pas régler grand chose, car je n'utilise pas d'UTF-8, et les caractères bizarres dont je parle ne correspondent vraiment à rien de reconnaissable. Même les lettres de l'alphabet de s'affichent pas correctement : je vois des points, des "o" barrés, etc..., comme si les données étaient corrompues.
De plus, quand c'est msdos + telix, ça marche bien bien que telix ne supporte pas l'encodage du serveur : les caractères ASCII s'affichent correctement, même si ça n'est pas encore ça pour les caractères accentués par exemple.
Peut-être alors un problème de configuration du port série quand même. A ta place, je regarderai du coté de la parité. Si l'envoi se fait en 7 bits avec parité et la reception en 8 bits sans parité, ça peut peut-être donner quelque chose de ce genre...
On Tue, 28 Dec 2004 12:12:01 +0100, Khanh-Dang wrote:
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un
xterm, finalement ça marche impeccablement. Mais quand je me logout à
partir du terminal, les caractères bizarres reviennent et je suis obligé
de lancer un "modprobe -r serial" sur le serveur.
Les problèmes de caractères bizares sont sans doute liés aux encodages
utilisés de part et d'autre. Je soupçonne que le serveur envoie de
l'utf8 ce qui passe bien dans un xterm mais ne passe en console que si le
noyau du terminal est compilé pour...
Voire du coté des options NLS_DEFAULT du noyau...
Vérifie que ce sont les mêmes pour les deux noyaux, afin que la console
de l'un soit compatible avec l'autre.
Je vais vérifier ça, même si je pense que ça ne va pas régler grand
chose, car je n'utilise pas d'UTF-8, et les caractères bizarres dont je
parle ne correspondent vraiment à rien de reconnaissable. Même les
lettres de l'alphabet de s'affichent pas correctement : je vois des
points, des "o" barrés, etc..., comme si les données étaient corrompues.
De plus, quand c'est msdos + telix, ça marche bien bien que telix ne
supporte pas l'encodage du serveur : les caractères ASCII s'affichent
correctement, même si ça n'est pas encore ça pour les caractères
accentués par exemple.
Peut-être alors un problème de configuration du port série quand même. A
ta place, je regarderai du coté de la parité. Si l'envoi se fait en 7
bits avec parité et la reception en 8 bits sans parité, ça peut
peut-être donner quelque chose de ce genre...
On Tue, 28 Dec 2004 12:12:01 +0100, Khanh-Dang wrote:
Quand je lance la commande "/sbin/agetty 38400 ttyS0 vt102" dans un xterm, finalement ça marche impeccablement. Mais quand je me logout à partir du terminal, les caractères bizarres reviennent et je suis obligé de lancer un "modprobe -r serial" sur le serveur.
Les problèmes de caractères bizares sont sans doute liés aux encodages utilisés de part et d'autre. Je soupçonne que le serveur envoie de l'utf8 ce qui passe bien dans un xterm mais ne passe en console que si le noyau du terminal est compilé pour... Voire du coté des options NLS_DEFAULT du noyau... Vérifie que ce sont les mêmes pour les deux noyaux, afin que la console de l'un soit compatible avec l'autre.
Je vais vérifier ça, même si je pense que ça ne va pas régler grand chose, car je n'utilise pas d'UTF-8, et les caractères bizarres dont je parle ne correspondent vraiment à rien de reconnaissable. Même les lettres de l'alphabet de s'affichent pas correctement : je vois des points, des "o" barrés, etc..., comme si les données étaient corrompues.
De plus, quand c'est msdos + telix, ça marche bien bien que telix ne supporte pas l'encodage du serveur : les caractères ASCII s'affichent correctement, même si ça n'est pas encore ça pour les caractères accentués par exemple.
Peut-être alors un problème de configuration du port série quand même. A ta place, je regarderai du coté de la parité. Si l'envoi se fait en 7 bits avec parité et la reception en 8 bits sans parité, ça peut peut-être donner quelque chose de ce genre...
Khanh-Dang
Les problèmes de caractères bizares sont sans doute liés aux encodages utilisés de part et d'autre. Je soupçonne que le serveur envoie de
Je vais vérifier ça, même si je pense que ça ne va pas régler grand chose, car je n'utilise pas d'UTF-8, et les caractères bizarres dont je
Peut-être alors un problème de configuration du port série quand même. A ta place, je regarderai du coté de la parité. Si l'envoi se fait en 7 bits avec parité et la reception en 8 bits sans parité, ça peut peut-être donner quelque chose de ce genre...
Finalement, ça marche quand je fais cette série de manipulations, dans un xterm, et sous root :
# modprobe -r serial # /sbin/agetty ttyS0 38400 vt102
Là tout marche correctement. Donc a priori ça n'est pas (plus ?) un problème de configuration. Mais dès que je fais un logout pour me déloguer de la session ouverte à partir du terminal, il semble que le serveur buggue.
A mon avis, j'ai mis le doigt sur un bug d'un programme présent sur le serveur : - le driver du port série (module serial du noyau 2.4.x), - le programme agetty, - le programme login, - ou la libpam qu'utilise login.
Sinon, il reste aussi la possibilité de défaillance matérielle qui me semble aussi plausible, mais qui ne m'enchante guère ;)
Les problèmes de caractères bizares sont sans doute liés aux encodages
utilisés de part et d'autre. Je soupçonne que le serveur envoie de
Je vais vérifier ça, même si je pense que ça ne va pas régler grand
chose, car je n'utilise pas d'UTF-8, et les caractères bizarres dont je
Peut-être alors un problème de configuration du port série quand même. A
ta place, je regarderai du coté de la parité. Si l'envoi se fait en 7
bits avec parité et la reception en 8 bits sans parité, ça peut
peut-être donner quelque chose de ce genre...
Finalement, ça marche quand je fais cette série de manipulations, dans
un xterm, et sous root :
# modprobe -r serial
# /sbin/agetty ttyS0 38400 vt102
Là tout marche correctement. Donc a priori ça n'est pas (plus ?) un
problème de configuration.
Mais dès que je fais un logout pour me déloguer de la session ouverte à
partir du terminal, il semble que le serveur buggue.
A mon avis, j'ai mis le doigt sur un bug d'un programme présent sur le
serveur :
- le driver du port série (module serial du noyau 2.4.x),
- le programme agetty,
- le programme login,
- ou la libpam qu'utilise login.
Sinon, il reste aussi la possibilité de défaillance matérielle qui me
semble aussi plausible, mais qui ne m'enchante guère ;)
Les problèmes de caractères bizares sont sans doute liés aux encodages utilisés de part et d'autre. Je soupçonne que le serveur envoie de
Je vais vérifier ça, même si je pense que ça ne va pas régler grand chose, car je n'utilise pas d'UTF-8, et les caractères bizarres dont je
Peut-être alors un problème de configuration du port série quand même. A ta place, je regarderai du coté de la parité. Si l'envoi se fait en 7 bits avec parité et la reception en 8 bits sans parité, ça peut peut-être donner quelque chose de ce genre...
Finalement, ça marche quand je fais cette série de manipulations, dans un xterm, et sous root :
# modprobe -r serial # /sbin/agetty ttyS0 38400 vt102
Là tout marche correctement. Donc a priori ça n'est pas (plus ?) un problème de configuration. Mais dès que je fais un logout pour me déloguer de la session ouverte à partir du terminal, il semble que le serveur buggue.
A mon avis, j'ai mis le doigt sur un bug d'un programme présent sur le serveur : - le driver du port série (module serial du noyau 2.4.x), - le programme agetty, - le programme login, - ou la libpam qu'utilise login.
Sinon, il reste aussi la possibilité de défaillance matérielle qui me semble aussi plausible, mais qui ne m'enchante guère ;)