ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Настройка USB ADSL модема на чипе Conexant AccessRunner в ОС Linux
  #1  
Старый 21.01.2007, 03:25
Аватар для L0rd_Ha0S
L0rd_Ha0S
Участник форума
Регистрация: 25.01.2006
Сообщений: 158
Провел на форуме:
1000724

Репутация: 361
По умолчанию Настройка USB ADSL модема на чипе Conexant AccessRunner в ОС Linux

Настройка USB ADSL модема на чипе Conexant AccessRunner в ОС Linux

Intro.

В данной статье будет описана настройка USB ADSL модема в ОС Linux на чипе Conexant AccessRunner, а также настройка PPPoE соединения с провайдером. Все что здесь будет описано проверялось на модеме Acorp ADSL@Sprinter USB за 28$, которым я пользуюсь сам.
Эта статья написана на основании информации с форумов, найденых заметок + немного моего опыта.

Начнем.

ЗаTARиваемся...

Хотя на сайте Acorp(http://acorp.ru) в мане настройке модема под Линуксом требуется установить целую кучу пакетов, на практике нам понадобятся только 4:

1) linux-2.6.x.tar.bz2 - исходники ядра – взять их можно тут
Именно из ветки 2.6, потому что, насколько я знаю, в предыдущих ветках драйвер Conexant AccessRunner не был включен в ядро, и его нужно скачивать отдельно. (Если я не прав – поправьте меня). В моем случае версия ядра была 2.6.18.
Но на всякий случай вот ссылка на проект AccessRunner:
http://accessrunner.sourceforge.net/
Если у вас уже есть «ядерные сорцы», тогда используйте их.

2) ppp-2.4.x.tar.gz
Слить архив можно тут - ftp://ftp.samba.org/pub/ppp/
Также у меня на ppp установлен патч для поддержки MPPC(поддержка сжатия для Microsoft PPTP VPN), но устанавливать его необязательно(это так – отступление от темы ) Если он таки нужен, то для ppp-2.4.4 его можно слить отсюда
http://dimez.findall.ru/docs/mppe_mp...c-1.1.patch.gz

3) rp-pppoe-3.8.tar.gz
На момент написания статьи последней была версия 3.8
Сливаем отсюда:
http://www.roaringpenguin.com/pengui...oducts/rpPppoe

4) br2684ctl
Если в вашей системе нет этой программы, тогда идем по
ссылке
и выбираем то что нужно

Больше никаких исходников и пакетов не потребуется.
Также потребуются параметры, которые вам должен выдать ваш провайдер(логин,пароль,адр са DNS-серверов,VPI,VCI)

Настройка ядра (linux-2.6.18.tar.bz2)

Распаковываем архив в /usr/src:
Код:
tar jxf linux-2.6.18.tar.bz2
Запускаем конфигуратор ядра:
Код:
cd linux-2.6.18/
make menuconfig
Далее ставим все как описано ниже:

Код:
Networking  --->
	Networking options  --->
		...
		<M> Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)	## обязательно(M or y)
		<M>    Classical IP over ATM (EXPERIMENTAL)		## для PPPoE это необязательно
									# этот вид сейчас редко
									# используется провайдерами
		...
		<M>   	 RFC1483/2684 Bridged protocols			## обязательно (можно 
									# ставить модулем(желательно),
									# а можете
									# включить в ядро, т.е.
									# соответственно M or y)

Device Drivers  --->
	Network device support  --->
		...
		<M> PPP (point-to-point protocol) support		#включаем поддержку PPP
		...
		<M>   PPP over Ethernet (EXPERIMENTAL)			#включаем поддержку PPPoE
		<M>   PPP over ATM					#включаем поддержку PPPoA
 									# (для PPPoE необязательна, но у меня
 									# установлена, на всякий пожарный :))

	USB support  --->
		USB DSL modem support  --->
			 <M> USB DSL modem support			# только модулем, иначе просто не
 									# получится :)
			 <M>   Conexant AccessRunner USB support 	# собственно вот и поддержка модемов
				  					# на чипах AccessRunner
Вот и все, настройка ядра для поддержки CxAcRu-модемов завершена.
Теперь пересоберем ядро:
Код:
make clean		# очищаем директорию с сорцами ядра от временных файлов,
			# оставшихся после прошлой сборки		
make bzImage		# собираем ядро
make modules		# собираем модули
make modules_install	# устанавливаем модули
Переносим в /boot bzImage и System.map, и если нужно, то обновляем конфиг загрузчика. За подробностями по сборке ядра обращайтесь в Kernel-HOWTO.
Все, с ядром, я думаю разобрались.

Теперь добавим в конец /etc/modules следующие строки:
Код:
cxacru
br2684
В этом файле задаются модули, которые ядро загрузит при загрузке системы.

Установка ppp (ppp-2.4.4.tar.gz)

Как и полагается, разархивируем его в /usr/src:
Код:
tar zxf ppp-2.4.4.tar.gz
cd ppp-2.4.4/
Здесь я вернусь к тому патчу для поддержки MPPC(опять же повторюсь, что его не обязательно ставить),если он вам нужен, установить его можно так:
Код:
zcat -f /путь/к/патчу/ppp-2.4.4-mppe-mppc-1.1.patch.gz |patch -p1
Далее выполняем:
Код:
./configure --prefix=/usr/local/ppp
make && make install
Установка rp-pppoe-3.8 (rp-pppoe-3.8.tar.gz)

Разархивируем:
Код:
tar zxf rp-pppoe-3.8.tar.gz
cd rp-pppoe-3.8/
Конфигурирование и сборка:
Код:
./go --prefix=/usr/local/ppp --enable-plugin=/usr/src/ppp-2.4.4
После запуска go, он(go) установит все сам, и сразу же запустит pppoe-setup для настройки pppoe-соединения. С этим уже сами разберетесь, там только на вопросы отвечать и все.
Единственное, что хотел бы отметить, когда pppoe-setup задаст вопрос:
Код:
Enter the Ethernet interface connected to the DSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where 'n' is a number.
(default eth0):
То нужно ввести интерфейс nas0. Его создание будет описано ниже.

Небольшая настройка

Теперь немного поковыряемся в конфигах
Открываем файл /etc/ppp/pppoe.conf
Ищем в нем строку LINUX_PLUGIN=, если она закомментирована, раскомментируйте ее, и вписываем туда следующее:
Код:
LINUX_PLUGIN=/usr/local/ppp/lib/pppd/2.4.4/rp-pppoe.so
Все, в этом файле больше ничего менять не нужно

Подключение

Перед подключением необходимо создать и сконфигурировать сетевой интерфейс. Для этой цели и существует программа br2684ctl. Тут вам и понадобятся значения VPI и VCI. Допустим, что провайдер выдал вам такие значения – VPI=0,VCI=33, тогда вводим от рута следующую команду и в ответ видим следующее:
Код:
root@LServ(22:23:55)/etc # br2684ctl -b -c 0 -a 0.0.33
RFC1483/2684 bridge: Interface "nas0" created sucessfully
RFC1483/2684 bridge: Communicating over ATM 0.0.33, encapsulation: LLC
RFC1483/2684 bridge: Interface configured
Теперь поясню, что означают эти параметры:
-b Процесс запускается в бэкграунде
-c n Номер интерфейса, где n=число(например, если n=0, то интерфейс будет nas0, если n=1, то nas1)
-a [itf].vpi.vci
[itf] необязательный параметр,обычно равен 0, можно вообще не указывать
vpi значение VPI
vci значение VCI
Есть еще два необязательных параметра
-e 0|1 Тип инкапсуляции 0=LLC,1=VC mux. Чаще всего провайдерами используется именно LLC, поэтому можно не указывать. Если не указан явно, то используется LLC(т.е. 0)
-s sndbuf Размер буфера отправки, по умолчанию 8192. Нам этот параметр вовсе не нужен.
Если нужны подробности, то читаем man br2684ctl.
Эта команда выполняется только один раз(для поднятия интерфейса nas0).

FINISH

Вот и все, настройка окончена, и теперь можно ввести финальную команду:
Код:
pppoe-start
После ввода этой команды, будут появлятся точки, и когда соединится то все будет выглядеть так:
Код:
root@LServ(22:43:42)/etc # pppoe-start
........... Connected!
Закрыть подключение:
Код:
root@LServ(22:46:00)/etc # pppoe-stop
Killing pppd (10804)
Killing pppoe-connect (10787)
Посмотреть статус соединения:
Код:
root@LServ(22:56:05)/etc # pppoe-status
pppoe-status: Link is up and running on interface ppp0
ppp0      Link encap:Point-to-Point Protocol
          inet addr:1.1.1.1  P-t-P:1.1.1.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:1638 (1.5 KiB)  TX bytes:1194 (1.1 KiB)
Какие могут быть проблемы

Возможен и другой вариант после выполнения pppoe-start:
Код:
root@LServ(22:43:42)/etc # pppoe-start
........... TIMED OUT
Это значит, что соединение не удалось установить. У меня такое бывает довольно часто, после каждого такого сообщения советую выполнить ifconfig -a, и посмотреть не появился ли интерфейс ppp0, часто бывает так, что выдается TIMED OUT, но интерфейс создается, то есть подключение есть , но pppoe-start думает, что его нет, в этом случае им можно пользоваться, но чтобы его закрыть, нужно просто прибить процесс pppd, и все. Если же интерфейс не появился, то тогда снова выполнить pppoe-start.

И еще. Такую же надпись (TIMED OUT) можно увидеть еще в двух случаях:
1) Когда pppd пытается авторизоваться с неверными логином/паролем, и сервер, естественно, шлет его нах.
2) Когда строка LINUX_PLUGIN в файле /etc/ppp/pppoe.conf либо не задана, либо закоментирована, либо неверно задана(например, неверный путь, или указывает на плагин от другой версии pppd)
Как определить в чем именно проблема? Во время ковыряний со своим модемом, я определил, что если pppd не может загрузить свой плагин(случай 2, т.е. не может загрузить rp-pppoe.so), то лампочка, показывающая, что идет передача данных(у меня она подписана как Rx на модеме) НЕ ГОРИТ/НЕ МОРГАЕТ вообще.(имеется в виду во время попытки установки соединения pppoe-start, т.е. пока появляются точки, до момента появления TIMED OUT). Если же эта лампочка периодически моргает(во время работы pppoe-start), тогда плагин загружен, и проблема либо в перегруженном сервере, либо в правильности передаваемых логина/пароля.

Упрощаем себе жизнь

Для того чтобы каждый раз не логиниться под рутом, чтобы установить соединение с инетом, можно(и даже нужно – поговорку линуксоида - «Не тусуйся под рутом» - никто не отменял ) проводить все действия с помощью sudo. Для этого в файл /etc/sudoers вписываем следующие строки:
Код:
# user – имя твоей учетной записи
Host_Alias      HOME = 127.0.0.1, localhost
Cmnd_Alias      ADSL = /usr/sbin/pppoe-start, /usr/sbin/pppoe-stop, /usr/sbin/br2684ctl
user            HOME = NOPASSWD: ADSL
Этим самым мы разрешаем пользователю с логином user запускать на локалхосте pppoe-start,pppoe-stop,br2684ctl от рута без запроса пароля.
За подробностями по формату /etc/sudoers -> man sudoers
Теперь добавим алиасы в свой .bashrc:
Код:
alias pppoe-start='sudo /usr/sbin/pppoe-start'
alias pppoe-stop='sudo /usr/sbin/pppoe-stop'
alias br2684ctl='sudo /usr/sbin/br2684ctl'
Теперь при выполнении пользователем user команды pppoe-start, она будет выполнена от рута.

Но если тебе совсем лень выполнять целых две команды(br2684ctl -b -c 0 -a 0.vpi.vci;pppoe-start), то можешь записать первую команду в какой-нибудь из стартовых скриптов, и выполнять только pppoe-start/pppoe-stop.

Все, приехали.

Вот собственно и все что я хотел бы сказать по поводу настройки USB ADSL модемов на основе микросхем Conexant AccessRunner. Если у кого-то есть какие-либо дополнения, замечания - выкладывайте их здесь.

(с) L0rd_Ha0S

Последний раз редактировалось L0rd_Ha0S; 05.11.2007 в 18:14..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Linux books nerezus *nix 68 23.01.2010 00:31
Linux SUSE 10.1 Настройка ADSL Otaku *nix 1 12.06.2006 20:16



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ