Модемное подключение.
В предыдущих статьях мы создали простейший маршрутизатор на основе устройства под управлением 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
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."Обсуждение темы ещё не открыто. Вы можете быть первым.
Оставить комментарий