Глава 15. Коммуникационные адаптеры

В этом разделе освещены вопросы о работе последовательных адаптеров во FreeBSD. Протокол PPP рассматривается в разделе Работа в сети.

15.1. Какие многопортовые последовательные адаптеры поддерживаются во FreeBSD?
15.2. Как сделать, чтобы приглашение boot: выводилось на консоль на последовательном порту?
15.3. Как узнать, обнаружила ли FreeBSD последовательные порты или внутренние модемы?
15.4. Как осуществляется доступ к последовательным портам во FreeBSD?
15.5. Как включить поддержку многопортовых последовательных адаптеров?
15.6. Можно ли настроить для порта режим работы по умолчанию?
15.7. Как сделать вход через модем?
15.8. Как подключить терминал к FreeBSD?
15.9. Почему не удаётся запустить tip или cu?

15.1.

Какие многопортовые последовательные адаптеры поддерживаются во FreeBSD?

Список таких устройств находится в главе Руководства Последовательные соединения.

Большинство многопортовых PCI адаптеров на базе 16550 и их клоны поддерживаются без дополнительных усилий.

Некоторые безымянные клоны таких адаптеров тоже работают нормально, особенно те, которые заявляют о своей совместимости с AST.

Прочтите страницы Справочника uart(4) и sio(4) для получения подробной информации о конфигурировании таких адаптеров.

15.2.

Как сделать, чтобы приглашение boot: выводилось на консоль на последовательном порту?

Подробная информация находится в этом разделе Руководства.

15.3.

Как узнать, обнаружила ли FreeBSD последовательные порты или внутренние модемы?

В процессе своей загрузки ядро FreeBSD будет пытаться найти последовательные порты, с поддержкой которых ядро сконфигурировано. Внимательно просмотрите сообщения загрузки либо выполните такую команду после того, как система запустилась и работает:

% dmesg | grep -E "^sio[0-9]"
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A

Здесь присутствуют два последовательных порта. Первый находится на IRQ4, порт ввода/вывода 0x3f8, и построен на микросхеме UART типа 16550A. Второй использует тот же тип микросхемы, но находится на IRQ3 и использует адрес порта ввода/вывода 0x2f8. Внутренние модемы выглядят точно также, как последовательные порты, за исключением того, что модем к ним подключен всегда.

В ядро GENERIC встроена поддержка двух последовательных портов, с теми же IRQ и адресами портов ввода/вывода, как указано в примере выше. Если эти настройки не соответствуют системе или имеется больше внутренних модемов или последовательных портов, чем описано в ядре, переконфигурируйте его, следуя инструкциям в разделе о построении ядра.

15.4.

Как осуществляется доступ к последовательным портам во FreeBSD?

Третий последовательный порт, sio2 или COM3, обозначается как /dev/cuad2 для устройств, выполняющих исходящие звонки, и /dev/ttyd2 для устройств, принимающих входящие звонки. Какая разница между этими двумя классами устройств?

При открытии /dev/ttydX в блокирующем режиме процесс будет ожидать неактивности соответствующего устройства cuadX, а затем появления сигнала о наличии несущей. При открытии устройства cuadX он проверяет, что последовательный порт не занят устройством ttydX. Если порт доступен, он похищает его у устройства ttydX. Также устройство cuadX не следит за наличием несущей. С такой схемой работы и модемом в режиме автоответа удалённые пользователи могут входить в систему, а локальные пользователи через тот же модем могут по прежнему осуществлять исходящие звонки, а система позаботится о возможных конфликтах.

15.5.

Как включить поддержку многопортовых последовательных адаптеров?

Информация о конфигурировании ядра содержится в соответствующем разделе, посвящённом этому вопросу. Для многопортовых последовательных адаптеров добавьте в файл device.hints(5) по строке sio(4) на каждый порт. Но IRQ должен быть указан только у одного порта. Все порты на адаптере должны использовать одно и то же значение IRQ. Для обеспечения согласованности используйте для указания IRQ последний последовательный порт. Также укажите следующую опцию в файле конфигурации ядра:

COM_MULTIPORT

В следующем примере указано содержимое /boot/device.hints для 4-портового последовательного адаптера AST на IRQ 12:

hint.sio.4.at="isa"
hint.sio.4.port="0x2a0"
hint.sio.4.flags="0x701"
hint.sio.5.at="isa"
hint.sio.5.port="0x2a8"
hint.sio.5.flags="0x701"
hint.sio.6.at="isa"
hint.sio.6.port="0x2b0"
hint.sio.6.flags="0x701"
hint.sio.7.at="isa"
hint.sio.7.port="0x2b8"
hint.sio.7.flags="0x701"
hint.sio.7.irq="12"

Флаги указывают, что управляющий порт имеет младший номер устройства 7 (0x700), и все порты совместно используют один и тот же номер IRQ (0x001).

15.6.

Можно ли настроить для порта режим работы по умолчанию?

Смотрите раздел Руководства FreeBSD, посвящённый последовательным соединениям.

15.7.

Как сделать вход через модем?

Ознакомьтесь с разделом Руководства FreeBSD, посвящённым входящим соединениям.

15.8.

Как подключить терминал к FreeBSD?

Информация по этому вопросу находится в разделе Терминалы Руководства FreeBSD.

15.9.

Почему не удаётся запустить tip или cu?

Встроенные утилиты tip(1) и cu(1) могут получить доступ к каталогу /var/spool/lock только из-под пользователя uucp и членов группы dialer. Используйте группу dialer для управления доступом к модему или удалённым системам посредством добавления в неё пользовательских учётных записей.

Либо же можно разрешить всем запускать tip(1) и cu(1):

# chmod 4511 /usr/bin/cu
# chmod 4511 /usr/bin/tip

Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.

По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.