форумы  рассылка  download Перейти на новую версию сайта:
www.slackware.ru
Искать    где:    






    
slackware.ru > Сети > Adsl USB modem Aus.Linx AL-2006 в операционной системе Linux ID:2665
 
2005-04-29 Eleksir
Adsl USB modem Aus.Linx AL-2006 в операционной системе Linux
Как заставить работать USB ADSL модем Aus.Linx AL-2006 в операционной системе Linux?

Да, собственно, не так-то и сложно.
(как ни странно, но нам для подключения к интернету нужно... подключение к интернету - парадокс не правда ли?)

Что нам понадобится?

1. atm-tools_2.4.0-3_i386.deb (или linux-atm_2.4.0.orig.tar.gz + linux-atm_2.4.0-3.diff.gz )
2. br2684ctl-20040226-1_i386.deb (или br2684ctl_20040226.orig.tar.gz + br2684ctl_20040226-1.diff.gz )
3. dpkg-1.9.21.tar.gz
4. ppp-2.4.3.tar.gz
5. usbatm-20050216.tar.bz2 (http://sourceforge.net/projects/accessrunner)
6. CnxEtU.sys (md5 28775c3f6df8c1f364f67d7121191000 )
7. libpcap-0.8.3.tar.gz (http://www.tcpdump.org)
8. Kernel Source версии 2.6.10 и круче (тут ясно - http://kernel.org)
9. root (обязательно, ибо всё нижеописанное далалось мной из-под root'а)

10. некоторые познания Linux'а (как минимум увереное обращение с командной сторкой)
11. голова на плечах, корректно поддержвающая работу с устройством /dev/brain :)
12. некривые руки(или как там его - /dev/hands) :)
13. как минимум интуитивное понимание английского языка (лучше, конечно, нативная интерпритация, но не все ей владеют)
14. чуть не забыл: работающий GCC :)

Маленькое змечание: на момент прочтения этого документа некоторые пэкэджи наверняка уже обновятся, а здесь версии указаны для примера, поэтому не надо тыкать пальцем в экран и говорить "гы-гы, какая древность".

Пара слов по поводу пэкэджей 1,2,3,4 я взял их из репозитория Debian собственно dpkg нужен был мне для *.deb'ов: чё-та у меня br2684ctl собираться не хотел, вот я и воспользовался deb'ами, правда пришлось подгонять их к архитектуре каталогов в Slackware 10, но это пустяки, далее CnxEtU.sys надо взять с оригинального компакта (в моём случае это Стримовский так называемый "Инсталяционный диск", который был в коробке с модемом).
И ещё: не забывайте про Google.com, он содержит не только мусор, но и полезную информацию (но это так, лирическое отступление).

Поехали!
Во-первых надо скомпилировать 1,2,3,4,7 и установить их(конечно, для очистки совести надо вначале проверить их наличие а потом компилить или не компилить, но ppp лучше чтоб был последний).
Предположим что всё прошло удачно(как у меня или лучше :) ).
Во-вторых выполняем комманду:

# dd bs=1 skip=16832 count=625147 if=/mnt/cdrom/Drivers/CnxEtU.sys of=/tmp/cxacru-fw.bin

MD5 CnxEtU.sys 28775c3f6df8c1f364f67d7121191000
но бывает CnxEtU.sys с MD5 c925c9c1bdde4212b07e6381008cfc91 (его можно взять с оф. сайта http://www.auslinx.com.tw/download/adsl/2006b_v099061.zip ) там команда другая
# dd bs=1 skip=16832 count=596731 if=/mnt/cdrom/Drivers/CnxEtU.sys of=/tmp/cxacru-fw.bin

таким образом мы получаем правильный образ биоса модема т.е. без виндового вроппера.
(есть, правда, мутный вариант с прогой, но я слышал что прога срезает пару байт в конце биоса, правда эти байты нафиг никому не нужны и не играют принципиального значения (это так называемое выравнивание или alignment или padding), вобщем если у вас другая md5 наверно вам следует воспользоваться именно ей http://accessrunner.sourceforge.net/firmware.shtml здесь собственно ссылка на CVS проги)

В-третьих распаковываем исходники ядра (обычно в /usr/src/linux или в /usr/src/linux-2.6.xx и для порядку symlink на него под названием /usr/src/linux), далее распаковываем куда-нить ещё usbatm-20050216.tar.bz2; копируем всё из usbatm-20050216.tar.bz2 (каталог drivers со всем содержимым) в дерево исходников ядра (как раз поверх одноимённого каталога) при этом надо согласится на перезапись файла /usr/src/linux-2.6.xx/drivers/usb/atm/Kconfig, а иначе не будет возможности при настройке выбрать этот самый драйвер.
Так, теперь у нас есть дерево сорсов ядра и его осталось сконфигурировать. Это уже в-четвёртых. Если у вас нормальный дистр есть возможность слизать текущую конфигурацию ядра с файла /proc/config.gz:

# cp /proc/config.gz /usr/src/linux-2.6.xx
# cd /usr/src/linux-2.6.xx
# gzip -d config.gz
# mv config .config

вроде так, хотя я всё делал из mc :) , далее:

# make menuconfig
или
# make xconfig
или
# make gconfig

как кому удобнее; выбираем

Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)
Classical IP over ATM (EXPERIMENTAL)
[*] Do NOT send ICMP if no neighbour (EXPERIMENTAL)
LAN Emulation (LANE) support (EXPERIMENTAL)
Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL)
RFC1483/2684 Bridged protocols
[*] Per-VC IP filter kludge

В секции Device Driver -> USB Support ->
установите:
Support for USB
.... (page)
Connexant Accessrunner USB support

и, собственно:

# make

отходим покурить :)

# make install
# make modules_install

подправляем загрузчик, чтоб он загружал нужное нам ядро.
Так, с ядром разбрались - теперь биос - он ведь должен подгружаться в модем при старте компьютера, чтоб так оно и было нам надо поместить наш /tmp/cxacru-fw.bin куда-нить в /lib/firmware или в /usr/local/lib/firmware или в /usr/lib/hotplug/firmware в моём случае это был второй вариант(вроде), в принципе подсмотреть нужный каталог можно в /etc/hotplug/firmware.agent . Но так просто биос не захочет заливаться в модем - нужен файл настройки, привожу его содержимое:
Файл cxacru-cf.bin
длина 300 байт
наполнен нулями, но не полностью, я укажу смещения и значения, но честно скажу: что за что отвечает я не знаю
000e:01
0012:01
001e:09
0022:10
002a:03
0032:01
0036:02
003e:c8
0042:01
004a:39
0052:01
005e:0e
0062:05
0066:04
006e:80
0072:0f
0076:03
007a:80
00b6:80
00be:0a
00c2:0c
00c6:02
00ca:03
00da:80
00db:01
012b:07
вот! Не помню как он получается, но выглядит примерно так... (Можно набрать его, например, в KHexEdit в KDE) этот самый cxacru-cf.bin нужно положить рядом с cxacru-fw.bin
Всё, с аппаратной частью мы закончили, надо перезагрузить компьютер выбрать при загрузке новое ядро и дождаться загрузки операционной системы, в процессе которой должен замигать светодиод с кодовым названием ADSL и через некоторое время засветиться постоянно.
Предположим что всё так и произошло (у меня всё завелось с пол-оборота т.е. сразу)

Теперь займёмся программной частью.

# modprobe br2684
# br2684ctl -b -c 0 -e 0 -s 65536 -a 0.1.50

некоторые пояснения :
-c 0 конфигурирует интерфейс nas0 (собственно чиферка указывает на номер интерфеса -c 0 будет nas0 -с 1 будет nas1 и тд)
-b
отправляет процесс в фоновое выполнение
-a [itf].vpi.vci
VPI (Virtual Path Identifier) VCI (Virtual Circuit Identifier) смотрятся на страничке у провайдера - в настройках подключения
-e 0
тип энкапсуляции смотрится у прова(0 LLC; 1 VC mux)
-s 65536
буфер для исходящего трафика (по умолчанию 8192)

у меня приведен пример запуска Стрима

# ifconfig nas0

получаем ответ типа

nas0 Link encap:Ethernet HWaddr 00:05:25:B0:15:0A
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:894 errors:0 dropped:0 overruns:0 frame:0
TX packets:783 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:719554 (702.6 KiB) TX bytes:68443 (66.8 KiB)

означающий что наши магические пассы обрели успех

Дальше надо настроить PPPoE.

# adsl-setup
и в качестве интерфейса надо указать не предлагаемый eth0 а nas0 а дальше - всё обычно: логин/пароль , но после окончания конфигурирования надо в файле /etc/ppp/pppoe.conf найти строчку PEERDNS=no и сменить её на PEERDNS=yes тогда dns'ки будут запрошены у peer'а т.е. у прова. Дальше

# adsl-start
# route add 127.0.0.1 dev lo

и в бой! интернет подкючён, можно покорять просторы глобальной паутины :). Да, чуть не забыл процесс поднятия коннекта можно автоматизировать с помощью скриптика:

#!/bin/bash
cat /proc/net/atm/cxacru\:0 | grep -e "Line" | grep up >> /dev/null || exit 1
modprobe br2684
br2684ctl -b -c 0 -e 0 -s 65536 -a 0.1.50
adsl-start
route add 127.0.0.1 dev lo

запускать скрипт можно только из под рута (или пользователя, который имеет право создавать файлы устройств) и только после загрузки биоса в модем а иначе - облом

Приятного времяпрепровождения!
P.S. огромное спасибо Evil-and'у(http://evil-and.nm.ru) за его подробное описание, которое я тут своими словами изложил и отчасти дополнил
также спасибо ребятам с accessrunner.sf.net за их труды.
спасибо за проявленное упорство и вам, читающим эту писанину.

Осмыслил и проверил на функциональность, а также набрал эти строки Kadeveoure.



оставить комментарий
Как Вы оцениваете эту статью? 
коментарии к статье

 развернуть комментарии (всего 3,персональных 0)