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

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

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

15.1. Как узнать, какие последовательные порты были обнаружены FreeBSD?
15.2. Как узнать, какие внутренние модемы были обнаружены FreeBSD?
15.3. Как осуществляется доступ к последовательным портам во FreeBSD?
15.4. Как включить поддержку многопортовых последовательных адаптеров?
15.5. Может ли FreeBSD использовать несколько многопортовых адаптеров с одинаковым IRQ?
15.6. Можно ли настроить для порта режим работы по умолчанию?
15.7. Как сделать вход через модем?
15.8. Как подключить терминал к FreeBSD?
15.9. Почему не удаётся запустить tip или cu?
15.10. Мой модем Hayes не поддерживается — что можно сделать?
15.11. Как я должен ввести эти AT-команды?
15.12. Почему не срабатывает знак @ для описания характеристики pn?
15.13. Как набрать телефонный номер из командной строки?
15.14. Нужно ли при этом каждый раз задавать скорость работы с портом?
15.15. Мне нужно иметь доступ к нескольких хостам через терминальный сервер.
15.16. Может ли tip использовать несколько телефонов для одного сайта?
15.17. Почему нужно нажимать Ctrl+P дважды для посылки одного этого символа Ctrl+P?
15.18. Неожиданно всё стало набираться ЗАГЛАВНЫМИ БУКВАМИ?
15.19. Как можно передавать файлы с помощью программы tip?
15.20. Как использовать zmodem вместе с tip?

15.1. | Как узнать, какие последовательные порты были обнаружены 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

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

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

15.2. | Как узнать, какие внутренние модемы были обнаружены FreeBSD?
| Посмотрите ответ на предыдущий вопрос.
15.3. | Как осуществляется доступ к последовательным портам во FreeBSD?

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

Вы должны использовать `ttyd`X`` для входящих соединений. При открытии `/dev/ttyd`X`` в блокирующем режиме, процесс будет ожидать неактивности соответствующего устройства `cuad`X``, а затем появления сигнала о наличии несущей. При открытии устройства `cuad`X`` он проверяет, что последовательный порт не используется уже устройством `ttyd`X``. Если порт доступен, он «похищает» его у устройства `ttyd`X``. Также устройство `cuad`X`` не следит за наличием несущей. С такой схемой работы и модемом, находящимся в режиме автоответа, вы можете позволить пользователям входить в систему и в то же время можете осуществлять исходящие звонки, а система позаботится о возможных конфликтах.

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

Повторим ещё раз: информация о конфигурировании ядра содержится в разделе, посвящённом этому вопросу. Для многопортовых последовательных адаптеров добавьте в файл 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.5. | Может ли FreeBSD использовать несколько многопортовых адаптеров с одинаковым IRQ?
| Пока нет. Вы должны назначить уникальный IRQ для каждого адаптера.
15.6. | Можно ли настроить для порта режим работы по умолчанию?
| Смотрите раздел Руководства FreeBSD, посвящённый последовательным соединениям.
15.7. | Как сделать вход через модем?
| Ознакомьтесь с разделом Руководства FreeBSD, посвящённого входящим соединениям.
15.8. | Как подключить терминал к FreeBSD?
| Информацию по этому вопросы можно найти в разделе Терминалы Руководства FreeBSD.
15.9. | Почему не удаётся запустить `tip` или `cu`?

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

Вы можете разрешить всем пользователям вашей системы запускать tip(1) и cu(1), выполнив команды:

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

15.10. | Мой модем Hayes не поддерживается — что можно сделать?
| Смотрите этот ответ в Руководстве FreeBSD.
15.11. | Как я должен ввести эти AT-команды?
| Смотрите этот ответ в Руководстве FreeBSD.
15.12. | Почему не срабатывает знак `@` для описания характеристики `pn`?
| Смотрите этот ответ в Руководстве FreeBSD.
15.13. | Как набрать телефонный номер из командной строки?
| Смотрите этот ответ в Руководстве FreeBSD.
15.14. | Нужно ли при этом каждый раз задавать скорость работы с портом?
| Смотрите этот ответ в Руководстве FreeBSD.
15.15. | Мне нужно иметь доступ к нескольких хостам через терминальный сервер.
| Смотрите этот ответ в Руководстве FreeBSD.
15.16. | Может ли tip использовать несколько телефонов для одного сайта?
| Смотрите этот ответ в Руководстве FreeBSD.
15.17. | Почему нужно нажимать Ctrl+P дважды для посылки одного этого символа Ctrl+P?
| Смотрите этот ответ в Руководстве FreeBSD.
15.18. | Неожиданно всё стало набираться ЗАГЛАВНЫМИ БУКВАМИ?
| Смотрите этот ответ в Руководстве FreeBSD.
15.19. | Как можно передавать файлы с помощью программы `tip`?
| Смотрите этот ответ в Руководстве FreeBSD.
15.20. | Как использовать zmodem вместе с `tip`?
| Смотрите этот ответ в Руководстве FreeBSD.

Пред. |  | След.
Глава 14. PPP | Начало | Глава 16. Разное

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

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