Ubuntu 7.04, Пыхтерский Авангард-ADSL, модем D-Link
Ubuntu Avangard DSL D-Link

Вот она, первая статья о невечном :)

На самом деле статей в сети на эту тему много (ну либо они повествуют о настройке для веб-плюса – она схожа) – но результаты у всех разные – поэтому расскажу свою историю.

подопытные:

дополнительные ссылки:

(дополнительные ссылки также есть в конце статьи)

Итак, Live/Install CD был скачан из интернета, прожжен на болванку и установлен буквально за 10-15 минут, чем Ubuntu и славится. практически все что нужно обнаружилось и отдетектилось сразу, за исключением собственно интернета :). сразу говорю, четких рекомендаций как не было так и нет, насколько я понял у большинства все “как-то вышло” и вполне может быть так, что мой или чей-то способ может не подойти. у меня, например, интернет пока что подключается раза с пятого, но хотя бы уже до отключения руками, поэтому я стараюсь не перезагружаться :). если я найду способы улучшения ситуации – я напишу.

Впрочем, меньше прелюдий – беремся за терминал. Вернее, лучше заранее достать где-нибудь интернет и скачать вот эту пару файлов: :).

С этого момента мы считаем что вы находитесь в той директории, куда вы положили эти файлы, например ~/Downloads:

$ cd ~/Downloads

Одно магическое действие, которое вам скорее всего понадобится для корректной работы eciadsl – смена среды. Честно говоря я не успел посмотреть что там было до этого, потому что в bash я не сомневаюсь(лся?), но вероятнее всего на то, как было, если вам будет надо – можно будет запросто вернуть командой sudo ln -sf /bin/dash /bin/sh:

$ sudo ln sf /bin/bash /bin/sh

устанавливаем пакеты:

$ sudo dpkg -i ./pppoe_3.8-1.1_i386.deb
$ sudo dpkg -i ./eciadsl-usermode_0.11-1_i386_with_sync_patch.deb

распаковываем дополнительные файлы синхронизации и переносим их в каталог eciadsl:

$ bzip2 -d ./eciadsl-synch_bin.tar.bz2
$ tar -xvf ./eciadsl-synch_bin.tar
$ sudo mv ./eciadsl-synch_bin/*.bin /etc/eciadsl/
$ rm -Rf ./eciadsl-synch_bin

далее, нужно проверить выгружен ли модуль dabusb, который по идее и не должен быть загружен – в ранних версиях он приводил к ошибкам.

$ sudo lsmod | grep dabusb

и если он все-таки найдется – надо его убить, вот так: :)

$ sudo modprobe -r dabsusb

теперь включаем нужные модули:

$ sudo modprobe tun
$ sudo lsmod | grep tun
$ sudo modprobe n_hdlc
$ sudo lsmod | grep n_hdlc

сейчас нам нужно узнать VID/PID нашего момеда (насколько я себе представил –- это код USB-порта на материнской плате, но истинным знанием я временно не обладаю).

$ lsusb

там должно быть либо D-Link либо GlobeSpan, либо какой-то еще вариант (если что можно выяснить отключив модем, выполнив lsusb и подключив снова) –- у меня мой модем был в этой строчке:

Bus 004 Device 006: ID 0915:8104 GlobeSpan, Inc.

выделенные курсивом числа – и есть VID:PID – запомните их. Настало время приступить к конфигурации. можно запустить текстовую версию и следовать указаниям (пояснения ниже):

$ sudo eciadsl-config-text

для Авангард-ADSL настройки (примерно :) ) таковы (номера пунктов могут отличаться):

  • (1) configure all settings
  • юзернейм/пароль: ptn/ptn
  • provider: (58) Other
  • DNS1: 213.158.0.6
  • DNS2: 213.48.193.36 (на июль 2007 они таковы, в будущем могут потенциально поменяться – следите за новостями Авангарда)
  • VPI:
  • VCI: 35
  • modem: (16) D-Link DSL200 B1 (засисит от модели вашего модема, но у меня кажется не B и работает и я побаиваюсь пока все нестабильно но работает тестировать другие варианты :) )
  • VID1: 0915 (первое число из двух, которые показала команда lsusb)
  • PID1: 8104 (второе число из двух, которые показала команда lsusb)
  • VID2: 0915 (первое число из двух, которые показала команда lsusb)
  • PID2: 8104 (второе число из двух, которые показала команда lsusb)
  • chipset: (3) GS7470
  • SYNCH: (этот пункт и следующий пункты люди часто ставят наугад, я тоже пишу как работает у меня и не знаю почему я это ставил :) )
  • PPPOECI: 4
  • .bin file: (18) /etc/eciadsl/gs7470_synch20.bin (очень важный пункт, на сайте Авангарда пишут использовать именно этот файл , но если у вас все еще будут проблемы с синхронизацией – нужно будет перебрать все по одному а в самом худшем случае – собирать свой)
  • PPP Mode: (5) LLC_SNAP_RFC1483_BRIDGED_ETH_NO_FCS (еще используют LLC_RFC1483_ROUTED_IP)
  • DHCP: no
  • Static IP: no (по дефолту у Авангарда динамический IP, но если у вас статический за денюжку то наверное стоит поставить yes :) )

ниже я приведу сам файл /etc/eciadsl/eciadsl.conf, который и изменяет эта утилита –- в том состоянии, в каком он у меня.

далее –- запускаем собственно синхронизацию:

$ sudo eciadsl-start

тут могут обнаружиться самые обидные проблемы – если будут ошибки про interruptы – значит вместо первого файла установлена версия без патча синхронизации и вы меня не слушаетесь :). В моем случае тоже не всё гладко –- первые разы после удачной синхронизации гаснут обе лампочки на модеме, а среди карт/интерфейсов отстутствует tap0:

$ ifconfig

но раз на пятый-десятый лампочки все-таки не гаснут и тогда хорошо. По этим причинам я поставил скрипт на автозагрузку, но о нем –- ниже. Если уж совсем много раз не выходит –- что-то не чисто –- проверять настройки и файлы синхронизации. Вам нужно добиться чтобы лампочки не гасли :). После этого –- набрать:

$ sudo pppoeconf

это собственно конфигурация PPPoE. Утилита должна найти инет на интерфейсе tap0 и задавать диалогами вопросы и просьбы, среди которых попросят ввести пароль/юзернейм снова, а на все остальные - отвечать разумно, чаще всего – “да” :).

после этого можно попытаться подключиться:

$ sudo pppoe-start

и если не TIMED OUT а CONNECT OK то все замечательно :).
желаю чтобы у вас так и было :).

P.S. Статья будет исправляться и дополняться

Пояснения:

теперь по поводу гаснущих лампочек. я взял скрипт starl1t‘а, чуток исправил, добавив pppoe-start и выставил его в автозагрузку:

#!/bin/bash

# This is an improved eciadsl launch script, which
# tries to connect after failures until success.
# Feel free to share and modify
# by Starlite

case "$1" in
    start)
        sudo eciadsl-start
        result=$?
        #echo 'exit code:' $result
        until [ $result -eq 0 ]
        do
            echo ‘Error: connection failed’
            sudo eciadsl-stop
            sudo eciadsl-start
            result=$?
        #    echo ‘exit code:’ $result
        done
        echo ‘connection established’
        sudo pppoe-start
        exit $?
        ;;
    stop)
        sudo eciadsl-stop
        exit $?
        ;;
    restart|force-reload)
        $0 stop && $0 start
        exit $?
        ;;
    *)
        echo ‘Usage: eciadsl {start|stop|restart}’
        exit 1
        ;;
esac
exit 0

потом –- ставим его на автозагрузку:

$ sudo chmod +x /etc/init.d/eciadsl
$ update-rc.d eciadsl defaults

если нужно –- можно запускать его самостоятельно:

$ sudo /etc/init.d/eciadsl restart

Тексты:

/etc/eciadsl/eciadsl.conf
VID1=0915
PID1=8104
VID2=0915
PID2=8104
#MODE=LLC_RFC1483_ROUTED_IP
MODE=LLC_SNAP_RFC1483_BRIDGED_ETH_NO_FCS
VCI=35
VPI=0
FIRMWARE=/etc/eciadsl/firmware00.bin
SYNCH=/etc/eciadsl/gs7470_synch20.bin
PPPD_USER=ptn
PPPD_PASSWD=
USE_DHCP=no
USE_STATICIP=no
STATICIP=
GATEWAY=
MODEM=D-Link DSL200 rev B1
MODEM_CHIPSET=GS7470
SYNCH_ALTIFACE=0
PPPOECI_ALTIFACE=1
PROVIDER=Other
DNS1=213.158.0.6
DNS2=213.18.193.36
/etc/ppp/pppoe.conf
ETH='tap0'
USER='ptn'
DEMAND=no
#DEMAND=300
DNSTYPE=SERVER
PEERDNS=yes
DNS1=
DNS2=
DEFAULTROUTE=yes
CONNECT_TIMEOUT=30
CONNECT_POLL=2
ACNAME=
SERVICENAME=
PING="."
CF_BASE=`basename $CONFIG`
PIDFILE="/var/run/$CF_BASE-pppoe.pid"
SYNCHRONOUS=no
#SYNCHRONOUS=yes
CLAMPMSS=1412
#CLAMPMSS=100
#CLAMPMSS=no
LCP_INTERVAL=20
LCP_FAILURE=3
#LCP_FAILURE=30
PPPOE_TIMEOUT=80
FIREWALL=NONE
LINUX_PLUGIN=
PPPOE_EXTRA=""
PPPD_EXTRA=""

Примечания:


от человека, настраивавшего модем ZTE ZXDSL 852, добавляю:

Для модема ZTE ZXDSL 852 нужно еще (кроме драйвера cxacru.ko) втыкать мост ATM <-> ETHERNET (PPPoA <-> PPPoE), а для этого ставить драйвер br2648.ko и настраивать через контрольную утилиту br2684ctl (должна входить в пакет linux-atm-lib - если нет - можно взять с linux-atm.sourceforge.net).

К сожалению ссылка на руководство по сборке файла синхронизации руками — периодически умирает :( , если так произошло — эту статью можно найти на LinuxUp.Ru (версия для печати и первая часть статьи) или, в pdf-версии на linux.yaroslavl.ru (HTML-версия).

И, нашлась еще одна очень неплохая ссылка на настройку этого дела в Gentoo, с использованием ATM. (И еще вот — о том же но по-другому). И, плюс -ADSL@Ubuntu & модем ACORP.


Для полноты картины нужно на установку Acorp Sprinter дать ссылку. Там разобрались по-своему.


Будьте внимательны!

На сайте eciadsl убрали версию с патчем синхронизации. Временно я выложил ее на rapidshare.com и на на rapidshare.ru. Также могу выслать по почте. Если есть информация, работает ли схема с новой версией (по слухам - не работает и других схем нет) - прошу поделиться :) .

Upd. Здесь у человека возникла проблема с новым драйвером eciadsl 0.12 на ubuntu 7.10.

И вообще - с опытом выясняется, что модемы D-Link-200 - из ряда тех вещей, которые если уж достались - то лучше их сразу поменять.


А вот тут - про дружбу Ubuntu 7.10 на AMD64, DLink-модема и Авангард ADSL.


Ещё раз выкладываю eciadsl-0.11, (в том комменте зачем-то выложил файлы синхронизации):.tar.bz2, .deb

Здесь человек настроил всё на 7.10/eciadsl0.10 и довольно подробно описывает (и там же раньше подробное описание для Gentoo + решения некоторых проблем).

Сейчас работаю над установкой на 7.04 с ADSL-модемом ZyXEL omni P-630S EE и eciadsl 0.12.

Отметки:
- действительно, дефолтовый шелл — dash
- утилита конфигурации eliadsl-config-text для 0.11 почему-то вылетала на вводе логина/пароля ошибку скрипта, поэтому повесил 0.12.
- 0.12 выпадает с ошибкой double free or courruption на этапе синхронизации, теоретические решения из инета: поставить 0.10 из сурсов, скомпилить 0.12 из сурсов, использовать патч (логин/пароль: eciadsl/eciadsl), выбрать {{RFC_2364}}, проверить все файлы синхронизации…


от Анонима:

Поясню
VID - vendor id
PID - product id

alt интерфейсы сейчас указаны на flashtux для каждого модема

(Sat, 21 Jul 2007 at 1844.08)

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License