Имеется указанная мультипортовка. Нужно настроить модемный пул. Раньше всё это работало под какой-то FreBSD(вроде бы 4.10), но недавно посыпался винт и система умерла. Приходится ставить заново. Проблема, собственно вот в чём: на данный момент к мультипортовке подключены 4 модема(абсолютно одинаковые, 100% работающие), но достучаться я могу только до двух(на материнке 2 com-порта. В BIOS они сейчас включены, так как без них не видно модемов вообще). Может кто-нибудь сталкивался с настройкой такой железки? Или встречал ссылки на документацию(я нашёл очень мало и инфа указанная там не помогла).
Сейчас картина такая:[root@den ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 RTS|DTR
1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 RTS|DTR
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3
[root@den ~]# setserial /dev/ttyS2 uart 16550A
[root@den ~]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 RTS|DTR
1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 RTS|DTR
2: uart:16550A port:000003E8 irq:4 tx:0 rx:0 CTS|DSR|CD|RI
3: uart:unknown port:000002E8 irq:3
До модема, висящего на ttyS2, разумеется, не достукиваюсь:[root@den ~]# cu -l /dev/ttyS2
cu: open (/dev/ttyS2): Permission denied
cu: /dev/ttyS2: Line in useРазобрался с драйверами вроде бы, но не всё понятно.
Появились устройства /dev/ttyM*
Но что-то всё равно не работает.
Подгружаю дрова:[root@den ~]# modprobe mxser ioaddr=0x280
Параметры взяты из инструкции к драйверам.
В логах появлется запись:[root@den ~]# tail -n 1 /var/log/messages
Aug 8 03:31:49 den kernel: MOXA Smartio/Industio family driver version 1.8
lsmod показывает:[root@den ~]# lsmod | grep mxser
mxser 38064 0
Но ни setserial, ни stty, ни cu к портам не подключается. Либо line in use, либо No such device.
Причём те два модема из четырёх, которые виделись и работали на /dev/ttyS0 и /dev/ttyS1 так и работают, хотя все модемы, как я уже говорил, подключены именно к мультипортовке.Те, что висят на ttyS0 и ttyS1 замечательно работают.
Если недостаточно информации, уточните.
Посмотри /dev/ttyM* и /dev/cum*, какой у них Major
для Moxa стандартным является:
#define MXSERMAJOR 174
#define MXSERCUMAJOR 175если числа MAJOR не те, то лучше скачай с www.moxa.com драйвер mxser
в нем подкорректируй driver/msmknod:
...
MAJOR=174
...
CUMAJOR=175make
затем msmknod>[оверквотинг удален]
>
>
>Но ни setserial, ни stty, ни cu к портам не подключается. Либо
>line in use, либо No such device.
>Причём те два модема из четырёх, которые виделись и работали на /dev/ttyS0
>и /dev/ttyS1 так и работают, хотя все модемы, как я уже
>говорил, подключены именно к мультипортовке.
>
>Те, что висят на ttyS0 и ttyS1 замечательно работают.
>Если недостаточно информации, уточните.
Не совсем понял. Дрова качал как раз с moxa.com. У меня есть файл msmknod. Именно его я использовал по инструкции идущей с драйвером для создания /dev/ttyM*. Но там несколько другие параметры. Вот этот файл:[root@den ~]# cat /moxa/mxser/driver/msmknod
#
# MOXA Smartio/Industio Family Multiport Board Make Node Utility.
#
#
# Usage : msmknod
##!/bin/sh
MAXPORTS=8
#Tty naming : ttyM[port idx]
TTYNAME=ttyM#Callout device naming : cum[port idx]
CUANAME=cumecho "MOXA Smartio Family Multiport Board Make Node Utility."
if [ $1 ] ; then
MAJOR=$1
else
echo "Please input device major number(Enter for default=30):"
read MAJOR
fiif [ ! $MAJOR ] ; then
MAJOR=30
fi
echo "major=" $MAJOR
echo ""if [ $2 ] ; then
CUMAJOR=$2
else
echo "Please input callout device major number(Enter for default=35):"
read CUMAJOR
fiif [ ! $CUMAJOR ] ; then
CUMAJOR=35
fi
echo "major=" $CUMAJOR
echo ""if [ $3 ]; then
BOARDS=$3
else
echo "Please input total board number (1-4, Enter for default=1):"
read BOARDS
fiif [ ! $BOARDS ] ; then
BOARDS=1
fi
echo "boards=" $BOARDS
echo ""#
# make special node for "msdiag", "msmon"
#
echo "Make special node..."
[ -f /dev/mxser ] || rm -rf /dev/mxser
mknod /dev/mxser c $MAJOR 32
chmod a+wx /dev/mxser#
# make node loop
#
echo "Make tty device..."
board=0
while [ $board -lt $BOARDS ]
do
port=0
while [ $port -lt $MAXPORTS ]
do
id=`expr $board \* $MAXPORTS`
id=`expr $id + $port`[ -c /dev/$TTYNAME$id ] && rm -f /dev/$TTYNAME$id
[ -c /dev/$CUANAME$id ] && rm -f /dev/$CUANAME$idecho /dev/$TTYNAME$id /dev/$CUANAME$id $id
mknod /dev/$TTYNAME$id c $MAJOR $id
mknod /dev/$CUANAME$id c $CUMAJOR $idchmod a+wx /dev/$TTYNAME$id
chmod a+wx /dev/$CUANAME$idport=`expr $port + 1`
doneboard=`expr $board + 1`
done