Кажется, у меня есть ttyS0 вплоть до ttyS31, единственные реальные (хорошо виртуальные, но, по крайней мере, они делают что-то) последовательные порты на моей машине - это ttyACM0 и rfcomm0, для чего все эти ttyS?
Я полагаю, вы смотрите на /dev
. Устройства ttyS * всегда доступны, даже когда их нельзя использовать. Фактически, если вы попытаетесь написать им, вы получите EIO:
# echo > /dev/ttyS12
-bash: echo: write error: Input/output error
Максимально возможное число последовательных ttys жестко задано равным 32 с помощью параметра конфигурации ядра. CONFIG_SERIAL_8250_RUNTIME_UARTS
Символьные устройства / dev / ttyS * будут работать только тогда, когда драйвер UART 8250 обнаружит последовательные UART на машине.
Ядро настроено с таким высоким значением, потому что некоторые машины поддерживают столько UART.