Подключение АЦТ и мультиплексоров в Linux
Некоторое количество мультиплексоров поддерживается ядром Linux. См. исходники ядра...
Подключение алфавитно-цифрового терминала к ком-порту
Кабель предполагается трех-проводный нульмодемный - tx,rc и ground. Не забудьте закоротить DTR/CTS/RTS.
Сетап терминала:
Mode Line-mode
Data bits 8
Parity NONE
Stop bit 1
Port protocol XON/XOFF
Port speed 9600
В RedHat'е не забудьте проинсталлировать RPM getty_ps - его часто забывают установить при начальной инсталляции.
В файле /etc/gettydefs иметь строку
DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S login: #DT9600
В файл /etc/inittab вписать строчку
Терминал подключен к COM2
f2:12345:respawn:/sbin/getty ttyS1 DT9600
Подключение мультиплексора AST Fourport
Интеллектуальный мультиплексор AST Fourport. Цена около $140 за 4 порта. Интеллектуальность заключается в том, что на все 4 порта поедается одно прерывание. А так же в том, что в этой карте порты имеют 16450 uartы, а значит максимальная скорость на них - 19200.
На карте масса джамперов. Базовый режим STANDART не применять! В нем генерятся порты COM1-COM4 со стандартными для них base-адресами (что вполне приемлемо), и на каждый порт отводится собственное прерывание (что категорически неприемлемо для переполненной картами расширения PC)
Джамперы поставить в режим ENHANSE, переписать на бумажку установленное IRQ (Например 5) и base-адреса, выделенные портам 1-4.
AST Fourport к Plug-n-playным картам НЕ относится. Поэтому зайти в BIOS-setup Pnp-config и поставить IRQ 5 - "Used by ISA" (По умолчанию там стоит "ICU")
RedHat не озаботился сделать специальные файлы для COM-портов 3-... поэтому сделайте их руками:
mknod /dev/cua4 c 5 68
mknod /dev/cua5 c 5 69
mknod /dev/cua6 c 5 70
mknod /dev/cua7 c 5 71
mknod /dev/ttyS4 c 4 68
mknod /dev/ttyS5 c 4 69
mknod /dev/ttyS6 c 4 70
mknod /dev/ttyS7 c 4 71
В файл /etc/rc.d/rc.serial вставить строчки:
#!/bin/sh
# AST FourPort Card IRQ 5 uart 16450 Vector 2BF ENHANSE
setserial -va /dev/cua4 irq 5 port 0x02a0 uart 16450
setserial -va /dev/cua5 irq 5 port 0x02a8 uart 16450
setserial -va /dev/cua6 irq 5 port 0x02b0 uart 16450
setserial -va /dev/cua7 irq 5 port 0x02b8 uart 16450
В файле /etc/gettydefs иметь строку
AST9600# B4800 CS8 CLOCAL # B4800 SANE -ISTRIP CLOCAL #@S login: #AST9600
В файл /etc/inittab вписать строчки
# Dlya AST Fourport skorost stawitx w dwa raza medlennee terminala
f2:12345:respawn:/sbin/getty ttyS1 DT9600
f4:2345:respawn:/sbin/getty ttyS4 AST9600
f5:2345:respawn:/sbin/getty ttyS5 AST9600
f6:2345:respawn:/sbin/getty ttyS6 AST9600
f7:2345:respawn:/sbin/getty ttyS7 AST9600
В файл /etc/profile вписать строчки
case `tty` in
*ttyS?) TERM=vt100 export TERM ;; # Или какие у вас терминалы
esac
Обратите внимание на два тонких момента:
- AST Fourport имеет не 16550A, а только 16450 uartы
- Скорость терминала 9600, а порт ставится параметрами GETTY в
4800 (sic ?!) Почему, не знаю, но только так он работает.