Setserial
| Fiche express | |
|---|---|
| Domaine | Configuration des ports série (UART) |
| Commande | setserial
|
| Contexte | Usage aujourd'hui niche — consoles série d'équipements réseau/industriels, anciens modems |
| Voir aussi | stty, udev
|
setserial configure les paramètres bas niveau d'un port série (UART) sous Linux : adresse
d'E/S, IRQ, type d'UART, horloge de référence (baud_base)... Il ne sert pas à
piloter une communication série (ça, c'est le rôle de stty ou de l'application qui
ouvre le port), mais à déclarer au noyau comment le matériel est câblé ou cadencé quand
l'autodétection est absente ou insuffisante.
C'est un outil aujourd'hui niche : les ports série RS-232 classiques ont quasiment disparu des
machines grand public, mais setserial reste pertinent pour les consoles série
d'équipements réseau ou industriels (switches, automates, onduleurs), les cartes multiport série
PCI/USB, et les vieux modems externes qui nécessitent un baud_base non standard pour
atteindre certaines vitesses.
Afficher la configuration
setserial -g /dev/ttyS0 # config actuelle (résumé)
setserial -a -g /dev/ttyS0 # config détaillée (tous les champs, dont baud_base et flags UART)
setserial -G /dev/ttyS0 # format compact, une ligne, pensé pour être réinjecté tel quel
-G est utile en script : sa sortie a la même syntaxe que les arguments acceptés par
setserial, ce qui permet de sauvegarder puis restaurer une configuration
(setserial -G /dev/ttyS0 > /tmp/ttyS0.conf puis rejouer la ligne obtenue).
Paramètres courants
| Paramètre | Rôle |
|---|---|
port |
Adresse d'E/S du port (ex. 0x03f8 pour COM1)
|
irq |
Interruption matérielle associée au port |
baud_base |
Fréquence de référence de l'UART, divisée pour obtenir le débit réel — à ajuster pour atteindre des vitesses non standard |
uart |
Type d'UART détecté ou forcé (16550A, 16650...) |
Configurer un port
setserial /dev/ttyS0 baud_base 57600 # fixe la fréquence de référence de l'UART à 57600
setserial -a -g /dev/ttyS0 # relit la config détaillée pour vérifier le changement
⚠️ baud_base fixe la référence utilisée pour calculer les diviseurs, ce n'est pas la
vitesse de la liaison elle-même : la vitesse effective de la connexion (celle vue par le
terminal ou le modem) se règle séparément, typiquement avec stty sur le même
périphérique.
Persistance au démarrage
Une configuration setserial appliquée en ligne de commande ne survit pas à un
redémarrage : elle doit être réappliquée à chaque boot. Historiquement, cela passait par un
script /etc/init.d/setserial (Debian, lisant /etc/serial.conf) ou un
service dédié équivalent sur les distributions RHEL/CentOS, exécuté tôt dans la séquence SysV
init. Sur les systèmes modernes basés sur systemd, ce mécanisme est largement remplacé par des
règles udev déclenchant setserial/stty à la détection du
périphérique, éventuellement combinées à un service systemd dédié (à vérifier selon la
distribution).
Voir aussi
stty— réglage de la vitesse de transmission et des paramètres de ligne (parité, bits d'arrêt) sur un périphérique sérieudev— mécanisme moderne de configuration automatique des périphériques série à la détection