Как получить список доступных системе COM портов в Linux? Раньше искал в /dev файлы типа ttyS*, но что-то тут не так. На моем компе имеется один физический компорт. В /dev есть 4 порта (ttyS0, ttyS1, ttyS2, ttyS3). Но, например когда пытаюсь добавить в систему принтер, визард просит выбрать порт и показывает только ОДИН доступный компорт. Всё правильно, порт всего один. Хотя в девах их 4, в визарде только 1. На другом компе физически есть 1 компорт, а в /dev их аш 5. Как из кода в Linux-e можно получить список доступных компортов? или как проверить все ttyS0, ttyS1, ttyS2, ttyS3 и найти среди них рабочий(е)(реальный(е))?
>Как получить список доступных системе COM портов в Linux? Раньше искал вa) grep serial /proc/ioports
b) cat /proc/tty/driver/serial
c) dmesg | grep ttyS
d) setserial -g /dev/ttyS[0-9] | grep -v unknownsetserial получает информацию о порте через ioctl = TIOCGSERIAL.
2ACCAСпасибо. Таким образом смог выделить из всех ttyS* только рабочие. А можно подобным образом получить инфу о портах типа ttyUSB*? Или достаточно по наличию в /dev/ttyUSB0 определить, что такой порт доступен системе?
>подобным образом получить инфу о портах типа ttyUSB*? Или достаточно по
>наличию в /dev/ttyUSB0 определить, что такой порт доступен системе?Смотря откуда этот /dev/ttyUSB* взялся. Если его udev или ещё какой hal сделал - почти достаточно.
Посмотри, что такое /dev. Если udev filesystem, то скорее всего можно - /dev/ttyUSB* создаются и убираются динамически, если udev скрипт не глюканул.
Сделай `lshal', почитаешь много интересного про ttyUSB. dmesg | grep ttyUSB тоже поможет.