Модемное подключение.

В предыдущих статьях мы создали простейший маршрутизатор на основе устройства под управлением Tiny Core Linux и "научили" его раздавать интернет по Wi-Fi. Теперь настало время поговорить о том, как подключаться к интернету посредством TCL и о модемном DialUp в частности. Этот способ подключения применим как с помощью обычного мобильного телефона, так и 3G-USB модема.

Для начала установим необходимое расширение:

tce-load -wi usb-modeswitch.tcz

Мобильные телефоны подключаемые посредством USB кабеля необходимо переводить в режим модема (например в аппаратах Nokia он называется PC Suite). Чтобы убедиться, что наш модем успешно распознался в системе, выведем список подключеных USB-устройств:

lsusb

Увидели в списке свой модем (или телефон) - всё в порядке. Запущенный сервис usb-serial сам подхватит и настроит подключение по USB, эмулируя соединение по виртуальному COM пору. Если подключенный мобильный телефон единственный из модемов, в списке устройств /dev он скорее всего распознается как ttyACM0 либо ttyUSB0.

Само подключение будем производить через pppd - демон предназначенный для создания соединений по протоколу Point-to-Point. Для создания модемного соединения необходимо создать два файла. Один - файл конфигурации, второй чат-файл. Ради удобства все файлы конфигурации я разместил в специально созданной папке /opt/conf/ppp/. Посредством терминальных команд перечисленых в чат-файле pppd будет "общаться" с нашим модемом.

Подключение через мобильный телефон. Настройка предоставленная ниже одинаково успешно создавала EDGE/UMTS подключение к интернету на моделях телефонов Nokia 3230, 5800 и N78. К сожалению стандартные конфигурации для поключения описаные практически во всех руководствах к настройке pppd которые я нашел интернете не работали. Для поиска проблемы пришлось установить терминальный клиент:

tce-load -wi minicom.tcz

Чтобы понять причину возникновения ошибки подключения, пришлось вручную, команда за командой из чат-скрипта опросить модем расположеный на ttyACM0. В моём случае оказалось что команда задания режима 2G/3G телефонам была неизвестна, а строка задания APN должна иметь ещё два дополнительных параметра. В целом рабочий чат скрипт для мобильного телефона Nokia переключеного в режим PC-Suite и подключеного по USB выглядит так:

/opt/conf/ppp/mobile.chat

  ABORT 'BUSY'
  ABORT 'NO CARRIER'
  ABORT 'VOICE'
  ABORT 'NO DIALTONE'
  ABORT 'NO DIAL TONE'
  ABORT 'NO ANSWER'
  ABORT 'DELAYED'
  REPORT CONNECT
  TIMEOUT 6
  '' 'ATQ0'
  'OK' 'ATZ'
  TIMEOUT 3
  'OK' 'ATI'
  'OK' 'ATZ'
  'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
  'OK' 'AT+CGDCONT=1,"IP","[ваш APN]",,0,0'
  'OK' 'ATDT*99#'
  TIMEOUT 30
  CONNECT

Если у вас аппарат другой модели, или вообще другого производителя и во время подключения выдает сообщение о ошибке скрипта - провертье команды чата вручную связавшись через терминал minicom. Помимо скрипта для создания соединения, необходим чат-скрипт для корректного закрытия соединения. Если этого не сделать, TCL разорвет соединение у себя, но в самом телефоне модемное подключение останется активным.

/opt/conf/ppp/disconnect.chat

  ABORT BUSY
  ABORT ERROR
  ABORT 'NO DIALTONE'
  TIMEOUT 30
  '' '+++\c'
  SAY " + sending break"
  '' 'ATH'
  SAY "\n + dropping data connection"

Теперь создадим конфигурационный файл, с которым мы будем запускать модемное телефонное соединение:

/opt/conf/ppp/mobile

  /dev/ttyACM0
  921600
  asyncmap 20A0000
  escape FF
  noipdefault
  ipcp-accept-local
  ipcp-accept-remote
  noauth
  nodetach
  updetach
  mtu 1400
  novj
  novjccomp
  usepeerdns
  crtscts
  lock
  local
  modem
  nodeflate
  nopcomp
  noaccomp
  connect "chat -f /opt/conf/ppp/mobile.chat"
  disconnect "chat -f /opt/conf/ppp/disconnect.chat"

Это стандартный конфиг для DualUP ppp соединения через мобильный телефон с которым TCL будет гарантировано работать.

Подключение через USB-модем. С ним дело обстоит несколько иначе. Будучи составным устройством USB-"свисток" не распознается в системе как модем. Перевести в этот режим нажатием заветной кнопочки (как выбор PC Suite в телефонах Nokia) так просто нельзя. К счастью и тут разработчики Linux уже позаботились об обладателях USB-модемов, создав утилиту usb-modeswitch. При подсоединении USB-"свистка" usb-modeswitch автоматически переводит подключенное устройство в режим модема и в директории /dev появляется ttyUSB[n]. Где [n] - любой числовой индекс соответствующий номеру модема в системе. В моё распоряжение попали два CDMA модема от провайдера "Интертелеком". Весьма распространенный Novatel USB720 и IT&C M-260. Оба устройства распознались ядром Tiny Core Linux и usb-modeswitch успешно перевел их в режим модема. Осталось только создать чат-скрипт:

/opt/conf/ppp/cdma.chat

  ABORT 'BUSY'
  ABORT 'NO ANSWER'
  ABORT 'NO CARRIER'
  ABORT 'NO DIALTONE'
  ABORT '\nRINGING\r\n\r\nRINGING\r'
  SAY "CDMA modem init: press -C to disconnect"
  TIMEOUT 5
  '' 'AT'
  OK 'ATZ'
  OK 'at+crm=1;&C0'
  OK 'ATS0=0'
  OK 'ATD#777'
  CONNECT ''
  SAY "\n + connected"

и файл конфигурации, который будет отличаться от конфига подключения через мобильный телефон всего тремя строчками:

/opt/conf/ppp/cdma

  user IT
  /dev/ttyUSB0
  921600
  asyncmap 20A0000
  escape FF
  noipdefault
  ipcp-accept-local
  ipcp-accept-remote
  noauth
  nodetach
  updetach
  mtu 1400
  novj
  novjccomp
  usepeerdns
  crtscts
  lock
  local
  modem
  nodeflate
  nopcomp
  noaccomp
  connect "chat -f /opt/conf/ppp/cdma.chat"
  disconnect "chat -f /opt/conf/ppp/disconnect.chat"

Поскольку теперь для подключения необходимы имя пользователя и пароль (у "Интертелекома" это IT/IT) мы добавили логин строчкой "user IT" в конфигурационном файле, а саму связку логин/пароль необходимо прописать в файле /etc/ppp/pap-secrets:

/etc/ppp/pap-secrets

...
IT * IT *
...

Не забудтье файл /etc/ppp/pap-secrets внести в бэкап-лист. Иначе после первой же перезагрузки все изменения обнулятся.

Теперь останется запустить pppd с нашими параметрами (mobile - для телефона, cdma - для USB-модема) и дождаться завершения процесса подключения:

sudo pppd file /opt/conf/ppp/[mobile или cdma]

Если всё сделано верно, в системе появится сетевой интерфейс ppp0.

ранее: "Ретранслятор. Радиомост"далее: "PPPD. PPPoE."

Обсуждение темы ещё не открыто. Вы можете быть первым.


Оставить комментарий

Имя:

Сообщение: