Сразу оговорюсь - то, что здесь рассказано, взято с другого сайта,
вот оригинальная ссылка: http://kotinetti.suomi.net/mcfrisk/linux_gprs.html
Там рассказано про все, но на английском :).
Здесь же, я расскажу как сделать подключение с использованием мобилки
(в моем случае S45 перешитый до S45i),
подключенной к компу через serial cable,
и программ pppd и chat.
Подключаемся к Билайн.
За неимением Irda, Bluetooth и USB-кабеля попробовать эти фишки не могу.
Итак, необходимо иметь Linux с установленными pppd и chat.
Как советуют, для ядра 2.4.x надо добавить следующую строку в файл /etc/modules.conf
options ppp_async flag_time=0
Теперь настраиваем pppd вкупе с chat.
1. Файл конфигурации pppd.
Создаем конфиг-файл /etc/ppp/peers/gprs
# С этой опцией pppd не будет отсоединяться от терминала
# если закоментировать, то pppd уйдет в background
nodetach
# Отладка pppd
debug
# Показывать пароль в отладочном выводе
show-password
# Скрипт для соединения. В нашем случае - с использованием chat
connect /etc/ppp/peers/gprs-connect-chat
# Скрипт для отсоединения
disconnect /etc/ppp/peers/gprs-disconnect-chat
# Устройство, к которому подключен шнурок к мобиле
/dev/ttyS0
# Скорость com-порта
57600
# Управление потоком - аппаратное
crtscts # serial cable, Bluetooth and USB
#nocrtscts # IrDA
# Игнорировать сигнал CD с мобилы
local
# не диктовать удаленной стороне свои ИП
noipdefault
# Принимать ИП адрес, назначаемый сервером
ipcp-accept-local
# Добавлять маршрут по-умолчанию в таблицу роутинга
defaultroute
# Использовать DNS сервера, назначаемые сервером
# (следует заметить, что само прописывание адресов в файл /etc/resolv.conf
# производится скриптом ip-up. Я использовал ручное прописывание
# Т.е. прописал в файл /etc/resolv.conf строки:
# nameserver 217.118.66.243
# nameserver 217.118.66.244
#
usepeerdns
# Отключение всякой компресии
novj
nobsdcomp
novjccomp
nopcomp
noaccomp
# Отключение необходимости авторизации
noauth
# Имя пользователя и Пароль
# Если сервер потребует авторизацию, то использовать указанное имя
# Имя и пароль прописываются в файле /etc/ppp/chap-secrets в виде
# "beeline" * "beeline" *
# есть так-же и PAP авторизация. Но судя по всему, используется именно CHAP
user "beeline"
2. Теперь создаем файл сценария для подключения /etc/ppp/peers/gprs-connect-chat
#!/bin/sh
#
exec chat \
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 ATH \
OK ATE1 \
OK 'AT+CGDCONT=1,"IP","internet.beeline.ru"' \
OK ATD*99***# \
TIMEOUT 22 \
SAY "\nwaiting for connect...\n" \
CONNECT "" \
SAY "\nConnected." \
SAY "\nIf the following ppp negotiations fail,\n" \
SAY "try restarting the phone.\n"
3. Создаем файл сценария для отключения /etc/ppp/peers/gprs-disconnect-chat
#!/bin/sh
exec /usr/sbin/chat -V -s -S \
ABORT "BUSY" \
ABORT "ERROR" \
ABORT "NO DIALTONE" \
SAY "\nSending break to the modem\n" \
"" "\K" \
"" "+++ATH" \
SAY "\nPDP context detached\n"
4. Раздаем необходимые права этим файлам:
chown root:root /etc/ppp/peers/gprs*
chmod u+rwx,g=rx,o=rx /etc/ppp/peers/gprs-connect-chat
chmod u+rwx,g=rx,o=rx /etc/ppp/peers/gprs-disconnect-chat
5. Использование!
Чтобы установить соединение, надо в окне терминала дать команду:
pppd call gprs
и в этом же окне пойдет вывод отладочной информации.
Должно получиться что-то вроде вот этого:
$ pppd call gprs
Press CTRL-C to close the connection at any stage!
defining PDP context...
AT
OK
ATH
OK
ATE1
OK
AT+CGDCONT=1,"IP","internet.beeline.ru"
OK
waiting for connect...
ATD*99***#
CONNECT
Connected.
If the following ppp negotiations fail,
try restarting the phone.
Serial connection established.
using channel 3
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x416ea141>]
rcvd [LCP ConfNak id=0x1 <asyncmap 0xa0000>]
sent [LCP ConfReq id=0x2 <asyncmap 0xa0000> <magic 0x416ea141>]
rcvd [LCP ConfAck id=0x2 <asyncmap 0xa0000> <magic 0x416ea141>]
rcvd [LCP ConfReq id=0x3 <mru 2000> <asyncmap 0xa0000> <pcomp> <accomp> <magic 0xd8fec14c> <auth chap MD5>]
sent [LCP ConfRej id=0x3 <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x5 <mru 2000> <asyncmap 0xa0000> <magic 0xd8fec14c> <auth chap MD5>]
sent [LCP ConfAck id=0x5 <mru 2000> <asyncmap 0xa0000> <magic 0xd8fec14c> <auth chap MD5>]
sent [LCP EchoReq id=0x0 magic=0x416ea141]
rcvd [CHAP Challenge id=0x1 <e0e95f3b7300daf955e6a486869bbce3061e240e>, name = ""]
sent [CHAP Response id=0x1 <f99115615e9d12294a20ff28b6736146>, name = "beeline"]
rcvd [LCP EchoRep id=0x0 magic=0xd8fec14c]
rcvd [CHAP Success id=0x1 ""]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>]
rcvd [LCP ProtRej id=0x6 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 192.168.254.254>]
sent [IPCP ConfAck id=0x1 <addr 192.168.254.254>]
rcvd [IPCP ConfNak id=0x1 <addr 172.19.53.30> <ms-dns1 217.118.66.243> <ms-dns3 217.118.66.244>]
sent [IPCP ConfReq id=0x2 <addr 172.19.53.30> <ms-dns1 217.118.66.243> <ms-dns3 217.118.66.244>]
rcvd [IPCP ConfAck id=0x2 <addr 172.19.53.30> <ms-dns1 217.118.66.243> <ms-dns3 217.118.66.244>]
Cannot determine ethernet address for proxy ARP
local IP address 172.19.53.30
remote IP address 192.168.254.254
primary DNS address 217.118.66.243
secondary DNS address 217.118.66.244
Script /etc/ppp/ip-up started (pid 346)
Script /etc/ppp/ip-up finished (pid 346), status = 0x0
6. Отключение.
Чтобы отключиться - надо в этом-же окне терминала нажать комбинацию Ctrl-C
Либо дать команду killall pppd (ВНИМАНИЕ! это убъет все запущенные демоны pppd)
Это все. Юзайте на здоровье.
PS. Если вы привыкли подключаться с помощью, например, kppp,
то делайте соответствующие настройки в нем.
Если у вас будет положительный опыт, присылайте информацию, разместим.
LOE