This acrticle at wikidot.com

Ubuntu Avangard ADSL D-Link

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

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

подопытные:
Ubuntu 7.40 Feisty Fawn
USB-модем D-Link DSL-200 Generation III

дополнительные ссылки:
Как Starl1te настраивал Веб-плюс
Беседа с человеком у которого однажды это всё-таки получилось
Основной источник файлов
Как это делают в Gentoo

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


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

ECI-ADSL с патчем синхронизации
утилита PPPoE (или тут)
файлы синхронизации

С этого момента мы считаем что вы находитесь в той директории, куда вы положили эти файлы, например ~/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 и выставил его в автозагрузку:

$ sudo nano /etc/init.d/eciadsl

туда – нижеследующий текст:


#!/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="" 
Реклама