Подключение ADSL модемов SpeedTouch 330

Один из провайдеров несколько раз проводил в Петрозаводске акции, раздавая при подключении ADSL модемы, в частности распространялись USB модемы SpeedTouch 330. Возможно, что кому-то пригодится инструкция по подключению такого устройства в Linux. Настройки делаются на примере Debian Lenny, надеюсь данных объяснений будет достаточно чтобы сделать это и в других дистрибутивах.

Для настройки вам потребуется следующее программное обеспечение: прошивка для модема с сайта производителя, программа SpeedTouch Firmware Extractor, модуль ядра br2684, программа br2684ctl и конечно ppp.

Подготовка прошивки модема

На сайте производителя есть прошивка для модема, в архиве должно быть два файла, KQD6_3.012 и ZZZL_3.012. Вам потребуется один из них, какой - зависит от типа модема. Мой модем идентифицируется командой lsusb как "06b9:4061 Alcatel Telecom SpeedTouch ISDN or ADSL Modem", для него потребовался файл ZZZL_3.012. Прошивку нужно преобразовать, для чего потребуется программа SpeedTouch Firmware Extractor. Итак, скачиваем и распаковываем прошивку и программу для её обработки:

wget http://www.speedtouch.com/download/drivers/USB/SpeedTouch330_firmware_3012.zip
wget http://www.linux-usb.org/SpeedTouch/firmware/firmware-extractor.tar.gz
tar xf firmware-extractor.tar.gz
unzip SpeedTouch330_firmware_3012.zip
Затем копируем прошивку в каталог программы под именем mgmt.o и обрабатываем:
cp ZZZL_3.012 firmware-extractor/mgmt.o
cd firmware-extractor/
./configure
make
make install

В каталоге появятся файлы speedtch-1.bin и speedtch-2.bin, и команда make install скопирует их в каталог /lib/firmware. Чтобы убедиться, что прошивка грузится, подключите модем к компьютеру. После включения он должен начать мигать некоторое время правым индикатором. Когда мигание завершится, проверьте, что он присутствует в списке устройств, выдаваемом командой lsusb, так же можно выполнить команду dmesg и увидеть информацию о процессе идентификации модема и загрузке firmware.

Установка br2684ctl

Для настройки подключения к Интернету нам потребуется программа br2684ctl, она есть в одноименном пакете. Установим её:

apt-get install br2684ctl

При помощи этой программы создаётся виртуальное сетевое устройство, через которое затем будет работать ppp. Для работы br2684ctl требуется модуль ядра. В Debian Lenny он ставится вместе с ядром. Добавьте в файл /etc/modules следующую строчку:

br2684
Чтобы не перезагружаться загрузите модуль командой modprobe:
modprobe br2684
Один из вариантов запуска программы br2684ctl - это через опцию pre-up в файле /etc/network/interfaces. С учётом необходимости запуска ppp, возможности отключения интерфейса и включения при загрузке соответствующая часть этого конфигурационного файла выглядит так:
iface nas0 inet manual
pre-up br2684ctl -b -c ${IFACE#nas} -a 0.55
post-up ifconfig $IFACE up; pon avangard
pre-down poff avangard; true
post-down kill $(cat /var/run/br2684ctl-$IFACE.pid)

auto nas0

Смысл этих настроек в следующем: перед поднятием интерфейса nas0 вызывается br2684ctl, которая его и создаёт, при этом в параметре -a передаются через точку значения VPI и VCI (для Авангард DSL в Петрозаводске это 0 и 55 соответственно, для другого провайдера они могут быть иными), а после стартует PPP-соединение с именем "avangard" (его настройки в файле /etc/ppp/peers/avangard мы рассмотрим дальше), при выключении интерфейса предварительно завершается PPP-соединение, а после завершается работа процесса br2684ctl, соответствующего данному интерфейсу.

Настройка ppp

В каталоге /etc/ppp/peers/ необходимо создать файл, с именем, соответствующим выбранному называнию PPP соединения, в данном случае это avangard. Его содержимое для моего провайдера таково:

noipdefault
usepeerdns
defaultroute
user szt
noauth
updetach
persist
mtu 1452
plugin rp-pppoe.so
nas0

Если вы предполагаете использовать не DNS-сервер провайдера, а например свой, то закомментируйте строчку с опцией userpeerdns.

Пароль для соединения нужно указать в файле /etc/ppp/pap-secrets. Для подключения к моему провайдеру абоненты используют одинаковые логины и пароли ("szt" и "szt"), соответственно в pap-secrets есть строчка:

szt    *    szt
Теперь остаётся только сделать ifup nas0 и подключение должно заработать.