Вот она, первая статья о невечном :)
На самом деле статей в сети на эту тему много (ну либо они повествуют о настройке для веб-плюса – она схожа) – но результаты у всех разные – поэтому расскажу свою историю.
подопытные:
дополнительные ссылки:
- Как Starl1te настраивал Веб-плюс
- Беседа с человеком у которого однажды это всё-таки получилось
- Основной источник файлов
- Как это делают в Gentoo
(дополнительные ссылки также есть в конце статьи)
Итак, Live/Install CD был скачан из интернета, прожжен на болванку и установлен буквально за 10-15 минут, чем Ubuntu и славится. практически все что нужно обнаружилось и отдетектилось сразу, за исключением собственно интернета :). сразу говорю, четких рекомендаций как не было так и нет, насколько я понял у большинства все “как-то вышло” и вполне может быть так, что мой или чей-то способ может не подойти. у меня, например, интернет пока что подключается раза с пятого, но хотя бы уже до отключения руками, поэтому я стараюсь не перезагружаться :). если я найду способы улучшения ситуации – я напишу.
Впрочем, меньше прелюдий – беремся за терминал. Вернее, лучше заранее достать где-нибудь интернет и скачать вот эту пару файлов: :).
- ECI-ADSL с патчем синхронизации (Upd. альтернативная ссылка)
- утилита PPPoE (или тут)
- файлы синхронизации (Upd. альтернативная ссылка)
С этого момента мы считаем что вы находитесь в той директории, куда вы положили эти файлы, например ~/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 настройки (примерно :) ) таковы (номера пунктов могут отличаться):
-
- 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
и выставил его в автозагрузку:
#!/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 для каждого модема