Frequently Asked Questions по FreeBSD 2.X : Коммуникационные адаптеры : Можно ли установить режим работы по умолчанию для порта?
Previous: Может ли FreeBSD использовать несколько многопортовых адаптеров
Next: Как сделать вход через модем?

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

Вашему приложению может понадобиться открыть устройства ttydX (или cuaaX). Когда процесс открывает устройство, оно имеет набор параметров ввода/вывода. Вы можете посмотреть их значения командой

        stty -a -f /dev/ttyd1
      

Когда вы меняете настройки этого устройства, они действуют вплоть до закрытия устройства. При повторном открытии оно будут иметь режимы работы по умолчанию. Чтобы изменить значения режимов работы по умолчанию, вы можете открыть и изменить настройки в устройстве ``начального состояния''. Например, чтобы сделать режимом по умолчанию режим CLOCAL, 8 бит, и управление потоком XON/XOFF для устройства ttyd5, сделайте следующее:

        stty -f /dev/ttyid5 clocal cs8 ixon ixoff
      

Для выполнения таких действий предназначен скрипт /etc/rc.serial. Теперь при открытии устройства ttyd5 приложение будет иметь именно такой режим работы с портом. Оно, однако. может изменить эти режимы по своему усмотрению.

Вы можете запретить изменение приложением некоторых режимов работы, выполнив настройки устройства ``постоянного состояния''. Например, чтобы сделать скорость работы ttyd5 постоянно равной 57600 bps, выполните

        stty -f /dev/ttyld5 57600
      

Теперь, если приложение откроет ttyd5 и попытается изменить скорость работы порта, она всё равно останется равной 57600 bps.

Естественно, вы должны сделать устройства начального и постоянного состояний доступными на запись только пользователю root. Скрипт MAKEDEV при создании файлов устройств этого НЕ делает.


Frequently Asked Questions по FreeBSD 2.X : Коммуникационные адаптеры : Можно ли установить режим работы по умолчанию для порта?
Previous: Может ли FreeBSD использовать несколько многопортовых адаптеров
Next: Как сделать вход через модем?