Подключение АЦТ и мультиплексоров в 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


Обратите внимание на два тонких момента:
  1. AST Fourport имеет не 16550A, а только 16450 uartы
  2. Скорость терминала 9600, а порт ставится параметрами GETTY в 4800 (sic ?!) Почему, не знаю, но только так он работает.