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

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


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

  -ядро 2.4.х;
  -поддержка usb, irda в ядре (модули usb-uhci.o, irda-usb.o), ircomm, irtty;
  -пакет 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
defailtroute
  - Затем пишем файл /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
(Эти файлы специфичны для GSM-оператора MTC, их содержание для других сотовых операторов очевидно. Само собой, должна быть подключена услуга 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