Réponses:
Je pense que c'est cette commande:
dmesg | grep tty
L'exécuter sur ma propre boîte Linux (qui n'a qu'un seul port série) produit une seule ligne de sortie ttyS0. Essayez par vous-même, vous verrez ce que je veux dire.
tty
pour obtenir le nom de votre terminal. Je suppose que c'est ce que signifiait OP car ils ne posaient pas la question "quels ports série ont en getty
cours d' exécution?"
Découvrez les UART détectés /proc/tty/driver/serial
. Une ligne avec des uart:unknown
moyens: rien détecté (et probablement inexistant).
# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0
1: uart:16550A port:000002F8 irq:3 tx:111780 rx:1321 RTS|DTR|DSR
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3
Si quelque chose est connecté et pilote les lignes CTS, DSR ou CD (ce sont des lignes d'entrée), vous pouvez même être à peu près sûr qu'il y a réellement quelque chose ... Il en va de même pour le nombre d'octets rx.
Si vous devez le faire, la lecture par programmation de la sortie de dmesg peut être gênante, mais le dossier / dev / serial / by-id a des liens sym qui sont nommés d'après les données identifiables de votre appareil et pointent vers le / dev / tty * spécifique sont connectés à.
Je ne sais pas s'il s'agit d'une règle udev spéciale qui est spécifique à la distribution, mais cela fonctionne bien dans Ubuntu, faites-moi savoir si cela fonctionne.
ttyS0
par 3
correspondent à COM1
par 4
, respectivement. Ils ont généralement les mêmes ressources matérielles et ne sont pas toujours détectables, ils existent donc toujours.
setserial
pour mapper les ressources utilisées par ttyS0 à celles de votre port série. linux.die.net/man/8/setserial Cependant, cela n'est normalement pas nécessaire, car tout ce qui dépasse COM4 possède généralement suffisamment de matériel auxiliaire pour permettre à Linux de le détecter et d'ajouter un périphérique série selon les besoins.
Il y a aussi la commande setserial
qui utilise /proc/tty/driver/serial
pour obtenir ses données.
# setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3