реклама на сайте
подробности

 
 
> pppd в uClinux, не поднимается ppp
Carolinus
сообщение Jun 9 2008, 13:00
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 4-05-08
Пользователь №: 37 256



Здравствуйте. Пытаюсь запустить gprs-модем под uClinux. Использовал http://docs.blackfin.uclinux.org/doku.php?...clinux-dist:ppp для компиляции ядра с поддержкой ppp. Работаем с модемом с помощью chat.
Скрипты для ppp:
Цитата
lcp-echo-failure 0
lcp-echo-interval 0
nodetach
debug
connect /etc/ppp/peers/mgcc
/dev/ttyS1
19200
xonxoff
local
:10.0.0.1
noipdefault
ipcp-accept-local
defaultroute
usepeerdns
novj
novjccomp
nopcomp
noaccomp
noccp
noauth
user megafon

для chat:
Цитата
#!/bin/sh
/bin/chat -v \
TIMEOUT 5 \
ECHO ON \
ABORT '\nBUSY\r' \
ABORT '\nERROR\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nNO CARRIER\r' \
ABORT '\nNO DIALTONE\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
TIMEOUT 12 \
SAY "Press CTRL-C to close the connection at any stage!" \
SAY "\ndefining PDP context...\n" \
OK ATZ \
OK AT+CGDCONT=1,"IP","internet" \
OK ATD*99***1# \
TIMEOUT 22 \
SAY "\nwaiting for connect...\n" \
CONNECT "" \
SAY "\nConnected." \
SAY "\nIf the following ppp negotiations fail,\n" \
SAY "try restarting the phone.\n"


Написаны после курения мануалки http://www.vpx.nu/dokuwiki/doku.php?id=gprs_ppp#chat_scripts
На большом компе c помощью этих скриптов соединение поднимается на ура. На uClinux пытаемся работать с модемом через tip - опрашивается, отвечает. все нормально. Пытаюсь просто запустить второй скрипт - тоже все работает, естественно, команды выводятся в консоль. Я руками эмулирую модем. Но если пытаюсь дать команду pppd call megafon - просто без всяких диагностических сообщений вываливаемся в консоль. ifconfig не показывает поднятый интерфейс ppp0. Модем лампочкой тоже не моргает. Пробовал подключать к ком-порту второй компьютер с терминалом - в ком-порт вообще ничего не пишется. Эта ветка http://electronix.ru/forum/index.php?showtopic=10552 тоже ничем не помогла. Подскажите плз где я ошибся.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
Harbour
сообщение Jun 10 2008, 04:42
Сообщение #2


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



если chat'у дать -V (большое) то можно увидеть в syslog/stdout где вываливается скрипт
Go to the top of the page
 
+Quote Post
Carolinus
сообщение Jun 10 2008, 05:53
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 4-05-08
Пользователь №: 37 256



чат отрабатывает нормально. Но до него тут даже дело не доходит. pppd вываливается, не успевая вызвать chat
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jun 11 2008, 04:55
Сообщение #4


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



1. у pppd есть опция debug
2. ман читали ? раздел EXIT STATUS

Чтение документации есть первое и необходимое действие, берем жбанчик чаю/пива/портвейна с абсентом - и от корки до корки, желательно с исходниками - вопросы отпадают сами собой, да и проф-уровень незаметно повышается wink.gif
Go to the top of the page
 
+Quote Post
Carolinus
сообщение Jun 11 2008, 10:46
Сообщение #5





Группа: Участник
Сообщений: 14
Регистрация: 4-05-08
Пользователь №: 37 256



Спасибо, про функцию debug я знаю. а также про logfile и прочие отладочные опции. И мануалок скурил предостаточно. В той сборке uClinux, что у меня есть, не запущен syslogd и нахаляву его запустить не получилось. Так что все дебажные сообщения идут в /dev/null (( Ковыряние в исходниках показало, что затык происходит при попытке открыть устройство /dev/ppp.
if (new_style_driver) {
ppp_dev_fd = open("/dev/ppp", O_RDWR);
...
}
При конфигурировании ядра я включил:
[*] Networking support
<*> PPP (point-to-point protocol) support
[*] PPP filtering
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
и добавил в romfs/dev/ пустой файл @ppp,c,180,0
при загрузке появляется строчка PPP generic driver version 2.4.2
Устройство /dev/ppp имеет место быть, но открыть его все равно не получается. Где я что забыл-сделал не так?
Go to the top of the page
 
+Quote Post
Carolinus
сообщение Jun 11 2008, 12:14
Сообщение #6





Группа: Участник
Сообщений: 14
Регистрация: 4-05-08
Пользователь №: 37 256



короче всем спасибо за участие ))
проблема решилась.
файл должен называться @ppp,c,108,0
Go to the top of the page
 
+Quote Post
cpl
сообщение Jun 21 2008, 20:10
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 6-12-04
Пользователь №: 1 340



Цитата(Carolinus @ Jun 11 2008, 16:14) *
короче всем спасибо за участие ))
проблема решилась.
файл должен называться @ppp,c,108,0


вопрос, во время сборки(компиляции) этот файл не создется ?
Go to the top of the page
 
+Quote Post
Dr.Alexey
сообщение Nov 27 2008, 10:22
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 30-09-08
Из: Санкт-Петербург
Пользователь №: 40 583



Доброго времени суток!
Пытаюсь запустить pppd в ucLinux (ядро 2.6.21, патч от EmbeddedArtists для проца LPC2468). В ядре включена поддержка ppp и chat, в /dev создаю устройтство ppp,c,108,0. При запуске pppd выдается сообщение: munmap of non-mmaped memory by process 138 (pppd): a0ba8600 и возвращаемся в командную строку. Скрипты для подключения и вывод терминала привожу ниже.

скрипт gprs:
lcp-echo-failure 0
lcp-echo-interval 0
тodetach
debug
connect /etc/ppp/peers/chat_connect
/dev/ttyS1
19200
crtscts
local
:10.0.0.1
noipdefault
ipcp-accept-local
ipcp-accept-remote
defaultroute
usepeerdns
nopcomp
noaccomp
novj
novjccomp
nopcomp
noaccomp
noauth
user mts
mtu 576

скрипт chat_connect:
#!/bin/sh
/bin/chat -v \
TIMEOUT 5 \
ECHO ON \
ABORT '\nBUSY\r' \
ABORT '\nERROR\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nNO CARRIER\r' \
ABORT '\nNO DIALTONE\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
TIMEOUT 12 \
SAY "Press CTRL-C to close the connection at any stage!" \
SAY "\ndefining PDP context...\n" \
OK ATZ \
OK AT+CGDCONT=1,"IP","internet.mts.ru" \
OK ATD*99***1# \
TIMEOUT 22 \
SAY "\nwaiting for connect...\n" \
CONNECT "" \
SAY "\nConnected." \
SAY "\nIf the following ppp negotiations fail,\n" \
SAY "try restarting the phone.\n"

вывод терминала:
# pppd call gprs
munmap of non-mmaped memory by process 138 (pppd): a0ba8600
#

Есть идеи, в чем проблема? help.gif
Go to the top of the page
 
+Quote Post
Dr.Alexey
сообщение Dec 10 2008, 07:17
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 30-09-08
Из: Санкт-Петербург
Пользователь №: 40 583



Спасибо Carolinus, проблема решилась. Привожу порядок действий, может кому пригодится.

1. Включаем поддержку ppp в ядре:
Networking support
Networking options->TCP/IP Networking, IP Tunneling
Network Device support
PPP
PPP filtering
PPP support for async serial ports
Устанавливаем приложения pppd (MPPE enabled) и chat

2. Должно присутствовать устройство /dev/ppp. У меня например это делается добавлением строки ppp,c,108,0 в секцию DEVICES по адресу <путь к ядру>/vendors/EmbeddedArtists/LPC2468OEM_Board/Makefile

3. В /etc/ppp/peers создаем файлы gprs и chat_connect, в /etc/ppp файлы pap-secrets и chap-secrets:
файл gprs содержимое (для модема на ttyS1 и скорости 19200, опсос mts):

# Most GPRS phones don't reply LCP echo's
lcp-echo-failure 0
lcp-echo-interval 0
# Debug info from pppd:
debug
# Serial device to which the GPRS modem is connected:
/dev/ttyS1
# Serial port line speed
19200
# Hardware flow control
crtscts
# Use modem signal lines
modem
# Connect script to initialize the GPRS modem and start the connection
connect '/bin/chat -v -e -V -f /etc/ppp/peers/chat_connect'
# pppd must not propose any IP address to the peer!
noipdefault
# Accept peers idea of our local address
ipcp-accept-local
# Accept peers idea of its (remote) address
ipcp-accept-remote
# Add the ppp interface as default route to the IP routing table
defaultroute
# DNS servers from the modem
usepeerdns
# The phone is not required to authenticate
noauth
# Username
user "mts"

файл chat_connect содержимое (одной строкой!!!):
SAY "\nstaring chat... \n" '' AT TIMEOUT 12 ABORT 'BUSY' ABORT 'NO CARRIER' ABORT 'VOICE' ABORT 'NO DIALTONE' ABORT 'NO ANSWER' OK ATH OK ATE1 OK 'AT+CGDCONT=1,"IP" ,"internet.mts.ru"' OK ATD*99***1# TIMEOUT 22 SAY "\nwaiting for connect... \n"
CONNECT "" SAY "\nConnected."

файл pap-secrets (идентичен chap-secrets)
tele2 * tele2 *
megafon * megafon *
mts * mts *
beeline * beeline *

4. Запуск соединения: pppd call gprs. Просмотр состояния соединения - ifconfig (должен появится интерфейс ppp0).

P.S. На моей плате установлен проц LPC2468 без MMU-модуля и в используемом uClinux не поддерживается fork, как следствие pppd при запуске остается подцепленным к консоли, несмотря на параметр updetach. Лечится запуском pppd в фоновом режиме: pppd call gprs&

P.P.S. Еще раз спасибо за помощь Carolinus
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 14:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01598 секунд с 7
ELECTRONIX ©2004-2016