Сторінка 56 з 65
11.1. Як дізнатися, які послідовні порти були виявлені 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
11.2. Як дізнатися, які внутрішні модеми були виявлені FreeBSD?
Подивіться відповідь на попереднє запитання.
11.3. Я тільки що поставив 2.0.5 і не знайшов пристроїв tty0X!
Не хвилюйтеся, просто вони були об'єднані з пристроями ttydX. Вам доведеться
підправити конфігураційні файли, які ви раніше використовували.
11.4. Як здійснюється доступ до послідовних портів у FreeBSD?
Третій послідовний порт, sio2 (який в DOS називається COM3), називається
/ Dev / cuaa2 для пристроїв, що виконують вихідні дзвінки, і / dev / ttyd2 для
пристроїв, які приймають вхідні дзвінки. Яка різниця між цими двома
класами пристроїв?
Ви повинні використовувати ttydX для вхідних з'єднань. При відкритті / dev / ttydX в
блокує режимі, процес буде очікувати неактивності відповідного
пристрою cuaaX, а потім появи сигналу про наявність несучої. При відкритті
пристрою cuaaX, він перевіряє, що послідовний порт не використовується вже
пристроєм ttydX. Якщо порт доступний, він "викрадає" його у пристрої ttydX.
Також пристрій cuaXX не стежить за наявністю несучої. З такою схемою роботи і
модемом, що знаходяться в режимі автовідповідача, ви можете дозволити користувачам в
ходити в систему і в той же час можете здійснювати вихідні дзвінки, а
система подбає про можливі конфлікти.
11.5. Як включити підтримку багатопортових послідовних адаптерів?
Повторимо ще раз: інформація про конфігуруванні ядра міститься в розділі, посв
ящённом цього питання. Для багатопортових послідовних адаптерів в файлі
конфігурації ядра помістіть ключове слово sio для кожного порту на адаптері.
Але irq і вектор повинен бути зазначений тільки у одного порту. Всі порти на адаптері
повинні використовувати один і той же irq. Використовуйте останній послідовний
порт для вказівки irq. Також включіть опцію COM_MULTIPORT.
У наступному прикладі дано опис 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 (0x700),
включена діагностика на час виявлення (0x080), і всі порти використовують одне
і той же irq (0x001).
11.6. Чи може FreeBSD використовувати кілька багатопортових адаптерів з однаковим irq?
Поки немає. Ви повинні призначити унікальний irq для кожного адаптера.
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 при створенні
файлів пристроїв цього НЕ робить.
Процес інсталяції портів записує кожен файл порту, включаючи всі залежності. Наприклад, багато портів вимагають графічну бібліотеку PNG. Записи порту вказують на точну версію бібліотеки PNG, яка потрібна, наприклад версія 1.0.11. Загалом, це та ж версія, яка знаходиться у вашому дереві.
Запис CD-R / RW у FreeBSD ніколи не вимагала будь-яких специфічних налаштувань - типу включення емуляції SCSI через IDE (що до недавнього часу було необхідно в Linux). Хоча і такий підхід не забороняється - він дозволить використовувати пакет cdrtools і, головне, численні графічні надбудови.