Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Espionner un port série

8 réponses
Avatar
Youri
Bonjour,

Existe-t-il un moyen simple d'espionner (et enregistrer) ce qui est
envoyé et reçu sur un port série, sans utiliser d'outil ou PC
"extérieur" ?
Je cherche une solution la plus simple possible, ne nécessitant pas de
recompilation du noyau ou du module serial (intégré au noyau dans ma
config).
Est-ce qu'il existe un moyen tout fait pour ça ?

Je suis sous Linux RedHat 9. Pour préciser un peu, la communication que
je veux dumper est entre un logiciel sous Windows (tournant dans une
machine virtuelle VMware et utilisant /dev/ttyS0) et un outil série. Je
dois obligatoirement espionner sur la machine elle-même, je ne peux pas
connecter un outil ou PC extérieur pour ça.

Si je ne suis pas sur le forum approprié, merci de me le faire savoir
(je ne pense pas que cette question soit spécifique à Linux).

--
Youri

8 réponses

Avatar
Nicolas George
Youri wrote in message
<41656c5e$0$15752$:
Je suis sous Linux RedHat 9. Pour préciser un peu, la communication que
je veux dumper est entre un logiciel sous Windows (tournant dans une
machine virtuelle VMware et utilisant /dev/ttyS0) et un outil série. Je
dois obligatoirement espionner sur la machine elle-même, je ne peux pas
connecter un outil ou PC extérieur pour ça.


Tu peux forcer VMware à utiliser un pseudo-terminal (/dev/pts/*) plutôt que
/dev/ttyS0 (quitte à te fendre d'un ou deux liens symboliques provisoires),
avec un pseudo-terminal géré par un programme de ton cru qui copie tout
de/vers /dev/ttyS0 tout en enregistrant ce qui se passe. Ce n'est pas très
difficile à programmer, juste un peu fastidieux.

Il y a peut-être une difficulté à gérer : si VMware utilise termios pour
changer le mode du terminal, il faut arriver à propager cette modification
sur le vrai terminal de manière adaptée, et ce n'est pas forcément facile
(par exemple il faut propager la vitesse du terminal, mais les
transformations ou les echo, il ne faut les avoir qu'une fois. Ceci dit, il
est probable que VMware fasse le changement de mode une fois pour toutes, ce
qui rend les choses plus facilesou les echo, il ne faut les avoir qu'une
fois. Ceci dit, il est probable que VMware fasse le changement de mode une
fois pour toutes, ce qui rendrait les choses plus faciles.

Bref, ce n'est pas complètement évident à faire, mais c'est abordable si on
a une certaine connaissance du fonctionnement des ports série sous Unix.

Avatar
Nicolas George
Youri wrote in message
<41656c5e$0$15752$:
Je suis sous Linux RedHat 9. Pour préciser un peu, la communication que
je veux dumper est entre un logiciel sous Windows (tournant dans une
machine virtuelle VMware et utilisant /dev/ttyS0) et un outil série. Je
dois obligatoirement espionner sur la machine elle-même, je ne peux pas
connecter un outil ou PC extérieur pour ça.


Tu peux forcer VMware à utiliser un pseudo-terminal (/dev/pts/*) plutôt que
/dev/ttyS0 (quitte à te fendre d'un ou deux liens symboliques provisoires),
avec un pseudo-terminal géré par un programme de ton cru qui copie tout
de/vers /dev/ttyS0 tout en enregistrant ce qui se passe. Ce n'est pas très
difficile à programmer, juste un peu fastidieux.

Il y a peut-être une difficulté à gérer : si VMware utilise termios pour
changer le mode du terminal, il faut arriver à propager cette modification
sur le vrai terminal de manière adaptée, et ce n'est pas forcément facile
(par exemple il faut propager la vitesse du terminal, mais les
transformations ou les echo, il ne faut les avoir qu'une fois. Ceci dit, il
est probable que VMware fasse le changement de mode une fois pour toutes, ce
qui rend les choses plus facilesou les echo, il ne faut les avoir qu'une
fois. Ceci dit, il est probable que VMware fasse le changement de mode une
fois pour toutes, ce qui rendrait les choses plus faciles.

Bref, ce n'est pas complètement évident à faire, mais c'est abordable si on
a une certaine connaissance du fonctionnement des ports série sous Linux.

Avatar
talon
Youri wrote:

Je suis sous Linux RedHat 9. Pour préciser un peu, la communication que
je veux dumper est entre un logiciel sous Windows (tournant dans une
machine virtuelle VMware et utilisant /dev/ttyS0) et un outil série. Je
dois obligatoirement espionner sur la machine elle-même, je ne peux pas
connecter un outil ou PC extérieur pour ça.

Si je ne suis pas sur le forum approprié, merci de me le faire savoir
(je ne pense pas que cette question soit spécifique à Linux).

Sur FreeBSD il y a le device "snoop" qui est fait pour ça.



--

Michel TALON

Avatar
[Sauron De Mordor]
Youri wrote:
Bonjour,

Existe-t-il un moyen simple d'espionner (et enregistrer) ce qui est
envoyé et reçu sur un port série, sans utiliser d'outil ou PC
"extérieur" ?
Je cherche une solution la plus simple possible, ne nécessitant pas d e
recompilation du noyau ou du module serial (intégré au noyau dans m a
config).
Est-ce qu'il existe un moyen tout fait pour ça ?

Je suis sous Linux RedHat 9. Pour préciser un peu, la communication q ue
je veux dumper est entre un logiciel sous Windows (tournant dans une
machine virtuelle VMware et utilisant /dev/ttyS0) et un outil série. Je
dois obligatoirement espionner sur la machine elle-même, je ne peux p as
connecter un outil ou PC extérieur pour ça.

Si je ne suis pas sur le forum approprié, merci de me le faire savoir
(je ne pense pas que cette question soit spécifique à Linux).

et bien dans ton cas tu peux faire cat /dev/ttyS0


sinon ton vmware peut se conecter sur un pseudo device /dev/ttySxx

et ensuite tu n a plus qu a ecouter le device ttySxx

Avatar
Nicolas George
"[Sauron De Mordor]" wrote in message
<ck46r3$93k$:
et bien dans ton cas tu peux faire cat /dev/ttyS0


Et dans ce cas, il lira la réponse du périphérique branché sur le port
série, en concurrence avec vmware qui plus est. Ce n'est pas vraiment ce qui
est demandé

sinon ton vmware peut se conecter sur un pseudo device /dev/ttySxx


Je n'avais jamais entendu parler de cas où ttySx était un pseudo-device.
D'ailleurs, qu'est-ce qu'un pseudo-device ? Un pseudo-tty ?

et ensuite tu n a plus qu a ecouter le device ttySxx


Ce ne serait pas le même que juste au dessus, là ?

Avatar
Youri
Nicolas George wrote:

(...)
Bref, ce n'est pas complètement évident à faire, mais c'est abordable
si on a une certaine connaissance du fonctionnement des ports série
sous Unix.


OK, c'est noté. Mais pour aujourd'hui ça va être un peu juste... Surtout
qu'il va falloir que je creuse un peu ce que tu me proposes, j'ai
compris le principe mais je ne suis pas sur d'arriver droit au but avec
ce que je connais. Je cherchais s'il existait un truc tout fait, genre
tcpdump pour le réseau, mais si ça n'existe pas tant pis.
Merci pour ta réponse.

--
Youri

Avatar
Stephane Chazelas
2004-10-07, 18:18(+02), Youri:
[...]
Existe-t-il un moyen simple d'espionner (et enregistrer) ce qui est
envoyé et reçu sur un port série, sans utiliser d'outil ou PC
"extérieur" ?
Je cherche une solution la plus simple possible, ne nécessitant pas de
recompilation du noyau ou du module serial (intégré au noyau dans ma
config).
Est-ce qu'il existe un moyen tout fait pour ça ?

Je suis sous Linux RedHat 9.
[...]


Tu peux utiliser strace et lui dire de ne tracer que les read et
write (en full) sur le(s) fd(s) ouverts sur ce port serie pour
les processus accedant au port serie.

--
Stephane

Avatar
sebaleme
Salut,

je suis actuellement en stage sur les ports series sous Linux (ttyS), et je galere un peu.
Je dois programmer un capteur en C, qui communiquera via ttyS1.

D´abort, j´essaye de communiquer par console...
Pour le moment, j´ai reussi a realiser la connexion sous windows (merci Hterm, ou hyperterminal), mais je ne parviens pas a le faire sous Linux.
Par exemple, par depis, j´ai fait cat /dev/tty0 , mais il ne se passe rien (j´esperai voir defiler le code source du fichier...) .
J´avais tente xterm, mais cette commande m´ouvre une console. Super, mais je ne vois pas trop le gain par rapport au terminal classique...

Enfin voila, mon stage se termine dans 3 semaines, j´ai reussi a faire le programme en C, mais je bloque la.

En attente de d´explications sur les ttyS...

++ Seb