Ключевые слова:linux, adsl, modem, (найти похожие документы)
From: Evil-And <Evil-And at nm dot ru>
Date: Wed, 14 Apr 2006 18:21:07 +0000 (UTC)
Subject: Настройка USB ADSL модема AusLinx AL-2006 в ОС Linux
Оригинал: http://www.evil-and.nm.ru/instruction-2.6.10.html
Настройка USB ADSL модема AusLinx AL-2006(Annex A) в ОС Linux
(ядра 2.6.10 и выше) для пользования услугой "СТРИМ"
(Недавно я обнаружил, что эта инструкция и файл cxacru-cf.bin
подходят также для настройки модемов Zyxel Omni Adsl USB EE,
подробности смотрите[2] ниже.)
Стал доступен первый "официальный" релиз драйвера cxacru и обновление
usbatm. Архив доступен здесь.
Сайт разработчика драйвера: http://accessrunner.sourceforge.net
Эта инструкция предназначенна для владельцев модемов AusLinx AL-2006,
которые хотели бы пользоваться "СТРИМом" в Linux. Данная инструкция
описывает процесс настройки модема в случае использования ядра 2.6.10.
Для тех, кто пользуется ядрами 2.6.6-2.6.9 существует другая
инструкция. Узнать версию ядра можно, запустив в консоли команду:
uname -a . При написании этой инструкции я расчитывал на наличие у
читателя некоторых знаний и навыков работы с ОС GNU/Linux, как то:
* знание базовых команд UNIX;
* умение ориентироваться в структуре каталогов своего дистрибутива;
* умение устанавливать в систему как бинарные пакеты программ,
взятые из дистрибутива, так и из исходных кодов;
* умение пересобирать ядро (процесс описан во многих книгах по
Linux, статьях, HOWTO и FAQ);
* знание перечня установленного в компьютере оборудования, знание
типов файловых систем, используемых у вас;
* самое важное - умение находить и читать документацию к программам;
* умение правильно задавать вопросы;
* внимательность.
Если вы ещё не испугались, продолжайте читать дальше :), тем, кто
сомневается в своих способностях рекомендую получше изучить систему,
научиться решать другие проблемы, перечитать побольше man'ов, HOWTO и
FAQ - получаемые при этом знания стоят потраченного времени!
Предыстория
До появления услуги "СТРИМ", а точнее, тарифных планов НЕО и НЕО+ я,
как и многие другие москвичи, пользовался для доступа в Интернет
обычным аналоговым модемом. Так как модем был аппаратным и подключался
через COM-порт, трудностей при его использовании в Linux'е не
возникало. Однако, появившаяся возможность иметь подключение со
скоростью 160 Кбит/с и почти неограниченным трафиком (<=20 Гб/месяц)
не давало мне покоя. Перед подключением к СТРИМу я облазил Интернет в
поисках совместимых с Linux ADSL-модемов. Узнав, что USB ADSL модемы
кому-то удалось заставить работать в Linux'e, я поехал в офис
МТУ-Интел, в надежде взять со скидкой для студентов ADSL-модем с
портом Ethernet. Как выяснилось, скидки для студентов распространялись
только на USB модемы, и, понадеявшись на "авось" я взял имевшийся там
AusLinx AL-2006 за 24$. Подключения пришлось дожидаться почти неделю,
но ожидание не прошло даром - радость, наступившая после скачивания
музыкального альбома со скоростью 1 Мбайт/мин. была неописуемой.
Омрачали эту радость две неприятности: работать приходилось в Windows
XP - это после 2,5 лет использования Linux, и другая, не менее
неприятная - связь периодически обрывалась и приходилось долго
дожидаться сброса сессии на МТУ-шном оборудовании ~10 мин. (на
DIAL-UP'е я такого откровенного маразма не встречал). Первое время я
мирился с невозможностью использовать высокоскоростное соединение в
Linux, но от вынужденного использования нелюбимой ОС становилось всё
противней и противней. Некоторое время я даже пытался разобраться с
Cooperative Linux (изменённое ядро Linux, которое можно запускать
поверх NT), но поленился и решил вернуться к попыткам заставить модем
работать в Linux'е. Моё внимание привлекло руководство по установке
модемов на чипе Connexant на ядрах 2.6.3-2.6.5 и 2.6.6-2.6.9 на сайте
http://www.zullinux.it. Оно отличалось подробностью описания действий и
ясностью. Опираясь на это руководство, я добился функционирования
подключения в Linux посредством cxacru. Но работало всё только в том
случае, если перед загрузкой Linux'а загружался Windows XP и загружал
в модем микропрограмму. Покопавшись в исходном коде программы cxload и
получив "правильную" микропрограммы из файла CnxETU.sys из поставки
драйвера для Windows от МТУ, я таки добился автономной работы модема
под своей любимой ОС. Также я написал краткое руководство по настройке
модема для ядер 2.6.6-2.6.9. Ознакомиться с нею можно тут.
Появление ядра 2.6.10 застало меня врасплох. Стремительно приближалась
зачётная неделя, приходилось в спешке доделывать курсовой, сдавать
лабы и т.д. Ядро 2.6.10 отличалось от 2.6.9 невозможностью применения
патча для драйвера speedtch, который в новом ядре был переписан с
целью поддержки новой инфраструктуры usb_atm-устройств. В начале 2005
года я (а может быть, и не я, а МТУ-шные технари) избавился от другой
проблемы - периодических обрывов связи. Согласно показаниям dmesg, при
обрывах ядро "теряло", а затем снова "находило" модем. Сначала я
пробовал "химичить" с настройками hotplug, но затем смог решить эту
проблему просто и эффективно - воткнул модем в другой USB-порт
материнской платы и проблема исчезла - разрывы соединения на ядрах
2.6.6-2.6.9 происходили только при подключении во время работы модема
флэш-драйва. После успешной сдачи предпоследнего экзамена я нашёл на
сайте www.zullinux.it ссылку на новый драйвер для своего модема.
Его написал Роман Каган, на основе старого cxacru и с использованием
инфраструктуры ядра usb_atm. Компиляция нового модуля в составе ядра
не составила особого труда, однако, драйвер помимо микропрограммы
требует также предоставить ему файл настроек. Его я набрал в hexedit'е
и он доступен здесь. С новым драйвером процесс использования модема
напоминает процесс его использования в Windows: при подключении модема
к компьютеру начинает мигать индикатор "ADSL" и устанавливается
ADSL-соединение (при правильно работающем hotplug).
Файлы
Для настройки вам понадобятся:
1. Собственно, драйвер. Распространяется в виде патча к ядру. Можно
скачать отсюда. Дополнение: для ядер 2.6.11 и выше лучше взять
драйвер из CVS проекта accessrunner. Для тех, у кого нет CVS под
Windows или доступа к Интернету под Linux, на сайте выложен
архив, полученный из CVS. Файлы нужно распаковать в подкаталог
drivers/usb/atm/ исходных текстов ядра.
2. Исходники ядра 2.6.10. Лучше всего взять из дистрибутива, либо с
kernel.org.
3. Файл конфигурации модема cxacru-cf.bin.
4. Файл с Firmware bootROM patch cxacru-bp.bin.
5. Файл с микропрограммой модема cxacru-fw.bin. Его можно получить из
файла CnxETU.sys с диска из Вашего абонентского комплекта. Процесс
описан ниже.
6. Если у вас в системе нет утилит adsl-config(включает adsl-setup,
adsl-start, adsl-stop) или pppoeconf, установите одну из них
(должны быть в вашем дистрибутиве).
7. В некоторых дистрибутивах пакет ppp собран без поддержки PPPoATM и
PPPoE. Можно взять новый ppp-2.4.3 либо взять патч для 2.4.2
8. Вам понадобится br2684ctl для настройки atm - подключения (если у
Вас в дистрибутиве нет отдельного пакета, можно взять из старого
cxacru, но устанавливать старый cxacru не нужно (он
устанавливает себя при запуске make) ) .
9. Для сборки ppp вам могут понадобиться библиотеки:
libpcaplibatmУстановка
Несомненно, самым трудным этапом установки драйвера для начинающих
пользователей является пересборка ядра. Если Вы уже собрали и
установили ядро 2.6.10, или оно было в Вашем дистрибутиве то
достаточно будет его пропатчить и выполнить "oldconfig" , выбрать
драйвер cxacru как модуль "m" и выполнить "make && make install " ещё
раз. Перед компиляцией/перекомпиляцией нужно:
1. Распаковать исходники ядра (для тех, у кого их нет):
cd /usr/src/ && tar -jxvf <путь_к_архиву>/linux-2.6.10
2. Применить патч:
cd /usr/src/linux-2.6.10 && zcat <путь_к_патчу>/patch-cxacru-2.6.10.diff.gz | patch -p1
3. Если ядро уже было установлено:
cp /boot/config /usr/src/linux-2.6.10/ && make oldconfig
На вопрос о включении в ядро драйвера cxacru следует ответить "m".
4. Если Вы не пробовали собирать ядро 2.6.10 для поддержки старого
драйвера, то лучше поступить вот так:
cp /boot/config /usr/src/linux-2.6.10/ && make menuconfig
В секции Device Driver -> Networking Support -> Networking Options -> ...
выберите такие установки:
<M> Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)
<M> Classical IP over ATM (EXPERIMENTAL)
[*] Do NOT send ICMP if no neighbour (EXPERIMENTAL)
<M> LAN Emulation (LANE) support (EXPERIMENTAL)
<M> Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL)
<M> RFC1483/2684 Bridged protocols
[*] Per-VC IP filter kludge
В секции Device Driver -> USB Support ->
установите:
<M> Support for USB
......
--- USB Host Controller Drivers
<M> EHCI HCD (USB 2.0) support
[ ] Full speed ISO transactions (EXPERIMENTAL)
[ ] Root Hub Transaction Translators
(EXPERIMENTAL)
<M> OHCI HCD support
<M> UHCI HCD (most Intel and VIA) support
.... (page)
<M> Connexant Accessrunner USB support
Для ядра 2.6.11 (при использовании драйвера из CVS:
USB DSL modem support --->
<M> Conexant AccessRunner USB support
5. После выхода из программы конфигурирования ядра выполните команды:
# make
# make install
6. При необходимости переустановите загрузчик. В случае lilo просто
введите команду:
# /sbin/lilo
(Может понадобиться предварительно отредактировать
/etc/lilo.conf).
7. Теперь нужно позаботиться о микропрограмме и файле конфигурации,
их hotplug будет передавать драйверу cxacru для отправки в модем.
Файл конфигурации cxacru-cf.bin можно взять здесь. Файл
cxacru-fw.bin нужно получить самостоятельно. Для этого нужно
вставить в привод CDROM диск из Вашего комплекта, смонтировать его
и извлечь firmware командой вида:
# dd bs=1 skip=16832 count=625147
if=/mnt/cdrom/Drivers/Usb-only/Lan/CnxEtU.sys
of=/tmp/cxacru-fw.bin
следует помнить, что правильная микропрограмма получится только в
том случае, если файл CnxEtu.sys на вашем CD совпадает с моим.
Поэтому проверьте, совпадает ли md5-сумма вашего файла (#md5sum
CnxEtU.sys) с md5-суммой моего (28775c3f6df8c1f364f67d7121191000).
Пользователям модемов Zyxel Omni Adsl USB EE для получения
cxacru-fw.bin рекомендуется воспользоваться программой cutst.
(Автор - stalkerg.)
Её нужно скачать, распаковать (tar -zxvf cutst-source.tar.gz),
перейти в каталог с исходником, выполнить ./make.sh, запустить:
# ./cutst /mnt/cdrom/<Путь_к_CnxEtU.sys>/CnxEtU.sys /tmp/cxacru-fw.bin
От Романа поступило сообщение, что cutst в некоторых случаях
работает некорректно. Роман Каган обещает в скором времени сделать
и выложить у себя на сайте программу для извлечения firmware. В
CVS проекта доступна утилита cxacru-fw. Её исходники также можно
скачать отсюда.
Оба файла нужно поместить в один из каталогов, содержащихся в
переменной FIRMWARE_DIRS в скрипте /etc/hotplug/firmware.agent.
Как правило, это каталоги /lib/firmware /usr/local/lib/firmware
/usr/lib/hotplug/firmware . (Для подстраховки перепишите их во все
эти каталоги). Тем, у кого модем с USB ID 572:cafe, нужно также
переписать в этот каталог файл cxacru-bp.bin. Узнать USB ID своего
модема можно командой lsusb. У меня она выводит такой список:
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID 0572:cb00 Conexant Systems (Rockwell), Inc.
Bus 001 Device 001: ID 0000:0000
ID моего модема 572:cb00 => мне cxacru-bp.bin не требуется.
8. Убедитесь, что у вас при загрузке системы монтируется файловая
система sysfs. В файле /etc/fstab должна быть строка вида:
sysfs /sys sysfs defaults 0 0
9. Наконец, можно перезагрузить компьютер. При загрузке следует
выбрать в меню новое ядро, если Вы не прописали его в конфиге
загрузчика. Во время загрузки модем должен определиться, индикатор
"ADSL" должен начать мигать. После установки ADSL соединения можно
приступить к настройке ATM.
10. Введите команды:
# modprobe br2684
# br2684ctl -b -c 0 -a 0.1.50
# 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)
11. Для начала попробуйте настроить PPPoE соединение с помощью
adsl-setup. В качестве Ethernet интерфейса укажите nas0.
12. Введите команду adsl-start. Если соединение не устанавливается,
проверьте правильность ввода Login'а и пароля, также проверьте,
поддерживает ли ваш ppp соединения PPPoE и PPPoA (в версии 2.4.3
поддержка включена, для 2.4.2 есть патч).
13. Остановить соединение можно командой adsl-stop.
14. Для упрощения процесса установки ATM и PPPoE соединений можно
воспользоваться моим скриптом.
15. Если у вас получилось настроить модем по этой инструкции сообщите
об этом в форуме, если не жалко, укажите MAC-адрес вашего модема
( cat /proc/net/atm/cxacru\:0 ).
Обратная связь
Если у Вас возникли трудности при использовании этого руководства,
задавайте вопросы в форуме. Если у Вас есть предложения,
дополнения к инструкции, если Вы обнаружили в ней ошибки или
неточности - пишите мне: Evil-And at nm dot ru .
Благодарности
В первую очередь хочется выразить огромную благодарность Роману Кагану
за написание драйвера cxacru. Без него этого руководства не было бы.
Выражаю благодарность Stalkerg за программу cutst для получения
cxacru-fw.bin.
Также благодарю всех тех пользователей, которые настраивали свои
модемы с использованием моих кратких инструкций в форуме. Их вопросы и
проблемы помогли сделать это руководство лучше и полнее.
Если у вас получилось настроить модем по этой инструкции сообщите об
этом в форуме, если не жалко, укажите MAC-адрес вашего модема ( cat
/proc/net/atm/cxacru\:0).
Инструкция по настройке модема AusLinx AL-2006 для использования в ОС Linux
(для ядер версий 2.6.6-2.6.9)
Документ описывает процесс установки драйверов, необходимых для работа
ADSL USB модема AusLinx в ОС Linux для пользователей услуги "СТРИМ".
Инструкции, приведённые здесь, позволили мне настроить свой модем для
полноценной работы в Интернет. На момент написания этого документа мне
не было известно о других способах настройки этого модема в Linux,
если Вы знаете способы, отличные от данного, пожалуйста, сообщите мне.
Пока я протестировал драйверы только в системе Debian на ядре 2.6
(2.6.6, 2.6.8.1 и 2.6.9). Если вам удалось воспользоваться моим
методом на других системах и ядрах, сообщите мне.
1) Проделайте действия, описанные в инструкции, находящейся по адресу:
http://www.zullinux.it/linux/accessrunner.html
После выполнения всех действий, описанных там, у вас по команде
cxstart.sh должен запускаться скрипт, выполняющий загрузку в модем
микропрограммы, настройку модема, установку ADSL соединения с модемом
провайдера. У меня этот скрипт работал верно только в тех случаях,
когда перед загрузкой драйвера я загружал Windows XP, для которого
доступен драйвер от производителя, а затем перезагружался в Linux.
Если Вас устраивает такой режим работы, то можете бросить читать эту
инструкцию, меня же такое положение дел разочаровало и побудило к
поиску более правильного способа настройки.
2) Итак, после выполнения пункта 1 у Вас должно быть:
свежепересобранное ядро с пропатченным модулем speedtouch, pppd с
поддержкой PPPoE и PPPoATM. Вы также должны были скачать
модифицированные скрипты cxload.sh и cxunload.sh.
найдите на компакт диске с драйверами модема файл CnxEtU.sys, он
содержит правильную firmware. На диске, поставляемом "СТРИМ'ом" он
лежал по адресу: Drivers/Usb-only/Lan/CnxEtU.sys. Помимо firmware этот
файл содержит программу для windows, загружающую этот файл, а нам
нужна только микропрограмма для модема.
Перепишите этот файл во временный каталог, например, в /tmp.
Теперь получим firmware:
#dd bs=1 skip=16832 count=625147 if=/tmp/CnxEtU.sys of=cxfirm4.bin
файл cxfirm4.bin перепишите в каталог с распакованными исходниками
cxacru в вместо firmware/cxfirm4.bin.
3) Теперь пора кое-что подправить в файле init/cxload.c (в дереве
исходников cxacru). Находим в файле строки:
/* Amigo AMX-CA80U-2M */
case 5:
и добавляем строки:
/* my parameters*/
modem_char.params[0x0a] = 0x03;
modem_char.params[0x12] = 0x39;
modem_char.params[0x1b] = 0x0a;
modem_char.params[0x1c] = 0x01;
modem_char.params[0x1d] = 0x03;
modem_char.params[0x1e] = 0x0a;
Результирующий файл можно взять здесь: cxload.c
Теперь нужно заново выполнить команду make, установить
модифицированные версии скриптов cxload.sh и cxunload.sh.
4) После проделанных манипуляций cxstart.sh должен сработать успешно.
А еще проще использовать вместо этой (довольно глючной) usb-шной каки что-нить Ethernet-овское и не греть моск.До кучи в эзернет модемах часто стоит линукс и есть простор для действительно стоящих пересборок ядра и ФС - можно сбагрить некоторые писючные функции мелкой железке :)
Некоторые хакеры включается к интернету с моего имя пользователем,чтобы этого не была мне нужно найти свой МАС номер,где можно найти свой МАС код ADSL модем