Добрый день,
помогите пожалуйста со следующей проблемой:
Проблема:
Используя Nport 5110 или 5110A с драйвером 1.18 Build 12020919 в Debian Squeeze (6.0.3. ядро 2.6.32-5) не удается запустить соединение ppp (версия 2.4.5) между двумя компами.
Хотя передача данных с помощью cat работает.
Подготовка (Good case):
- Два компа с Debian Squeeze соединяются нульмодемным кабелем и хвостами Moxa Uport 1150
- Между компами передаются данные с помощью cat:
Комп1: stty -F /dev/ttyUSB0 9600 clocal cread -crtscts cs8 -cstopb -hup -parenb -parodd raw -iexten -echo
cat > /dev/ttyUSB0
Комп2: stty -F /dev/ttyUSB0 9600 clocal cread -crtscts cs8 -cstopb -hup -parenb -parodd raw -iexten -echo
cat < /dev/ttyUSB0
На Комп1 пишем символы, на Комп2 они приходят.
- Между компами создается прямое ppp соединение:
На обоих компах:
- Пеименовываем /etc/ppp/options в /etc/ppp/options.bak для чистоты эксперимента
- Запускаем ррр:
pppd -detach lock 10.0.0.<Local>:10.0.0.<Remote> /dev/ttyUSB0 9600 debug
- Видим в первую очередь поднятие интерфейса ppp0:
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
- Далее коммуникация LCP и можно пинговать компы. Все ОК.
Воспроизведение проблемы с NPORT (Bad case):
- NPORT 5110 настроен на скорость 9600 в веб интерфейсе
- Подключено сетевое соединение с Комп1, девайс пингутеся
- Установлен драйвер, есть /dev/ttyr00
- Между компами передаются данные с помощью cat:
Комп1: stty -F /dev/ttyr00 9600 clocal cread -crtscts cs8 -cstopb -hup -parenb -parodd raw -iexten -echo
cat > /dev/ttyr00
Комп2: stty -F /dev/ttyUSB0 9600 clocal cread -crtscts cs8 -cstopb -hup -parenb -parodd raw -iexten -echo
cat < /dev/ttyUSB0
На Комп1 пишутся символы, на Комп2 они приходят.
- Между компами создается прямое ppp соединение:
Запускаем ррр на Комп1:
pppd -detach lock 10.0.0.2:10.0.0.1 /dev/ttyr00 9600 debug
--> Не выдает ничего!!!!
Запускаем ррр на Комп2:
pppd -detach lock 10.0.0.<Local>:10.0.0.<Remote> /dev/ttyUSB0 9600 debug
- Видим в первую очередь поднятие интерфейса ppp0:
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
- Далее идут послания LCP, но связь не устанавливается из-за проблемы с NPORT на Комп1.
- На Комп1 прерываем команду pppd с помощью CTRL+C и видим ошибку:
Failed to reopen /dev/ttyr00: Input/output error
- Если запустить ррpd на комп1 с помощью strace, то видим следующее:
strace pppd -detach lock 10.0.0.2:10.0.0.1 /dev/ttyr00 9600 debug
execve("/usr/sbin/pppd", ["pppd", "-detach", "lock", "10.0.0.2:10.0.0.1", "/dev/ttyr00", "9600", "debug"], [/* 20 vars */]) = 0
brk(0) = 0x85a2000
==== много букв ===
write(8, " 2955\n", 11) = 11
close(8) = 0
open("/dev/ttyr00", O_RDWR|O_NONBLOCK) = 8
fcntl64(8, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK)
fcntl64(8, F_SETFL, O_RDWR) = 0
ioctl(8, TIOCMBIS, [TIOCM_DTR]) = 0
ioctl(8, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(8, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(8, SNDCTL_TMR_CONTINUE or TCSETSF, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(8, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
open("/dev/ttyr00", O_RDWR
Здесь он и висит после повторной попытки открыть /dev/ttyr00
Что делать?
С Уважением,
Евгений