Перейти к содержанию
    

pppd в uClinux

Здравствуйте. Пытаюсь запустить 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 тоже ничем не помогла. Подскажите плз где я ошибся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если chat'у дать -V (большое) то можно увидеть в syslog/stdout где вываливается скрипт

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

чат отрабатывает нормально. Но до него тут даже дело не доходит. pppd вываливается, не успевая вызвать chat

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. у pppd есть опция debug

2. ман читали ? раздел EXIT STATUS

 

Чтение документации есть первое и необходимое действие, берем жбанчик чаю/пива/портвейна с абсентом - и от корки до корки, желательно с исходниками - вопросы отпадают сами собой, да и проф-уровень незаметно повышается ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, про функцию 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 имеет место быть, но открыть его все равно не получается. Где я что забыл-сделал не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

короче всем спасибо за участие ))

проблема решилась.

файл должен называться @ppp,c,108,0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

короче всем спасибо за участие ))

проблема решилась.

файл должен называться @ppp,c,108,0

 

вопрос, во время сборки(компиляции) этот файл не создется ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток!

Пытаюсь запустить 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:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...