Доступ к последовательным устройствам

В Unix-системах доступ к последовательным портам осуществляется через специальные файлы, расположенные в директории /dev. Для каждого последовательного порта предусмотрено два файла, каждый из которых принадлежит своему классу. В зависимости от выбранного файла устройство будет вести себя по-разному. Первый тип файлов необходим, когда порт используется для входящих соединений; эти файлы имеют основной номер 4 и именуются как ttyS0, ttyS1 и так далее. Файлы второго типа используются для исходящих соединений и имеют названия вроде cua0 с основным номером 5. Младшие номера для обоих классов файлов совпадают.

Если ваш модем подключен к порту, обозначенному как COM2, то его младший номер будет равен 65. Проверьте список доступных последовательных устройств в директории /dev. В выводе команды должны отображаться основные и младшие номера устройств:

$ ls -l /dev/cua*
crw-rw-rw-   1 root     root       5,  64 Nov 30 19:31  /dev/cua0
crw-rw-rw-   1 root     root       5,  65 Nov 30 22:08  /dev/cua1
crw-rw-rw-   1 root     root       5,  66 Oct 28 11:56  /dev/cua2
crw-rw-rw-   1 root     root       5,  67 Mar 19  1992  /dev/cua3

Если необходимых файлов устройств нет, их можно создать, став суперпользователем:

# mknod -m 666 /dev/cua1 c 5 65
# chown root.root /dev/cua1

Некоторые пользователи создают символическую ссылку /dev/modem на файл устройства модема для удобства. Тем не менее, если одни программы используют ссылку, а другие — реальное имя файла устройства, это может вызвать конфликты из-за использования файлов блокировки. По соглашению, имя файла блокировки для cua1 будет LCK..cua1. Использование разных имен файлов устройств для одного и того же порта может привести к тому, что программы попытаются использовать устройство одновременно, что сделает их неработоспособными.