Коммуникационные адаптеры

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

При загрузке ядра FreeBSD оно будет пытаться найти последовательные порты, с поддержкой которых было откомпилировано. Вы можете повнимательней присмотреться к выдаваемым сообщениям либо выполнить команду dmesg | grep sio

после загрузки и запуска системы.

Вот пример вывода указанной команды: sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A

Здесь присутствуют два последовательных порта. Первый использует irq 4, порт ввода/вывода В ядро . Как узнать, какие внутренние модемы были обнаружены FreeBSD?

Посмотрите ответ на предыдущий вопрос. Я только что поставил 2.0.5 и не нашёл устройств

Не волнуйтесь, они были объединены с устройствами Как осуществляется доступ к последовательным портам во FreeBSD?

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

Вы должны использовать /dev/ttydX в блокирующем режиме, процесс будет ожидать неактивности соответствующего устройства Как включить поддержку многопортовых последовательных адаптеров?

Повторим ещё раз: информация о конфигурировании ядра содержится в разделе, посвящённом этому вопросу. Для многопортовых последовательных адаптеров в файле конфигурации ядра поместите ключевое слово для каждого порта на адаптере. Но irq и вектор должен быть указан только у одного порта. Все порты на адаптере должны использовать одно и то же irq. Используйте последний последовательный порт для указания irq. Также включите опцию В следующем примере дано описание 4-портового адаптер AST на irq 7: options "COM_MULTIPORT" device sio4 at isa? port 0x2a0 tty flags 0x781 device sio5 at isa? port 0x2a8 tty flags 0x781 device sio6 at isa? port 0x2b0 tty flags 0x781 device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr

Флаги указывают, что управляющий порт имеет младший номер устройства 7 ( Может ли FreeBSD использовать несколько многопортовых адаптеров с одинаковым irq?

Пока нет. Вы должны назначить уникальный irq для каждого адаптера. Можно ли установить режим работы по умолчанию для порта?

Вашему приложению может понадобиться открыть устройства stty -a -f /dev/ttyd1

Когда вы меняете настройки этого устройства, они действуют вплоть до закрытия устройства. При повторном открытии оно будут иметь режимы работы по умолчанию. Чтобы изменить значения режимов работы по умолчанию, вы можете открыть и изменить настройки в устройстве ``начального состояния''. Например, чтобы сделать режимом по умолчанию режим XON/XOFF для устройства ttyd5, сделайте следующее: stty -f /dev/ttyid5 clocal cs8 ixon ixoff

Для выполнения таких действий предназначен скрипт /etc/rc.serial. Теперь при открытии устройства Вы можете запретить изменение приложением некоторых режимов работы, выполнив настройки устройства ``постоянного состояния''. Например, чтобы сделать скорость работы stty -f /dev/ttyld5 57600

Теперь, если приложение откроет Естественно, вы должны сделать устройства начального и постоянного состояний доступными на запись только пользователю при создании файлов устройств этого Как сделать вход через модем?

Похоже, что вы хотите стать Internet-провайдером, да? Сначала вам необходимо подключить к системе один или несколько модемов, которые могут работать в режиме автоответа. Модем должен держать сигнал наличия несущей, только когда она присутствует. Он должен вешать трубку и переинициализировать, когда сигнал готовности устройства DTE (RTS/CTS) управление потоком или вовсе отсутствовать. Ещё он должен работать на постоянной скорости с портом компьютера, но (что удобно для звонящих) с согласованием скорости передачи с другим модемом.

Для большинства модемов, поддерживающих набор команд Hayes, следующая последовательность команд выполнит эти настройки и сохранит их в энергонезависимой памяти: AT &C1 &D3 &K3 &Q6 S0=1 &W

Информация о том, как сделать эти настройки без обращения к терминальным программам MS-DOS, содержится в разделе о .

Затем опишите модем в файле . В нём перечислены все порты, с которых операционная система ожидает входа пользователей. Добавьте строку, которая выглядит как эта: ttyd1 "/usr/libexec/getty std.57600" dialup on insecure

В этой строке указано, что ко второму последовательному порту (/dev/ttyd1) подключен модем на скорости 57600 bps без контроля по чётности (). Тип терминала для этого порта определён как ``dialup''. Порт включен (``on'') и небезопасен (``insecure''), что означает, что попытки войти в систему пользователем root с этого порта будут отвергнуты. Для портов, обслуживающих входящие звонки, как этот, используйте устройства Использование слова ``dialup'' в качестве имени терминала является обычной практикой. Многие пользователи включают в свои файлы .profile или .login скрипты для задания реального типа терминала, если начальным является тип dialup. В примере порт описан небезопасным. Чтобы войти администратором на этом порту, вам нужно войти обычным пользователем, а затем командой ``'' стать пользователем После модифицирования , вам нужно послать сигнал потери связи или : kill -HUP 1

Это заставит процесс init снова прочитать файл . Процесс init запустит процессы getty для всех включенных портов. Вы можете проверить, доступны ли входы с конкретного порта, выполнив команду ps -ax | grep '[t]tyd1'

Вы должны увидеть нечто вроде следующего: 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1 Как подключить терминал к FreeBSD?

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

Затем модифицируйте файл описанным выше способом. Например, если вы подключаете терминал WYSE-50 к пятому последовательному порту, используйте такую строчку: ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure

В этом примере описан порт на /dev/ttyd4, имеющий терминал wyse50, подключенный на скорости 34800 bps без контроля по четности () и разрешён непосредственный вход пользователя Почему не удаётся запустить

Скорее всего, в вашей системе запуск программ и разрешён только пользователю и членам группы Вы можете разрешить всем пользователям вашей системы запускать # chmod 4511 /usr/bin/cu # chmod 4511 /usr/bin/tip Мой модем Hayes не поддерживается---что можно сделать?

На самом деле страница справочника о программе устарела. Модемы Hayes поддерживаются системой. Просто добавьте ``.

Драйвер модемов Hayes не достаточно умён, чтобы поддерживать некоторые из новых возможностей современных модемов---сообщения типа (командой Таймаут по умолчанию для программы На самом деле /usr/src/usr.bin/tip/tip. Чтобы это сделать, вам нужен дистрибутив исходных текстов системы.

Замените строку `` Как я должен ввести эти AT-команды?

Создайте так называемое ``. Например, если ваш модем подключен к первому последовательному порту, /dev/cuaa0, сделайте такую строку: cuaa0:dv=/dev/cuaa0:br#19200:pa=none

Укажите максимальную скорость обмена с портом, поддерживаемую модемом в параметре br. Затем выполните команду и вы подключитесь к модему.

Если в вашей системе нет устройства /dev/cuaa0, сделайте следующее: # cd /dev # ./MAKEDEV cuaa0

Или используйте cu, войдя администратором, с такими параметрами: # cu -l``line'' -s``speed''

где line - это имя последовательного порта (например, /dev/cuaa0), а speed - скорость работы модема с портом (например, 57600). После ввода AT-команд, наберите ~. для завершения работы. Знак

Знак для поиска телефонного номера. Однако знак . Экранируйте его символом обратного слэша: pn=\@ Как набрать телефонный номер из командной строки?

Поместите так называемое ``. Например: tip115200|Dial any phone number at 115200 bps:\ :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: tip57600|Dial any phone number at 57600 bps:\ :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:

Тогда вы сможете выполнять команды вроде ``, а не , используйте общее описание для cu: cu115200|Use cu to dial any number at 115200bps:\ :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:

и выполняйте команду `` Нужно ли при этом каждый раз задавать скорость работы с портом?

Создайте описание для полагает, что хорошим значением по умолчанию является 1200 bps, поэтому он использует описание для `` Мне нужно иметь доступ к нескольких хостам через терминальный сервер.

Вместо того, чтобы каждый раз ожидать подключения к терминальному серверу, а затем набирать команду ``: pain|pain.deep13.com|Forrester's machine:\ :cm=CONNECT pain\n:tc=deep13: muffin|muffin.deep13.com|Frank's machine:\ :cm=CONNECT muffin\n:tc=deep13: deep13:Gizmonics Institute terminal server:\ :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:

позволит вам просто набрать `` Может ли tip использовать несколько телефонов для одного сайта?

Эта проблема возникает, когда в университете есть пара модемных входов и несколько тысяч студентов, пытающихся ими воспользоваться...

Создайте описание для вашего университета в файле и используйте символ \@ при задании характеристики big-university:\ :pn=\@:tc=dialout dialout:\ :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:

После этого пропишите номера телефонов университета в файле : big-university 5551111 big-university 5551112 big-university 5551113 big-university 5551114

будет пытаться воспользоваться всеми телефонными номерами в указанном порядке, прежде чем завершить работу. Если вы хотите, чтобы попытки были продолжены, запустите Почему нужно нажимать CTRL+P дважды для посылки одного этого символа?

По умолчанию CTRL+P является специальным символом ``принудительного ввода'', используемым для указания программе , что следующий символ является байтом данных. Вы можете назначить функцию символа принудительного ввода любому другому символу с помощью команды Наберите ``Вы можете задать любое значение для символа принудительного ввода, указав его в вашем файле $HOME/.tiprc: force= Неожиданно всё стало набираться ЗАГЛАВНЫМИ БУКВАМИ?

Должно быть, вы нажали CTRL+A, символ перехода в верхний регистр программы , специально предназначенный для тех, у кого не работает клавиша caps-lock. Используйте команду Следующий пример файла .tiprc должен понравиться пользователям редактора Emacs, которым часто приходится нажимать CTRL+2 и CTRL+A: force=^^ raisechar=^^

Здесь ^^ это SHIFT+CTRL+6. Как можно передавать файлы с помощью программы

Если вы соединились с другой UNIX-системой, вы можете посылать и принимать файлы командами и на удалённой системе, чтобы принять и послать файлы. Синтаксис вызова имеет такой вид: ~p [] ~t []

Контроль ошибок передачи при этом не осуществляется, так что вам может понадобиться другой протокол передачи, например, zmodem. Как использовать zmodem вместе с

Первым делом установите одну из программ, реализующих протокол zmodem из коллекции портов (там есть парочка в категории comms, и ).

Для приёма файлов запустите программу передачи на противоположной стороне. Затем нажмите enter и наберите ``Для посылки файлов, запустите программу приёма на противоположной стороне. Затем нажмите enter и наберите `` FreeBSD не распознаёт последовательные порты на моей машине, хотя все настройки верны.

Микросхемы UART производства Acer на материнских платах и адаптерах распознаются некорректно. Для решения этой проблемы попробуйте воспользоваться патчем с сервера .