Множество современных USB-модемов для удобства использования несут на себе драйверы и сопутствующие программы от производителя, а сам модем при подключении определяется как CD-ROM. Проблема заключается в том, что FreeBSD тоже определяет такой модем как CD-ROM, в следствии чего настройка подключения через модем становится невозможной.
Рассмотрим подключение 3G USB-модема на примере Huawei E171 (название указывается на упаковке или на корпусе модема) из комплекта для подключения к Интернет, предоставляемого оператором Билайн.
Сначала необходимо сделать так, чтобы модем определялся только как модем. Нужно подключить модем в ОС Windows и установить все необходимые для его функционирования драйверы, проверить работу модема. Далее для отключения дополнительных функций можно использовать программу PuTTYtel.
Перед запуском PuTTYtel определяем в диспетчере устройств номер COM-порта, который использует модем.
В PuTTYtel выбираем тип подключения Serial, номер порта и скорость передачи.
На всякий случай можно пробежаться по закладке Connection – Serial, чтобы убедиться, что параметры подключения выставлены верно.
Далее идем в Terminal и в группе Local echo выставляем Force On.
Теперь можно нажать кнопку Open, чтобы подключиться к модему и вводить команды. Вводим команду АТ. Жмем Enter. Появляется ответ ОК. Значит связь с модемом установлена. Вводим команду перевода модема в режим только модема AT^U2DIAG=0 (для модемов других производителей эта команда может быть другой, смотрите документацию по командам конкретного модема, например, для ZTE MF192 это AT%USBMODEM=0). Жмем Enter, и в ответ опять видим ОК. Все дополнительные функции модема отключены. Закрываем окно.
Теперь модем можно подключить к ОС FreeBSD и настроить подключение к Интернет. Модем в системе должен определяться как /dev/cuaUX.0, где X - это номер последовательного устройства. Рассмотрим настройку подключения, используя для этого MPD5 (в наших сборках системы дополнительно ничего устанавливать не нужно).
Редактируем конфигурационный файл /usr/local/etc/mpd5/mpd.conf до следующего состояния:
startup:
default:
load inet3g
inet3g:
create bundle static B1
set iface up-script /usr/local/etc/mpd5/mpd.uplink
set iface down-script /usr/local/etc/mpd5/mpd.downlink
set iface addrs 0.0.0.0 !1.2.3.4
set iface route default
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface enable tcpmssfix
set ipcp disable vjcomp
set ipcp enable req-pri-dns req-sec-dns
create link static L1 modem
set modem device /dev/cuaU0.0
# Предварительно убедитесь, что модем действительно определяется как /dev/cuaU0.0.
set modem speed 921600
set modem watch -cd
set modem watch -dsr
set modem var $DialPrefix "DT"
set modem var $Telephone "*99#"
set modem var $InitString "+CGDCONT=1,\"IP\",\"internet.beeline.ru\""
# Для оператора Beeline (альтернатива)
# set modem var $InitString "+CGDCONT=1,\"IP\",\"home.beeline.ru\""
# Для оператора MTS
# set modem var $InitString "+CGDCONT=1,\"IP\",\"internet.mts.ru\""
# Для оператора Megafon
# set modem var $InitString "+CGDCONT=1,\"IP\",\"internet\""
set modem script DialPeer
set modem idle-script Ringback
set link disable chap pap
set link keep-alive 6 60
set link max-redial 0
set link accept chap pap
set auth authname "beeline"
set auth password "beeline"
# Для оператора MTS
# set auth authname "mts"
# set auth password "mts"
# Для оператора Megafon
# set auth authname "gdata"
# set auth password "gdata"
set link action bundle B1
open
После этого необходимо создать файл /usr/local/etc/mpd5/mpd.uplink и сделать его запускаемым:
#!/bin/sh
/bin/cp /etc/resolv.conf /etc/resolv.conf.bak
dns1="`echo $6 | sed 's/dns1/nameserver/g'`"
dns2="`echo $7 | sed 's/dns2/nameserver/g'`"
/bin/echo $dns1 > /etc/resolv.conf
/bin/echo $dns2 >> /etc/resolv.conf
/etc/rc.d/ntpd restart
Затем необходимо создать файл /usr/local/etc/mpd5/mpd.downlink и сделать его запускаемым:
#!/bin/sh
/bin/cp /etc/resolv.conf.bak /etc/resolv.conf
Также необходимо переименовать файл /usr/local/etc/mpd5/mpd.script.sample в /usr/local/etc/mpd5/mpd.script.
Для запуска mpd и установки Интернет-подключения при старте системы в файле /etc/rc.conf должны присутствовать следующие строки:
mpd_enable="YES"
mpd_flags="-b"
При старте системы не должен устанавливаться маршрут по умолчанию. Поэтому в файле /etc/rc.conf не должно быть строки, задающей маршрут по умолчанию, defaultrouter="....". Если такая строка есть, то ее нужно закомментировать или удалить. Маршрут по умолчанию будет установлен автоматически при подключении через модем.
После перезагрузки системы должно произойти автоматическое подключение к Интернет через модем. Если этого не произошло, то нужно анализировать файл /var/log/mpd.log.