Cookie
Electronic Team, Inc. uses cookies to personalize your experience on our website. By continuing to use this site, you agree to our cookie policy. Click here to learn more.

Ports série Linux - Guide complet

Nikolai Svarachevsky Nikolai Svarachevsky
Mis à jour : Aug 4, 2026

Ici, vous pouvez apprendre comment vous connecter à un périphérique série Linux, ainsi qu’une méthode simple pour connecter des périphériques série attachés à un ordinateur distant. J’utiliserai une imprimante de reçus compatible ESC/POS comme exemple.

Période d'essai de 14 jours gratuits
La licence est disponible à partir de $259.95
Disponible pour
USB vers bureau à distance

Vérification de vos ports

Les ports série sont un type de périphérique série. La commande dmesg vous aidera à voir si un périphérique série a été détecté et reconnu par le système d’exploitation. Si c’est le cas, il sera listé dans la sortie de cette commande.

Comme dmesg répertorie tous les périphériques du système, nous allons filtrer la sortie via grep. Il recherche dans le texte les lignes qui contiennent le mot-clé fourni. Les noms des ports série sous Linux commencent par « ttyS », nous pouvons donc l’utiliser comme requête. La sortie de dmesg peut être transmise à grep en reliant les deux commandes avec un pipe (le symbole |). Cela nécessitera également des privilèges de superutilisateur, donc sudo doit être ajouté. La commande résultante ressemble à ceci :

sudo dmesg | grep tty
résultats de recherche dmesg
Les périphériques seront listés avec les noms de fichiers de périphérique correspondants. Ce sont des fichiers dans /dev, tels que ttyS0 et ttyS1, que nous pourrons ensuite utiliser comme arguments pour d’autres commandes, afin de spécifier avec quel port série interagir. De plus, dmesg peut indiquer un problème technique si le périphérique n’apparaît pas du tout.

Si vous utilisez des adaptateurs USB-vers-série, ils apparaîtront en tant que périphériques ttyUSB. Ils peuvent également être trouvés dans dmesg en utilisant la même commande.

Important: afin d’utiliser les ports série du système, un utilisateur doit appartenir au groupe dialout. Bien que ce ne soit pas un problème pour le premier utilisateur par défaut, cela le devient lorsqu’on essaie d’accéder aux ports série en tant qu’autres utilisateurs, ceux qui ont été créés après l’installation du système.

En d’autres termes, si vous rencontrez l’erreur « Could not open serial port... », exécutez la commande suivante :

sudo adduser your_user_name dialout

Remplacez « your_user_name » par l’utilisateur qui a des difficultés à accéder aux ports.

Interaction avec des périphériques série

Utilisation des utilitaires standard

Étant donné que les ports série sont représentés par des fichiers sous Linux, des utilitaires standard tels que echo et cat peuvent être utilisés pour interagir avec eux. stty peut être utilisé pour modifier les paramètres du port. Voyons comment chacune de ces applications est utilisée.

Avec stty, vous pouvez définir le débit en bauds du port, le nombre de bits de données, la parité, le type de handshaking (également appelé contrôle de flux) et d’autres paramètres. Cela peut être nécessaire pour interagir avec un appareil ou une application, puisque la plupart du temps, les paramètres doivent correspondre pour que la connexion fonctionne.

Note de Nick:
J’ai exécuté la démonstration suivante sur Debian 11 (Bullseye) avec une imprimante SP-POS88VMF.
Cependant, vous pouvez également essayer les commandes fournies avec une connexion null-modem entre deux ports série ou USB-vers-série sur le même ordinateur. Dans ce cas, vous devrez modifier la commande cat pour écouter l’autre port connecté, et non celui qui envoie.


Utilisez la commande suivante pour lister les paramètres actuels de votre port :

sudo stty -a -F <your port>
Affichage des paramètres du port avec stty
Et voici un exemple de commande qui définit le débit en bauds du port ttyS0 sur 9600, les bits de données sur 8, et active le handshaking RTS/CTS :

sudo stty -F /dev/ttyS0 9600 cs8 crtscts

Avec les paramètres appropriés sélectionnés, nous pouvons envoyer des données à l’appareil avec echo. Il est possible d’envoyer du texte brut vers un port série avec echo, comme ceci :

echo 'TEXT' > /dev/ttyS0

Cependant, pour faire cela, vous devez vous connecter en tant que superutilisateur. Cela peut être fait avec la commande « su - ».

Dans notre cas, des symboles ASCII spéciaux, tels que ESC et Retour chariot, sont nécessaires pour tirer pleinement parti de l’imprimante connectée. Une façon de procéder consiste à utiliser l’argument -e de echo et des séquences d’échappement. Une séquence d’échappement pour les caractères ASCII commence par \x, suivi d’un nombre hexadécimal qui correspond au caractère.
Par exemple, voici comment le mot « TEXT » peut être affiché avec des séquences d’échappement :

echo -e '\x54\x45\x58\x54'

Nous enverrons les messages suivants :

1B 40 (ESC @, Initialize)
1B 6D (ESC m, Full Cut)
4C 49 4E 45 20 31 ("LINE 1")
1B 21 80 (Enable Underline)
4C 49 4E 45 20 32 ("LINE 2")
0D 0A (CR LF, New Line)
1B 6D (Full Cut)


L’argument -e est nécessaire pour autoriser les séquences d’échappement hexadécimales « \x ». Voici à quoi cela ressemble dans le terminal, et sur l’impression obtenue :
Commandes d’imprimante via echo et impression des résultats
Bien que echo puisse être utilisé pour envoyer des données via une connexion série, cat peut être utilisé pour les recevoir. Dans notre cas, l’imprimante répondra aux requêtes ESC/POS standard concernant l’état et les informations d’identification. Cela signifie que nous devrons intercepter les réponses. Tout d’abord, nous allons lancer cat, en écoutant le périphérique ttyS0 et en redirigeant la sortie vers un fichier texte :

cat /dev/ttyS0 > examplefile

L’application doit continuer à s’exécuter pour recevoir des données ; il faut donc ouvrir une nouvelle fenêtre ou un nouvel onglet Terminal pour envoyer des requêtes à notre périphérique. Nous utiliserons echo pour envoyer ce qui suit :

1D 49 31 (Request model ID)
1D 49 32 (Request type ID)
Étant donné que les réponses seront fournies au format hexadécimal, la sortie directe de cat, qui a été enregistrée dans « examplefile », ne sera pas lisible par un humain. À la place, nous allons exécuter le fichier via hexdump :
Demande et réponse de l’imprimante

Utilisation de gtkterm

Linux propose également des terminaux série comme minicom et gtkterm qui peuvent interagir de manière complète avec les ports série, en gérant à la fois l’entrée et la sortie, en offrant davantage d’options de mise en forme et en rendant les choses globalement plus faciles.

À titre d’exemple, nous allons essayer gtkterm. Comme pour stty, gtkterm doit être lancé avec des arguments en ligne de commande pour spécifier les paramètres de connexion, si les valeurs par défaut ne conviennent pas.

Note de Nick:
Bien que Minicom soit un outil très flexible, ses commandes compliquées le rendent inadapté à l’utilisation par les débutants et difficile à couvrir dans un guide rapide. Si vous souhaitez commencer à apprendre Minicom, commencez par sa page man afin d’éviter d’être perdu une fois l’application lancée.

Interface GTKTerm
Parmi les options utiles, on trouve l’écho local (pour dupliquer les données que vous envoyez de votre côté), la journalisation, l’affichage hexadécimal et l’envoi de données hexadécimales. Notez également les indicateurs en bas à droite : ils affichent l’état des lignes de signal DTR, RTS, CD, DSR et RI — c’est une autre façon de voir que l’appareil est connecté et prêt à recevoir des données.
Menu de configuration et indicateurs de poignée de main dans GTKTerm

Connexion à un port série sur votre réseau local

Dans certains cas, un périphérique série doit être partagé entre plusieurs ordinateurs, ou vous pouvez vouloir remplacer une connexion série physique entre deux ordinateurs par une connexion virtuelle. L’un de mes projets - Serial to Ethernet Connector - est un moyen efficace d’y parvenir. En plus de rendre les ports physiques disponibles sur un réseau local, l’application peut créer des ports virtuels auxquels les applications peuvent accéder.

Serial to Ethernet Connector peut être configuré rapidement et dispose d’une interface en ligne de commande qui facilite son intégration dans un flux de travail Terminal, ou dans des scripts bash. Une documentation détaillée, des guides d’utilisation et des experts du support client seront là pour vous aider. De plus, un essai gratuit de 15 jours est disponible ; je recommande donc vivement de l’essayer.

Comment utiliser un Serial to Ethernet Connector

1
Inscrivez-vous pour un essai gratuit sur cette page. Attendez que la clé d’activation arrive dans votre boîte mail.
Inscrivez-vous pour un essai gratuit
2
Rendez-vous dans le Centre de téléchargement. Choisissez le bon programme d’installation pour votre distribution Linux et votre architecture.
Accédez au Centre de téléchargement
3
Ouvrez votre Terminal, accédez au fichier et utilisez les commandes suivantes sur les systèmes basés sur Debian (un accès superutilisateur sera nécessaire) :

dpkg -i serial_ethernet_connector_64.deb
apt-get install -f


Ou cette commande sur Fedora ou CentOS :

sudo rpm -i serial_ethernet_connector_64.rpm

Une fois l’installation terminée, redémarrez votre ordinateur.
4
Utilisez votre code d’activation en exécutant la commande suivante :

evesecli register <your activation code>

L’activation peut être vérifiée en exécutant :

evesecli license

Ces étapes d’installation et d’activation devront être effectuées sur les deux machines qui seront connectées.
Utilisez votre code d’activation
5
Puisque nous enverrons des messages entre deux applications, nous créerons des ports virtuels pour le serveur et le client. Commencez par utiliser la commande suivante sur le serveur :

evesecli add -v /tmp/ttyLS0 server --local 5000

La commande « start » ouvrira la connexion :

evesecli start /tmp/ttyLS0

De plus, vous devrez connaître l’adresse IP de votre ordinateur sur le réseau local. Exécutez « hostname -I » (I majuscule).
créer des ports virtuels pour le serveur et le client
6
Sur l’ordinateur client, exécutez ce qui suit :

evesecli add -v /tmp/ttyRS0 client --remote <your IP address>:5000
evesecli start /tmp/ttyRS0


Vous pouvez vérifier si la connexion a réussi en utilisant « evesecli list ». Cela devrait indiquer qu’il y a 1 connexion.
vérifiez si la connexion a réussi
7
Enfin, puisque les ports connectés sont tous deux virtuels, ils peuvent être testés, comme précédemment, avec cat/echo.
comme les ports connectés sont tous deux virtuels, ils peuvent être testés
N’oubliez pas que vous pouvez utiliser « man evesecli » pour obtenir plus d’informations sur les options et commandes disponibles. De plus, il existe un guide de l’utilisateur qui peut être consulté pour des exemples et des informations générales sur l’utilisation de Serial to Ethernet Connector.

Mes identifiants

Je suis Nikolai Svarachevsky, un développeur senior employé chez Electronic Team, Inc. Je suis développeur principal sur plusieurs projets, notamment Serial to Ethernet Connector. J’ai écrit du code de qualité commerciale à des fins de communication série, de mise en réseau et de chiffrement. De plus, je suis un utilisateur avancé de Linux, et j’adore trouver de nouvelles façons d’utiliser à la fois les utilitaires intégrés et des logiciels tiers pour résoudre des problèmes, qu’ils soient simples ou complexes ! Puissiez-vous trouver ce guide utile.
Serial to Ethernet Connector
Access remote serial port over IP Network for Windows
Période d'essai de 14 jours gratuits
La licence est disponible à partir de $259.95
Disponible pour