Ни слова о луке

сэр шаман рассказывает о чём может

Ubuntu 7.04, Пыхтерский Авангард-ADSL, модем 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: 0
  • 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: 0 (этот пункт и следующий пункты люди часто ставят наугад, я тоже пишу как работает у меня и не знаю почему я это ставил :) )
  • 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 и выставил его в автозагрузку:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/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 для каждого модема

Наверх