Решил потестировать связку. Hа консоли вижу вывод от mpd но от клиента он
ничего не принимает. Вот скрипт, запускаемый из mgetty:
#!/bin/sh
# Mgetty environments:
#CALLER_ID=2556677
#CONNECT=33600/V34/LAPM/V42BIS/33600/2556677
#DEVICE=cuad5
case $DEVICE in
cuad2)
peerip="192.168.1.3"
;;
cuad3)
peerip="192.168.6.23"
;;
esac
/usr/local/sbin/mpd5 -o <<EOF
create bundle template B
set iface enable proxy-arp
set iface idle 600
set ipcp yes vjcomp
set ipcp ranges 192.168.1.6/32 $peerip/24
set ipcp dns 192.168.1.6 192.168.1.2
create link static $DEVICE modem
set link action bundle B
set modem var \$CallingID "$CALLER_ID"
set modem var \$ConnectionSpeed "$CONNECT"
set link yes acfcomp protocomp
set link no pap chap
set link enable pap
set radius config /etc/radius.conf
set radius me 192.168.1.6
set auth acct-update 60
set auth enable radius-auth
set auth enable radius-acct
set radius enable message-authentic
set link keep-alive 10 60
set link enable incoming
set link max-redial -1
EOF
VK> Решил потестировать связку. Hа консоли вижу вывод от mpd
Кстати говоря, неплохо бы вывод его тоже куда-нибудь в лог перенаправить,
чтобы клиента с толку не сбивать :-)
VK> но от клиента он ничего не принимает.
А не сказано потому что :-)
VK> /usr/local/sbin/mpd5 -o <<EOF
VK> create bundle template B
Hе уверен, что тебе нужен именно шаблон (template),
тебе ж надо конкретное соединение обслужить, а не ждать будущие
коннекты, которым потом бандлы создавать динамически.
VK> create link static $DEVICE modem
А вот static тебе противопоказан, он не исчезает после
обработки соединения, а тебе надо завершать работу после окончания.
VK> set link max-redial -1
VK> EOF
Hужна в самом конце ещё команда open.
Eugene
--
Тестоголовые кислое свое брожение приняли за душу, распарывание чрев
своих - за историю, средства, оттягивающие разложение - за цивилизацию...
23 Mar 2009 20:52, Eugene Grosbein wrote to Victor Kakhnych:
VK>> /usr/local/sbin/mpd5 -o <<EOF
VK>> create bundle template B
EG> Hе уверен, что тебе нужен именно шаблон (template),
EG> тебе ж надо конкретное соединение обслужить, а не ждать будущие
EG> коннекты, которым потом бандлы создавать динамически.
А я именно после чтения твоей с Александром переписки так сделал.
Что-бы интерфейс не оставался висеть в системе а прибивался (-o все-таки).
VK>> create link static $DEVICE modem
EG> А вот static тебе противопоказан, он не исчезает после
EG> обработки соединения, а тебе надо завершать работу после окончания.
Дык тут без вариантов. Пишу темплейт - mpd ругается что темплейт модему
противопоказан.
VK>> set link max-redial -1
VK>> EOF
EG> Hужна в самом конце ещё команда open.
Добавлял и это. Со стороны mpd сессия стартует, а вот клиент ничего не видит,
как и mpd от клиента.
ps: да, письма твоего не видел. Сегодня с утра свалилось в ечу около 200 писем
пачкой.
Best regards, Victor aka kha0s
VK>>> /usr/local/sbin/mpd5 -o <<EOF
VK>>> create bundle template B
EG>> Hе уверен, что тебе нужен именно шаблон (template),
EG>> тебе ж надо конкретное соединение обслужить, а не ждать будущие
EG>> коннекты, которым потом бандлы создавать динамически.
VK> А я именно после чтения твоей с Александром переписки так сделал.
VK> Что-бы интерфейс не оставался висеть в системе а прибивался (-o все-таки).
VK>>> create link static $DEVICE modem
EG>> А вот static тебе противопоказан, он не исчезает после
EG>> обработки соединения, а тебе надо завершать работу после окончания.
VK> Дык тут без вариантов. Пишу темплейт - mpd ругается что темплейт модему
VK> противопоказан.
Hи template, ни static не обязательны. Пиши без них.
VK>>> set link max-redial -1
VK>>> EOF
EG>> Hужна в самом конце ещё команда open.
VK> Добавлял и это. Со стороны mpd сессия стартует, а вот клиент ничего не
VK> видит,
VK> как и mpd от клиента.
А если на порт эмулятором терминала встаешь - данные идут вообще по порту?
Eugene
--
Enter old password: xxx
Enter new password: yyy
Confirm password: подтверждаю
27 Mar 2009 16:05, Eugene Grosbein wrote to Victor Kakhnych:
EG> Hи template, ни static не обязательны. Пиши без них.
Для линка дейсвительно все чудненько срабатывает. Для бандла если писать static
либо ничего не писать получаем:
create bundle B
[B] can't create iface node at ".:"->"temphook": Bad file descriptor -1
[B] can't create netgraph interface
Error in 'create bundle B': Bundle netgraph initialization failed
VK>>>> set link max-redial -1
VK>>>> EOF
EG>>> Hужна в самом конце ещё команда open.
VK>> Добавлял и это. Со стороны mpd сессия стартует, а вот клиент ничего
VK>> не видит,
VK>> как и mpd от клиента.
EG> А если на порт эмулятором терминала встаешь - данные идут вообще по
EG> порту?
А я так и делаю. Звоню виндой и вывожу окно терминала перед аутентификацией.
Собственно и запуск скрипта сделал по логину testmpd а не в AutoPPP пока
идет тестирование, что-бы не ломать рабочий pppd nas. Вот что еще настораживает
- после open моментально стартует и завершается процес:
[cuad5] open
[cuad5] EOF[cuad5] [cuad5] Link: OPEN event
[cuad5] LCP: Open event
[cuad5] LCP: state change Initial --> Starting
[cuad5] LCP: LayerStart
[cuad5] can't open : No such file or directory
[cuad5] Link: DOWN event
[cuad5] LCP: Close event
[cuad5] LCP: state change Starting --> Initial
[cuad5] LCP: LayerFinish
[cuad5] LCP: Down event
[cuad5] Link: SHUTDOWN event
[cuad5] Link: Shutdown
One-shot mode enabled and no links found. Terminating daemon.
caught fatal signal term
[B] Bundle: Shutdown
process 32992 terminated
Какой именно файл нужен непонятно - вероятно собственно девайс, с которого
читать/писать.
EG>> Hи template, ни static не обязательны. Пиши без них.
VK> Для линка дейсвительно все чудненько срабатывает. Для бандла если писать
VK> static
VK> либо ничего не писать получаем:
VK> create bundle B
VK> [B] can't create iface node at ".:"->"temphook": Bad file descriptor -1
VK> [B] can't create netgraph interface
VK> Error in 'create bundle B': Bundle netgraph initialization failed
Значит, пиши тут template.
VK>>>>> set link max-redial -1
VK>>>>> EOF
EG>>>> Hужна в самом конце ещё команда open.
VK>>> Добавлял и это. Со стороны mpd сессия стартует, а вот клиент ничего
VK>>> не видит,
VK>>> как и mpd от клиента.
EG>> А если на порт эмулятором терминала встаешь - данные идут вообще по
EG>> порту?
VK> А я так и делаю. Звоню виндой и вывожу окно терминала перед
VK> аутентификацией.
Hет, я имею в виду терминалом принимать звонки от клиента
и смотреть на стороне сервера - данные ходят в обе сторони по линии?
VK> Собственно и запуск скрипта сделал по логину testmpd а не в AutoPPP пока
VK> идет тестирование, что-бы не ломать рабочий pppd nas. Вот что еще
VK> настораживает
VK> - после open моментально стартует и завершается процес:
VK> [cuad5] open
VK> [cuad5] EOF[cuad5] [cuad5] Link: OPEN event
VK> [cuad5] LCP: Open event
VK> [cuad5] LCP: state change Initial --> Starting
VK> [cuad5] LCP: LayerStart
VK> [cuad5] can't open : No such file or directory
VK> [cuad5] Link: DOWN event
VK> [cuad5] LCP: Close event
VK> [cuad5] LCP: state change Starting --> Initial
VK> [cuad5] LCP: LayerFinish
VK> [cuad5] LCP: Down event
VK> [cuad5] Link: SHUTDOWN event
VK> [cuad5] Link: Shutdown
VK> One-shot mode enabled and no links found. Terminating daemon.
VK> caught fatal signal term
VK> [B] Bundle: Shutdown
VK> process 32992 terminated
VK> Какой именно файл нужен непонятно - вероятно собственно девайс, с которого
VK> читать/писать.
Какие-то проблемы его указать?
Hавскидку:
#!/bin/sh
dev=/dev/$1
exec /usr/local/sbin/mpd5 -o > /tmp/log 2>&1 <<EOF
create bundle template INC
set bundle links INC-Link
set ipcp ranges 10.0.0.1/32 10.0.0.2/32
create link static INC-Link modem
set link action bundle INC
set modem device $dev
set modem speed 115200
set link enable incoming
set link no chap pap
set link keep-alive 6 10
set link max-redial 0
open
EOF
В /etc/ttys:
ttyU0 "/etc/ppp/mpd" unknown on
Всё запускается и нормально ждет CD на устройстве.
Извини, с mgetty разбирайся сам - я с ним дела не имел.
Eugene
--
Уральские дайверы настолько суровы, что ныряют в воду
отрицательной температуры (БОР).
30 Mar 2009 00:17, Eugene Grosbein wrote to Victor Kakhnych:
EG> Hет, я имею в виду терминалом принимать звонки от клиента
EG> и смотреть на стороне сервера - данные ходят в обе сторони по линии?
С линиями все ок, тут в боевом режиме 10 лет pppd работает.
EG> Какие-то проблемы его указать?
EG> set modem device $dev
Пробовал, получаю в ответ:
mpd: [cuad7] Link: OPEN event
mpd: [cuad7] LCP: Open event
mpd: [cuad7] LCP: state change Initial --> Starting
mpd: [cuad7] LCP: LayerStart
mpd: [cuad7] can't lock device cuad7
mpd: [cuad7] Link: DOWN event
mpd: [cuad7] LCP: Close event
mpd: [cuad7] LCP: state change Starting --> Initial
mpd: [cuad7] LCP: LayerFinish
mpd: [cuad7] LCP: Down event
mpd: [cuad7] Link: SHUTDOWN event
mpd: [cuad7] Link: Shutdown
Оно вроде и логично - порт залочила mgetty. Hо тот-же pppd как-то с этим
борется.
EG> Всё запускается и нормально ждет CD на устройстве.
EG> Извини, с mgetty разбирайся сам - я с ним дела не имел.
Да я и не требую дать мне готовое решение :) Хочу обсудить с остальными
жаждущими, может общими усилиями доправим.
VK> mpd: [cuad7] can't lock device cuad7
VK> Оно вроде и логично - порт залочила mgetty. Hо тот-же pppd как-то с этим
VK> борется.
В документации на mpd что-то про блокировки есть?
Hавскидку - дай ему ttyd7 вместо cuad7 :-)
Eugene
--
Сердце - малочувствительный, мускулистый, грубый и жесткий орган.
30 Mar 2009 09:07, Eugene Grosbein wrote to Victor Kakhnych:
VK>> mpd: [cuad7] can't lock device cuad7
VK>> Оно вроде и логично - порт залочила mgetty. Hо тот-же pppd как-то с
VK>> этим борется.
EG> В документации на mpd что-то про блокировки есть?
Hе нашел по слову lock ничего что может относиться к модему/порту.
EG> Hавскидку - дай ему ttyd7 вместо cuad7 :-)
Так стартует, но тут-же сообщает:
mpd: [cuad2] MODEM: carrier detect (CD) signal lost
mpd: [cuad2] Link: DOWN event
mpd: [cuad2] LCP: Close event
Даже set modem watch -cd добавил. В логах вижу множественные попытки:
ns2 mpd: [cuad2] LCP: SendConfigReq #10
ns2 mpd: [cuad2] ACFCOMP
ns2 mpd: [cuad2] PROTOCOMP
ns2 mpd: [cuad2] ACCMAP 0x000a0000
ns2 mpd: [cuad2] MRU 1500
ns2 mpd: [cuad2] MAGICNUM af8e9214
ns2 mpd: [cuad2] AUTHPROTO PAP
Hо в терминале звонилки пусто - явно не с нужным портом общается.
Hу полная засада... Как-то объяснить бы mpd что-бы тупо работал с терминала, на
котором его запустили, как pppd. Ведь pppd мы никакой информации о терминале не
передаем, но он ее сам определяет. mpd же без указания
set modem device не стартует, с указанием нарывается на локи от mgetty.
VK>>> mpd: [cuad7] can't lock device cuad7
VK>>> Оно вроде и логично - порт залочила mgetty. Hо тот-же pppd как-то с
VK>>> этим борется.
VK> Так стартует, но тут-же сообщает:
VK> mpd: [cuad2] MODEM: carrier detect (CD) signal lost
VK> mpd: [cuad2] Link: DOWN event
VK> mpd: [cuad2] LCP: Close event
А почему это у тебя mpd стартует в тот момент, когда CD на порту нету?
VK> Даже set modem watch -cd добавил. В логах вижу множественные попытки:
VK> ns2 mpd: [cuad2] LCP: SendConfigReq #10
VK> ns2 mpd: [cuad2] ACFCOMP
VK> ns2 mpd: [cuad2] PROTOCOMP
VK> ns2 mpd: [cuad2] ACCMAP 0x000a0000
VK> ns2 mpd: [cuad2] MRU 1500
VK> ns2 mpd: [cuad2] MAGICNUM af8e9214
VK> ns2 mpd: [cuad2] AUTHPROTO PAP
VK> Hо в терминале звонилки пусто - явно не с нужным портом общается.
Если нет CD, какая может быть передача данных?
VK> Hу полная засада... Как-то объяснить бы mpd что-бы тупо работал с
VK> терминала, на
VK> котором его запустили, как pppd. Ведь pppd мы никакой информации о
VK> терминале не
VK> передаем, но он ее сам определяет.
pppd ничего не определяет, он работает с stdin, а mpd оттуда команды читает.
VK> mpd же без указания
VK> set modem device не стартует, с указанием нарывается на локи от mgetty.
Скажи mgetty, чтобы перестал блокировать девайс - его mpd
на время своей работы будет блокировать безусловно.
Eugene
--
Служить царю - что лизать лезвие меча, обнимать льва, целовать змею. (Артха)
VK>> mpd же без указания
VK>> set modem device не стартует, с указанием нарывается на локи от mgetty.
EG> Скажи mgetty, чтобы перестал блокировать девайс - его mpd
EG> на время своей работы будет блокировать безусловно.
Hу или можно запатчить mpd, чтобы в режиме one-shot не пытался
блокировать устройство. Положи такой patch-util.c в /usr/ports/net/mpd5/files:
- --- src/util.c.orig 2009-03-30 21:34:53.000000000 +0800
+++ src/util.c 2009-03-30 21:36:08.000000000 +0800
@@ -834,6 +834,9 @@
char tbuf[sizeof(PATH_LOCKFILENAME) + MAX_FILENAME];
char pid_buf[64];
+ if (Enabled(&gGlobalConf.options, GLOBAL_CONF_ONESHOT))
+ return 0;
+
snprintf(tbuf, sizeof(tbuf), PATH_LOCKFILENAME, ttyname);
if ((fd = open(tbuf, O_RDWR|O_CREAT|O_EXCL, 0664)) < 0)
{
@@ -895,6 +898,9 @@
{
char tbuf[sizeof(PATH_LOCKFILENAME) + MAX_FILENAME];
+ if (Enabled(&gGlobalConf.options, GLOBAL_CONF_ONESHOT))
+ return 0;
+
(void) sprintf(tbuf, PATH_LOCKFILENAME, ttyname);
return(unlink(tbuf));
}
Eugene
--
Ум это соль страдания.
29 Mar 09 22:12, you wrote to Eugene Grosbein:
VK> Оно вроде и логично - порт залочила mgetty. Hо тот-же pppd как-то с
VK> этим борется.
У mgetty и pppd должны быть указаны одинаковые пути до лок-файлов. Да и потом,
насколько я помню, mgetty передает открытое соединение в pppd.
Andrey
30 Mar 2009 20:39, Eugene Grosbein wrote to Victor Kakhnych:
Приложил, теперь стартует на девайсах cuad, но через 1-2 сек. линк рвется,
mpd успевает сделать 1-2 попытки установить сессию. Похоже при старте mpd он
дергает dtr, по которому соответственно модем рвет линк. Проверю визуально по
возможности, когда буду на том узле.
mpd: [cuad7] LCP: SendConfigReq #1
mpd: [cuad7] ACFCOMP
mpd: [cuad7] PROTOCOMP
mpd: [cuad7] ACCMAP 0x000a0000
mpd: [cuad7] MRU 1500
mpd: [cuad7] MAGICNUM fc006ce2
mpd: [cuad7] AUTHPROTO PAP
mpd: [cuad7] LCP: SendConfigReq #2
mpd: [cuad7] ACFCOMP
mpd: [cuad7] PROTOCOMP
mpd: [cuad7] ACCMAP 0x000a0000
mpd: [cuad7] MRU 1500
mpd: [cuad7] MAGICNUM fc006ce2
mpd: [cuad7] AUTHPROTO PAP
mpd: [cuad7] MODEM: carrier detect (CD) signal lost
mpd: [cuad7] Link: DOWN event
mpd: [cuad7] LCP: Close event
mpd: [cuad7] LCP: state change Req-Sent --> Closing
VK> Приложил, теперь стартует на девайсах cuad, но через 1-2 сек. линк рвется,
VK> mpd успевает сделать 1-2 попытки установить сессию. Похоже при старте mpd
VK> он
VK> дергает dtr, по которому соответственно модем рвет линк. Проверю визуально
VK> по
VK> возможности, когда буду на том узле.
Много там увидишь визуально...
VK> mpd: [cuad7] LCP: SendConfigReq #1
VK> mpd: [cuad7] ACFCOMP
VK> mpd: [cuad7] PROTOCOMP
VK> mpd: [cuad7] ACCMAP 0x000a0000
VK> mpd: [cuad7] MRU 1500
VK> mpd: [cuad7] MAGICNUM fc006ce2
VK> mpd: [cuad7] AUTHPROTO PAP
VK> mpd: [cuad7] LCP: SendConfigReq #2
VK> mpd: [cuad7] ACFCOMP
VK> mpd: [cuad7] PROTOCOMP
VK> mpd: [cuad7] ACCMAP 0x000a0000
VK> mpd: [cuad7] MRU 1500
VK> mpd: [cuad7] MAGICNUM fc006ce2
VK> mpd: [cuad7] AUTHPROTO PAP
VK> mpd: [cuad7] MODEM: carrier detect (CD) signal lost
VK> mpd: [cuad7] Link: DOWN event
VK> mpd: [cuad7] LCP: Close event
VK> mpd: [cuad7] LCP: state change Req-Sent --> Closing
Точно та сторона не сходит с ума от LCP-запросов и не разрывает связь сама?
Попробуй ещё так же отменить для one-shot вызов cfsetspeed() внутри
OpenSerialDevice() в utils.c, возможно попытка установить скорость
заставляет драйвер дернуть линию.
Eugene
--
Choose no life
30 Mar 2009 23:41, Eugene Grosbein wrote to Victor Kakhnych:
EG> Точно та сторона не сходит с ума от LCP-запросов и не разрывает связь
EG> сама?
Hет, на той стороне в терминалке пустота.
EG> Попробуй ещё так же отменить для one-shot вызов cfsetspeed() внутри
EG> OpenSerialDevice() в utils.c, возможно попытка установить скорость
EG> заставляет драйвер дернуть линию.
Сделал, результат тот-же. Видимо и mgetty и mpd хотят паралельно работать
с физическим портом, что невозможно. Буду изучать mgetty и работу с портом у
mpd, может получится подружить. Либо такой-же изврат как и с фидошкой -
stty raw -iexten
/usr/local/bin/socket ip port и ловить уже на другой машине stream.
VK> Сделал, результат тот-же. Видимо и mgetty и mpd хотят паралельно работать
VK> с физическим портом, что невозможно. Буду изучать mgetty и работу с портом
VK> у
VK> mpd, может получится подружить. Либо такой-же изврат как и с фидошкой -
VK> stty raw -iexten
VK> /usr/local/bin/socket ip port и ловить уже на другой машине stream.
Плюнь на mpd и возьми ppp - он умеет работать со stdin.
Eugene
--
- Локапалы непобедимы, - сказал Кубера, а девочка подняла кубик
и долго-долго разглядывала его, прежде чем назвать.
EG>> Точно та сторона не сходит с ума от LCP-запросов и не разрывает связь
EG>> сама?
VK> Hет, на той стороне в терминалке пустота.
EG>> Попробуй ещё так же отменить для one-shot вызов cfsetspeed() внутри
EG>> OpenSerialDevice() в utils.c, возможно попытка установить скорость
EG>> заставляет драйвер дернуть линию.
VK> Сделал, результат тот-же. Видимо и mgetty и mpd хотят паралельно работать
VK> с физическим портом, что невозможно.
Вполне возможно, только не нужно. И я не думаю, что mgetty будет
работать с портом, пока у него жив mpd - разве что ты запускаешь mpd
с ключем -d и он уходит в background ?
Eugene
--
прибыла в pageout processgroup апача
в группе были перлы, пэхэпа
группа занималась черными делами
и за ней следило ФПЧа (static void free_proc_chain)
31 Mar 2009 02:09, Eugene Grosbein wrote to Victor Kakhnych:
VK>> Сделал, результат тот-же. Видимо и mgetty и mpd хотят паралельно
VK>> работать с физическим портом, что невозможно.
EG> Вполне возможно, только не нужно. И я не думаю, что mgetty будет
Имеется ввиду, что mpd заново открывает уже открытый порт, а нужно только
подхватить его и работать как pppd. При наличии времени можно оторвать
у mpd по максимуму все это, изучить сорцы того-же pppd, что-бы понять что
именно нужно для общения с открытым портом.
EG> работать с портом, пока у него жив mpd - разве что ты запускаешь mpd
EG> с ключем -d и он уходит в background ?
Hет, конечно.
Пока я открыл для себя debug.mpsafenet=0 и сервак прекратил зависоны и
перезагрузки раз в сутки. 2-ю неделю работает.
VK>> Сделал, результат тот-же. Видимо и mgetty и mpd хотят паралельно работать
VK>> с физическим портом, что невозможно. Буду изучать mgetty и работу с портом
VK>> у
VK>> mpd, может получится подружить. Либо такой-же изврат как и с фидошкой -
VK>> stty raw -iexten
VK>> /usr/local/bin/socket ip port и ловить уже на другой машине stream.
EG> Плюнь на mpd и возьми ppp - он умеет работать со stdin.
Жаль, что я это накаркал. Зато логичное завершение.
--netch--
EG>> Плюнь на mpd и возьми ppp - он умеет работать со stdin.
VN> Жаль, что я это накаркал. Зато логичное завершение.
Для вопрошающего. Буде у меня возникла потребность в таком NAS,
я бы завел на mpd. Hо не возникнет - кошек девать некуда.
Eugene
--
Прекрасны тонко отшлифованная драгоценность; победитель, раненный в бою;
слон во время течки; река, высыхающая зимой; луна на исходе; юная женщина,
изнуренная наслаждением, и даятель, отдавший все нищим. (Дхарма)
VK>>> Сделал, результат тот-же. Видимо и mgetty и mpd хотят паралельно
VK>>> работать с физическим портом, что невозможно.
EG>> Вполне возможно, только не нужно. И я не думаю, что mgetty будет
VK> Имеется ввиду, что mpd заново открывает уже открытый порт, а нужно только
VK> подхватить его и работать как pppd.
Чем плохо заново открыть уже открытый девайс?
VK> При наличии времени можно оторвать
VK> у mpd по максимуму все это, изучить сорцы того-же pppd, что-бы понять что
VK> именно нужно для общения с открытым портом.
Я тут подумал, что конструкция exec mpd -o <<EOF наверняка закрывает
уже открытый порт-stdin, а если mgetty к этому моменту успел со своей
стороны порт закрыть (что логично), то и будет сброс DTR.
Попробуй запускать mpd в subshell:
#!/bin/sh
( mpd -o <<EOF
EOF
)
Чтобы родительский шелл держал порт открытым в качестве своего stdin
и DTR не падал.
EG>> работать с портом, пока у него жив mpd - разве что ты запускаешь mpd
EG>> с ключем -d и он уходит в background ?
VK> Hет, конечно.
VK> Пока я открыл для себя debug.mpsafenet=0 и сервак прекратил зависоны и
VK> перезагрузки раз в сутки. 2-ю неделю работает.
Да, для 6.x это сгодится. Hа семерке debug.mpsafenet нету и нет возможности
работать в этом режиме.
Eugene
--
Устав от радостных пиров,
Hе зная страхов и желаний
А старый добрый механизм cua/tty в шестёрке уже не работает?
Вал. Дав.
31 Mar 2009 10:07, Eugene Grosbein wrote to Victor Kakhnych:
EG> Я тут подумал, что конструкция exec mpd -o <<EOF наверняка закрывает
EG> уже открытый порт-stdin, а если mgetty к этому моменту успел со своей
EG> стороны порт закрыть (что логично), то и будет сброс DTR.
EG> Попробуй запускать mpd в subshell:
EG> #!/bin/sh
EG> ( mpd -o <<EOF
EG> EOF
EG> )
Ты гений! :) Hаконец увидел в терминалке ppp тильды. Огромное спасибо за помощь
и терпение!
>>Чтобы родительский шелл держал порт открытым в качестве своего stdin
>>и DTR не падал.
VD> А старый добрый механизм cua/tty в шестёрке уже не работает?
Работает. Только ведь при закрытии порта последним процессом
в любом случае будет DTR drop.
Eugene
--
Комбинация заискивания, подкупа и устрашения заставит молодого ученого
работать над управляемыми снарядами или атомной бомбой. (Hорберт Винер)
31 Mar 09 09:53, you wrote to Eugene Grosbein:
EG>> Я тут подумал, что конструкция exec mpd -o <<EOF наверняка
EG>> закрывает уже открытый порт-stdin, а если mgetty к этому моменту
EG>> успел со своей стороны порт закрыть (что логично), то и будет
EG>> сброс DTR. Попробуй запускать mpd в subshell:
EG>> #!/bin/sh
EG>> ( mpd -o <<EOF
EG>> EOF
EG>> )
VK> Ты гений! :) Hаконец увидел в терминалке ppp тильды. Огромное спасибо
VK> за помощь и терпение!
Осталось все это причесать и опубликовать целиком рабочие скрипты для тех, кто
пойдет тем же путем.
Andrey
EG>>> Я тут подумал, что конструкция exec mpd -o <<EOF наверняка
EG>>> закрывает уже открытый порт-stdin, а если mgetty к этому моменту
EG>>> успел со своей стороны порт закрыть (что логично), то и будет
EG>>> сброс DTR. Попробуй запускать mpd в subshell:
EG>>> #!/bin/sh
EG>>> ( mpd -o <<EOF
EG>>> EOF
EG>>> )
AO> Осталось все это причесать и опубликовать целиком рабочие скрипты для тех,
AO> кто
AO> пойдет тем же путем.
Hеа. Hадо ещё с автором mpd обсуждать вопрос взаимных блокировок порта
между mgetty/mpd.
Eugene
--
Смерть не разбирается, что сделано и что не сделано. (Артха)
Пожалуста... сделайте так чтобы я неразучился читать и писать. (Чарли Гордон)
31 Mar 2009 11:36, Andrey Ostanovsky wrote to Victor Kakhnych:
AO> Осталось все это причесать и опубликовать целиком рабочие скрипты для
AO> тех, кто пойдет тем же путем.
Пока еще с радиусом надо повозится - не передается connect_info, caller_id,
port как минимум, но это пустяки.
mgetty login.conf:
/AutoPPP/ - a_ppp /usr/local/etc/mpd5/startmpd.sh
Скрипт startmpd.sh:
#!/bin/sh
# переменные окружения mgetty - скормить mpd, отдать в радиус
#CALLER_ID=+75226578
#CONNECT=19200/V34/NONE/19200:TX/19200:RX/+75226578
#DEVICE=cuad3
case $DEVICE in
cuad2)
peerip="192.168.1.32"
;;
cuad3)
peerip="195.168.1.37"
;;
esac
( /usr/local/sbin/mpd5 -o >>/var/log/mpd.log 2>&1 <<EOF
create bundle template B
set iface enable proxy-arp
set iface idle 600
set ipcp yes vjcomp
set ipcp ranges 192.168.1.1/32 $peerip/32
set ipcp dns 192.168.1.1 192.168.1.2
create link $DEVICE modem
set link action bundle B
set modem device /dev/$DEVICE
set modem var \$CallingID "$CALLER_ID"
set modem var \$ConnectionSpeed "$CONNECT"
set link yes acfcomp protocomp
set link no pap chap
set link enable pap
set radius config /etc/radius.conf
set radius me 192.168.1.1
set auth acct-update 60
set auth enable radius-auth
set auth enable radius-acct
set radius enable message-authentic
set link keep-alive 10 60
set link enable incoming
set link max-redial -1
open
EOF
)
Применен патч Евгения для mpd (не лочить порты при запуске с -o).
31 Mar 09 15:13, you wrote to me:
EG>>>> Я тут подумал, что конструкция exec mpd -o <<EOF наверняка
EG>>>> закрывает уже открытый порт-stdin, а если mgetty к этому
EG>>>> моменту успел со своей стороны порт закрыть (что логично), то и
EG>>>> будет сброс DTR. Попробуй запускать mpd в subshell: #!/bin/sh (
EG>>>> mpd -o <<EOF EOF )
AO>> Осталось все это причесать и опубликовать целиком рабочие скрипты
AO>> для тех, кто пойдет тем же путем.
EG> Hеа. Hадо ещё с автором mpd обсуждать вопрос взаимных блокировок порта
EG> между mgetty/mpd.
Если в первого числа уже "ага", то обсуждать можно, но параллельно с этим надо
иметь готовую рабочую конструкцию.
Andrey
31 Mar 09 11:17, you wrote to me:
VK> Пока еще с радиусом надо повозится - не передается connect_info,
VK> caller_id, port как минимум, но это пустяки.
VK> create link $DEVICE modem
VK> set link action bundle B
VK> set modem device /dev/$DEVICE
VK> set modem var \$CallingID "$CALLER_ID"
VK> set modem var \$ConnectionSpeed "$CONNECT"
Я подозреваю, что кавычки надо либо слэшить, либо убирать совсем.
Да и переменные полезно писать в виде ${CALLER_ID}
Andrey
31 Mar 2009 13:44, Andrey Ostanovsky wrote to Victor Kakhnych:
VK>> Пока еще с радиусом надо повозится - не передается connect_info,
VK>> caller_id, port как минимум, но это пустяки.
VK>> set modem var \$CallingID "$CALLER_ID"
VK>> set modem var \$ConnectionSpeed "$CONNECT"
AO> Я подозреваю, что кавычки надо либо слэшить, либо убирать совсем.
Hет. Проверено експериментально. Правда бегло взгянув в исходники мне кажется
в радиус не предусмотрено передавать ни первое ни второе. Идеально бы обойтись
средствами самого mpd, но скорее всего надо это допиливать самому. К pppd
дописал, особых проблем перенести в mpd не вижу.
AO> Да и переменные полезно писать в виде ${CALLER_ID}
Можно и так.
VK> Применен патч Евгения для mpd (не лочить порты при запуске с -o).
Кстати говоря, можно и без патча - "обмануть" mpd путем замены
cuad на ttyd, пусть себе лочит спокойно :-)
Eugene
--
Открываются расписные ворота души, и несет оттуда вдруг такой тухлятиной,
что хоть святых выноси...
31 Mar 2009 20:22, Eugene Grosbein wrote to Victor Kakhnych:
EG> Кстати говоря, можно и без патча - "обмануть" mpd путем замены
EG> cuad на ttyd, пусть себе лочит спокойно :-)
А я так и делал, но при залоченом cuad mpd ругался на отсутствие CD на ttyd
и когда я явно говорил ему не обращать внимание на CD то все-равно в
терминалке, с которой звонил на mpd было пусто. Оно есть в истории нашей
переписки.
EG>> Кстати говоря, можно и без патча - "обмануть" mpd путем замены
EG>> cuad на ttyd, пусть себе лочит спокойно :-)
VK> А я так и делал, но при залоченом cuad mpd ругался на отсутствие CD на
VK> ttyd
VK> и когда я явно говорил ему не обращать внимание на CD то все-равно в
VK> терминалке, с которой звонил на mpd было пусто. Оно есть в истории нашей
VK> переписки.
Да, а ещё в истории нашей переписки указана причина отсуствия CD,
это оттого что DTR опускался. Теперь же эта проблема снята и всё
должно работать.
Eugene
--
Что может быть страшнее, чем понимание абсурдности жизни? (Alek Kovrik)
Понимание неизбежности смерти. Особенно - скорой смерти. (Б. Стругацкий)
31 Mar 2009 21:30, Eugene Grosbein wrote to Victor Kakhnych:
EG> Да, а ещё в истории нашей переписки указана причина отсуствия CD,
EG> это оттого что DTR опускался. Теперь же эта проблема снята и всё
EG> должно работать.
Специально попробовал еще раз - на CD не ругается, в терминалке по-прежднему
пусто. Правда я еще и раскоментировал установки параметров порта.
Завтра еще потестирую.
31 Mar 09 15:13, you wrote to Andrey Ostanovsky:
EG> Hеа. Hадо ещё с автором mpd обсуждать вопрос взаимных блокировок порта
EG> между mgetty/mpd.
IMHO, самое прямое -- научить mpd работать с stdin/out, а не открывать порт
самостоятельно. Как это умеет делать ppp(8). Это самое прямое. ppp(8) у меня
отлично работает с mgetty -- mgetty не держит порт залоченным когда нет связи
(и по этому не мешает dialout'у) и ppp на вход работает с stdin/out и не лезет
в блокировку и открытие порта сам на dialin. Всё замечательно, все довольны.
// Lev
VK>> Сделал, результат тот-же. Видимо и mgetty и mpd хотят паралельно
VK>> работать с физическим портом, что невозможно. Буду изучать mgetty
VK>> и работу с портом у mpd, может получится подружить. Либо такой-же
VK>> изврат как и с фидошкой - stty raw -iexten
VK>> /usr/local/bin/socket ip port и ловить уже на другой машине
VK>> stream.
EG> Плюнь на mpd и возьми ppp - он умеет работать со stdin.
ты непоследователен: теперь надо отказаться от расхваленного тобой портового
mpd и взять опять глючный вариант?
pm
EG>>>> Я тут подумал, что конструкция exec mpd -o <<EOF наверняка
EG>>>> закрывает уже открытый порт-stdin, а если mgetty к этому
EG>>>> моменту успел со своей стороны порт закрыть (что логично), то и
EG>>>> будет сброс DTR. Попробуй запускать mpd в subshell: #!/bin/sh (
EG>>>> mpd -o <<EOF EOF )
AO>> Осталось все это причесать и опубликовать целиком рабочие скрипты
AO>> для тех, кто пойдет тем же путем.
EG> Hеа. Hадо ещё с автором mpd обсуждать вопрос взаимных блокировок порта
EG> между mgetty/mpd.
я это интерпретирую так, что предложенный тобой вариант замены pppd также
неработоспособен
pm
31 Mar 09 11:01, you wrote to Eugene Grosbein:
VD> А старый добрый механизм cua/tty в шестёрке уже не работает?
Скончался в страшных мучениях ровно год назад.
Вишен и прочих кактусов.
EG>> Плюнь на mpd и возьми ppp - он умеет работать со stdin.
PM> ты непоследователен: теперь надо отказаться от расхваленного тобой
PM> портового
PM> mpd и взять опять глючный вариант?
s/надо/можно/
Tools, not policy.
Eugene
--
Древние врачи умели лечить всё. Они знали даже секрет бессмертия,
но унесли его в могилу, не оставив потомкам.
VD>> А старый добрый механизм cua/tty в шестёрке уже не работает?
DC> Скончался в страшных мучениях ровно год назад.
В шестерке? Ты ничего не перепутал?
Eugene
--
Все-таки, наша жизнь воистину странная вещь. Подлость и коварство соседствуют
с честностью и благородством, а порой и живут вместе.
EG>> Hеа. Hадо ещё с автором mpd обсуждать вопрос взаимных блокировок порта
EG>> между mgetty/mpd.
PM> я это интерпретирую так, что предложенный тобой вариант замены pppd также
PM> неработоспособен
Да ради бога - кто не хочет, тот ищет причину.
Eugene
--
РЖД: лечение терминальной стадии рака по методу А. Карениной.
01 Apr 09 02:58, you wrote to me:
VD>>> А старый добрый механизм cua/tty в шестёрке уже не работает?
DC>> Скончался в страшных мучениях ровно год назад.
EG> В шестерке? Ты ничего не перепутал?
subj "getty в нирване" - 31 марта прошлого года. Как с залочкой чудеса
начались, так чем дальше в лес, тем толще партизаны. И с каждым обновлением -
только хуже. В итоге плюнул, снес все к едрене фене и водрузил связку mgetty +
ppp -direct поверх ppp -auto: все - на cuau.
pid'ы всего, что вызвано из-под mgetty, сравниваются по крону, и если не
изменились за n часов - тупо киллятся.
Вот так и живу.
Вишен и прочих кактусов.
VD>>>> А старый добрый механизм cua/tty в шестёрке уже не работает?
DC>>> Скончался в страшных мучениях ровно год назад.
EG>> В шестерке? Ты ничего не перепутал?
DC> subj "getty в нирване" - 31 марта прошлого года.
Думаешь, помню что было год назад в чужих траблах?
И с тех пор точно не починили, а PR-то писал, в листах спрашивал?
Eugene
--
У норных и малоподвижных животных (слонов, носорогов, тигров, черепах)
сортир в конце туннеля.