<<<

Подключение GPRS-internet к Linux.

На примере USB-IrDA dongle и Nokia 6310i.


В данной статье рассматривается способ подключения компьютера с Linux к интернету посредством сотового телефона c GPRS и внешнего usb IR-порта. Для этого потребуется:

-ядро 2.4.х;
-поддержка usb, irda в ядре (модули usb-uhci.o, irda-usb.o, протокол ircomm);
-пакет IrDA Utils;
-наличие сотового телефона с IR-портом и GPRS (использовался Nokia 6310i);
-любой внешний usb IR-порт.

Рекомендуется к прочтению документация. Или хотя бы просто IR-HOWTO из комплекта документации по Linux.

Порядок действий следующий.
- Распаковываем пакет irda-utils в какой-нибудь каталог, выполняем в нем make. Компиллируются утилиты, из которых нам понадобится только irattach.
- Проверяем, есть ли у нас irda-устройства командой
# ls -l /dev | grep ir
Должны увидеть что-то похожее:

crw-r--r--   1   root  root  161,   0 Jun 23 13:23 ircomm0 
crw-r--r--   1   root  root  161,   1 May 10 11:46 ircomm1 
Ecли этих устройств нет, создаем их
# mknod /dev/ircomm0 c 161 0; mknod /dev/ircomm1 c 161 1

- Добавляем в файл /etc/modules.conf строку:
alias char-major-161 ircomm-tty
- Подключаем IR-порт, грузим модули:
# insmod usb-uhci.o
# insmod irda-usb.o

Проверяем, на всякий случай, что модули загружены:
# lsmod
Должны увидеть что-то вроде:
Module    Size     Used by 
usb-uhci  20376    0   (unused) 
irda-usb  13584    1 

Пишем конфигурационные файлы:

Для оператора МТС

Файл
/etc/ppp/options
 
/dev/ircomm0 connect '/usr/sbin/chat -v -f /etc/ppp/GPRS' 
local 
ipcp-accept-local 
ipcp-accept-remote 
-pap 
noipdefault 
defaultroute 

/etc/ppp/GPRS
 
ABORT "BUSY"  
ABORT "NO CARRIER" 
"" "AT" 
"OK" "AT&FV1E0&D2&S0&C1S0=0" 
"OK" "ATS7=60+CBST=,,1;+DS=3,0;&K3" 
"OK" "AT+CGDCONT=1,\042IP\042,\042internet.mts.ru\042,\0420.0.0.0\042,1,1" 
"OK" "ATDT*99#" 
TIMEOUT 30 
CONNECT 
/etc/resolv.conf
 nameserver 213.87.0.1 nameserver 213.87.1.1 

Для Билайн

Файл
/etc/ppp/options
 
/dev/ircomm0 connect '/usr/sbin/chat -v -f /etc/ppp/GPRS'
local 
ipcp-accept-local 
ipcp-accept-remote 
+pap 
noauth 
name 
beeline 
noipdefault 
defaultroute 

/etc/ppp/pap-secrets
 beeline	*	beeline 
/etc/ppp/GPRS
 
ABORT "BUSY"  
ABORT "NO CARRIER" 
"" "AT" 
"OK" "AT&FV1E0&D2&S0&C1S0=0" 
"OK" "ATS7=60+CBST=,,1;+DS=3,0;&K3" 
"OK" "AT+CGDCONT=1,\042IP\042,\042internet.beeline.ru\042,\0420.0.0.0\042,1,1" 
"OK" "ATDT*99***1#" 
TIMEOUT 30 
CONNECT 

/etc/resolv.conf
 nameserver 217.118.66.243 nameserver 217.118.66.244 

(Эти файлы подходят для GSM-операторов московского региона, но, возможно, они подойдут для этих операторов и в других городах. Само собой, должна быть подключена услуга GPRS-internet.)

- Переходим в каталог, где лежит утилита irattach и выполняем там команду
# ./irattach irda0 -s 1
У нас должен появиться новый сетевой интерфейс. Проверяем:
# ifconfig | grep ir
Должны увидеть примерно следующее:
irda0   Link encap:IrLAP   HWaddr 7f:84:94:c1 
- Затем включаем ИК-порт на телефоне и кладем его рядом с портом. Открываем файл /proc/net/irda/discovery. В нём должна быть примерно такая строка (зависит от модели вашего телефона)
IrLMP: Discovery log:  nickname: Nokia 6310i, hint: 0xb125, saddr: 0x7f8494c1, daddr: 0x00006ba5 
Если это не так, то у нас нет связи с телефоном, надо искать ошибку. Если телефон обнаружен, можно попробовать установить соединение. Запускаем:
# pppd
На дисплее телефона должен появиться значoк "G", говорящий о том, что соединение установлено. Проверяем, на всякий случай:
# ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol
          inet addr:213.87.10.70  P-t-P:10.6.6.6  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:40 (40.0 b)  TX bytes:77 (77.0 b) 
Если образовался ppp0 интерфейс, то всё в порядке. Для завершения соединения выполняем
# killall pppd.

@tty