Настройка интернет-соединения через GPRS

Настройка GPRS-соединения в Red Hat Linux на примере Beeline и Motorola

[Davidenko Vitaly (dvtl@pisem.net)]

Настройка интернет-соединения через GPRS

Настроить GPRS мне помогли скрипты, (http://www.cl.cam.ac.uk/Research/SRG/netos/coms/unix.html) выложенные на сайте компьютерной (http://www.cl.cam.ac.uk/) лаборатории Кембриджского университета.

Исходные данные:

  • Оператор: BeeLine GSM, Москва
  • Система: Linux RedHat 7.2, Linux RedHat 8.0 ppp v2.4.1
  • Телефоны: Motorola Timeport 260, Motorola Timeport 280, Motorola V66i
  • Примечание: Настройки для Timeport 280 и V66i должны работать и с моделями v66, v60, v60i, T280i, T720, T720i, T722i, а также, возможно, и с С33x и C350. Ни одной из этих моделей я ещё не пользовался для выхода в сеть через GPRS. Также я не знаю, будет ли работать T260 через USB-кабель и существует ли такой кабель для этой модели.
  • Кабели: Оригинальный кабель Motorola для COM - порта для T260 Оригинальный кабель Motorola для COM - порта для T280 USB - кабель MobileAction MA-8820C

Настройка GPRS соединения

Внимание!

Для версий ядра 2.4.x необходимо обновить (http://dvtl.pisem.net/usb_cable.html) модуль ядра acm.o, если для подключения телефона используется USB - кабель.

  1. Загрузить файл (http://www.cl.cam.ac.uk/Research/SRG/netos/coms/gprs-ppp-scripts.tgz) со скриптами
  2. Заглянуть в README.gprs :)
  3. Распаковать архив в /etc/ppp
           # cd /etc/; tar xzf /path/to/gprs-ppp-scripts.tgz
         
  4. Отредактировать /etc/ppp/pap-secrets
           # Secrets for authentication using PAP
           # client        server  secret                  IP addresses
           beeline *       beeline
          
  5. Изменить в /etc/ppp/chatscripts/gprs-moto-connect-chat APN
           mob.cl.cam.ac.uk на  internet.beeline.ru, осторожно с кавычками!
          
  6. Проверить, что в файле /etc/ppp/peers/gprs-moto (или /etc/ppp/peers/gprs-moto-usb) указан именно тот девайс, к которому подключен телефон:
       /dev/ttyS0 - COM1 порт
       /dev/ttyS1 - COM2 порт
       /dev/ttyACM0 - USB порт
       /dev/usb/acm/0 - USB порт при использовании devfs
       
    Примечание: Для соединения через COM-порт я использую файл
       /etc/ppp/peers/gprs-moto, для USB-соединения - /etc/ppp/peers/gprs-moto-usb.
       

    gprs-moto-usb оличается от gprs-moto только именем устройства:

           $ diff /etc/ppp/peers/gprs-moto /etc/ppp/peers/gprs-moto-usb
           8c8,9
           < /dev/ttyS0
           ---
           > /dev/ttyACM0
           > #/dev/usb/acm/0
    
  7. В /etc/ppp/gprs-options изменить "nodefaultroute" на "defaultroute".

  8. Настроить DNS

    Для T280 и v66i, и, вероятно, всех телефонов из новой линейки Добавить в /etc/ppp/gprs-options параметр usepeerdns (на сайте БиЛайн написано, что нужно выбирать опцию "получить DNS автоматически", раньше адреса DNS задавались явно, теперь эти настройки не работают), в результате значения DNS в момент установки соединения будут записываться в файл /etc/ppp/resolv.conf. Соотвественно, в /etc нужно создать символический линк на этот файл:

           # cd /etc
           # mv resolv.conf resolv.conf_
           # ln -s /etc/ppp/resolv.conf resolv.conf
       
    Для T260

    Часто возникает проблема с автоматическим получением DNS, поэтому адреса DNS нужно узнать у своего оператора и явно прописать их в файле /etc/resolv.conf, например, для моего оператора в момент обновления этой страницы содержимое файла было таким:

       $ cat /etc/resolv.conf
       nameserver 217.118.66.243
       nameserver 217.118.66.244
       
  9. Если чего забыл, то вот (http://dvtl.pisem.net/files/gprs-ppp-scripts-beeline.tgz) мой /etc/ppp

  10. Установить соединение:
    • Если используется USB-кабель, загрузить модуль acm
         # /sbin/insmod acm
         Using /lib/modules/2.4.18-14/kernel/drivers/usb/acm.o
         В /var/log/messages должны появиться сообщения:
         May  4 21:28:53 localhost kernel: usb.c: registered new driver acm
         May  4 21:28:53 localhost kernel: acm.c: v0.21:USB Abstract Control
            Model driver for USB modems and ISDN adapters(supports Motorola Phones)
         
    • Подключить телефон

      Если используется USB-кабель, в /var/log/messages должны появиться сообщения:

         May  4 21:33:44 localhost kernel: hub.c: USB new device connect on bus3/1, 
                                           assigned device number 2
         May  4 21:33:44 localhost kernel: ttyACM0: USB ACM device
         May  4 21:33:47 localhost /etc/hotplug/usb.agent: Setup acm for USB product 22b8/1005/1
         
      (Обратите внимание на имя устройства "ttyACM0", оно должно совпадать с именем в п. 6)

    • Запустить pppd Для COM
         # /usr/sbin/pppd call gprs-moto
         GPRS modem init: press <ctrl>-C to disconnect
          + defining PDP context
          + defining QoS requirements
          + attaching to GPRS
          + requesting data connection
         Serial connection established.
         Using interface ppp0
         Connect: ppp0 <--> /dev/ttyS0
         local  IP address 172.19.93.212
         remote IP address 192.168.100.101
         primary   DNS address 217.118.66.243
         secondary DNS address 217.118.66.244
         
      для USB:
         # /usr/sbin/pppd call gprs-moto-usb
         GPRS modem init: press <ctrl>-C to disconnect
          + defining PDP context
          + defining QoS requirements
          + attaching to GPRS
          + requesting data connection
         Serial connection established.
         Using interface ppp0
         Connect: ppp0 <--> /dev/ttyACM0
         local  IP address 172.19.93.212
         remote IP address 192.168.100.101
         primary   DNS address 217.118.66.243
         secondary DNS address 217.118.66.244
         

Last updated on 05-05-2003 by Davidenko Vitaly
Please send any comments to dvtl@pisem.net (mailto:dvtl@pisem.net)
http://dvtl.pisem.net/usb_cable.html

Пересборка модуля acm.o

На этой странице приведена последовательность действий для сборки модуля ядра acm.o. Возможно, она неоптимальна, или, даже неправильна. Но в результате модуль был собран и успешно работает.

  1. Установить пакет с исходниками ядра
           #rpm -ivh kernel-source-2.4.18-14.i386.rpm
    
  2. Перейти в каталог с исходниками (далее все действия в нем)
           #cd /usr/src/linux-2.4.18-14
    
  3. Открыть файл drivers/usb/acm.c и добавить в массив usb_device_id acm_ids элемент USB_DEVICE_INFO(USB_CLASS_COMM, 2, 0)
         #vim drivers/usb/acm.c
    
    До редактирования
       /*
       * USB driver structure.
       */
       static struct usb_device_id acm_ids[] = {
       { USB_DEVICE_INFO(USB_CLASS_COMM, 0, 0) },
       { }
       };
    
    После редактирования:
       /*
       * USB driver structure.
       */
       static struct usb_device_id acm_ids[] = {
       { USB_DEVICE_INFO(USB_CLASS_COMM, 0, 0) },
       { USB_DEVICE_INFO(USB_CLASS_COMM, 2, 0) },
       { }
       };
    
  4. Собрать ядро Note: Не нужно устанавливать полученное ядро - оно собирается только для того, чтобы обновить модуль acm.o. Может быть, пересобрать один единственный модуль можно проще, но я не знаю как :)

  5. Скопировать конфигурацию своего ядра
       #cp configs/kernel-2.4.18-i686.config .config
       

  6. #make clean; make mrproper

  7. Задать значение EXTRAVERSION для версии ядра - оно должно совпадать с соответсвующим значением ядра системы(ядро не предназначено для установки!):
       #uname -r
       2.4.18-14
    
    т.е. EXTRAVERSION для моего ядра - "-14"
       #vim Makefile
    
    До редактирования
       EXTRAVERSION = -14custom
    
    После редактирования:
       EXTRAVERSION = -14
    
    Note: шаг 3.3) можно пропустить, но в этом случае, скорее всего, версия установленного в системе ядра не будет совпадать с версией, прописанной в модуле В этом случае модуль можно будет загрузить только с опцией -f : /sbin/insmod -f acm

  8.    #make oldconfig
       #make dep
       #make bzImage
       #make modules
       
    Note: можно не дожидаться, пока соберутся все модули и остановить процесс сборки модулей как только появится файл drivers/usb/acm.o

  9. Заменить модуль
       #cp /lib/modules/2.4.18-14/kernel/drivers/usb/acm.o
       /lib/modules/2.4.18-14/kernel/drivers/usb/acm.old
       #cp drivers/usb/acm.o /lib/modules/2.4.18-14/kernel/drivers/usb/acm.o
       

  10. Проверить модуль

    вывести системный лог в другом терминале

       #tail -f /var/log/messages
       
    Загрузить драйвер
       #/sbin/modprobe acm
       
    В логе должно появиться сообщение от драйвера:
       Apr 12 19:11:53 localhost kernel: usb.c: registered new driver acm
       Apr 12 19:11:53 localhost kernel: acm.c: v0.21:USB Abstract Control
       Model driver for USB modems and ISDN adapters(supports Motorola Phones)
       
    Note: Строчка "(supports Motorola Phones)" была добавлена на шаге 3 в

    файл drivers/usb/acm.c:

       #define DRIVER_DESC "USB Abstract Control Model driver for USB modems
       and ISDN adapters(supports Motorola Phones)"
       
  11. Если не используется devfs, создать файл устройства:
       #mknod /dev/ttyACM0 c 166 0
       
Thanks:
http://www.tldp.org/HOWTO/Kernel-HOWTO.html
http://www.tldp.org/HOWTO/Kernel-HOWTO-2.html
http://www.eridani.co.uk/docs/linux-timeport/T280.shtml
http://dur.ch/konfiguriert/c333/
http://www.nother.net/120c/

Last updated on 04-05-2003 by Davidenko Vitaly
Please send any comments to dvtl@pisem.net

Статья взята с сайта OpenNet. Оригинал: http://dvtl.pisem.net/gprs_moto.html

[ опубликовано 29/12/2003 ]

Davidenko Vitaly (dvtl@pisem.net) - Настройка интернет-соединения через GPRS   Версия для печати