GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je surveiller le trafic du port série ?

socat est un outil pour connecter (presque) tout à (presque) tout, et tee peut dupliquer des flux.
Dans votre cas d'utilisation, vous pouvez connecter votre port série /dev/ttyS0 vers un PTY /tmp/ttyV0 , puis faites pointer votre application vers le PTY et ayez socat tee sortez l'entrée et la sortie quelque part pour que vous puissiez les observer.

Googler "socat serial port pty tee debug" vous indiquera plusieurs exemples de "procédure standard", l'un étant :

socat /dev/ttyS0,raw,echo=0 \
SYSTEM:'tee in.txt |socat - "PTY,link=/tmp/ttyV0,raw,echo=0,waitslave" |tee out.txt'

Les fichiers in.txt et out.txt contiendra alors les données capturées.

Mis à jour après les commentaires :

  • La syntaxe socat semble déroutante au premier abord, mais en fait, ce ne sont que 2 instructions imbriquées.
    Un petit prix à payer pour un outil aussi puissant et polyvalent.
  • Si vous devez configurer votre port série ou envoyer d'autres ioctls, faites-le avant d'appeler socat, car socat ne peut pas les proxy.
  • L'outil à usage unique interceptty à partir de 2006 a une syntaxe légèrement plus simple, mais ne peut intercepter que les TTY (lors du proxy ioctls), et n'est probablement pas dans votre gestionnaire de paquets. (La plupart des distributions Linux ne l'ont jamais ajouté à leurs repos)

Je ne pense pas que le pilote série dispose d'une fonctionnalité de traçage qui vous permettrait de surveiller les paquets. Vous pouvez utiliser strace pour observer toutes les lectures et écritures de votre application :

strace -s9999 -o myapp.strace -eread,write,ioctl ./myapp

J'ai trouvé des projets appelés Linux Serial Sniffer, jpnevulator et Moni. Les deux premiers semblent faire exactement ce que vous voulez. Le dernier s'appelle un moniteur, mais il ressemble en fait à un programme de communication série standard.


Linux
  1. Comment surveiller une connexion série à 250 000 bauds ?

  2. Comment trouver quel port série est utilisé ?

  3. Linux - Comment trouver des processus utilisant le port série ?

  4. Comment surveiller et enregistrer le trafic réseau sous Linux à l'aide de vnStat

  5. Comment puis-je surveiller les données sur un port série sous Linux ?

Comment savoir quel /dev/ttyS* est mon port série ?

Surveiller le trafic TCP sur un port spécifique

Comment puis-je être sûr d'avoir branché un appareil sur un port USB 3 ?

Comment puis-je définir les bits de parité lors de l'utilisation de l'écran pour accéder à un port série

Comment cat connaît-il le débit en bauds du port série ?

Comment puis-je surveiller la charge du disque dur sous Linux ?