From: Алексей Михайлов <MinimumLaw@Rambler.Ru.>
Date: Mon, 18 Nov 2004 14:31:37 +0000 (UTC)
Subject: Настройка ADSL модема ZyXEL OMNI ADSL EE с USB интерфейсом под Linux
Держателем авторского права на этот документ является его автор,
Михайлов Алексей Анатольевич, он же MinimumLaw. Данный документ можно
передавать на электронных носителях и по сетям связи в любых форматах.
Использование данного документа в печатных изданиях разрешена только
по согласованию с автором или любым из соавторов. Разрешено внесение
исправлений в электронные версии данного документа, при выполнении
следующих условий:
Данная секция обязательно должна присутствовать в итоговом документе.
При внесении незначительных исправлений, не имеющих отношения к
тематике данного произведения необходимо обеспечить доступ к исходному
материалу о чем в явной форме указать в тексте откорректированного
документа, или согласовать корректировку с автором.
О всех изменениях, касающихся непосредственно тематики произведения
необходимо уведомить держателя авторских прав, и, если они окажутся
существенными, для внесения их в последующие версии данного документа.
Если исправление признается существенным, и будет внесено в
последующую версию документа, то автор исправления получает статус
соавтора.
Текущая версия документа: 1.0, соавторов нет.
Введение
Давно я подумывал о том чтобы дома отказаться от диалапа и сделать
себе любимому нормальный интернет канал. И вот, в один ужасный (или
прекрасный) день я дозрел до похода в ближайший КЕЙ и обнаружил, что
цена на ADSL стала вполне приемлемой, но модемы (к сожалению) только с
интерфейсом USB, и к тому же в комплекте поставки нет драйвера под мою
любимую ОС, а конкретно LINUX.
Звонок в отдел продаж WebPlus (а именно через него я собирался
подключаться) закончился многозначительными намеками, типа умельцы
есть, но под Linux мы ничего не обещаем. Жаль конечно, но где наша не
пропадала. Договорившись с продавцами (слава богу есть еще хорошие
люди в компьютерных магазинах) я взял модем на условиях money back
домой на испытание.
Преамбула
Дома меня ждал ASPLinux версии 9.2. Надо сказать, что я им уже
позанимался, а следовательно там были версии ядер 2.4.26 и 2.6.6 (их,
или более поздние, можно и нужно взять на http://www.kernel.org).
Собственно дальше начались раскопки internet завалов. Довольно быстро
обнаружились следующие, интересные проекты:
Уже хорошо, хотя тот факт, что возможных вариантов больше чем один
весьма насторожил. Однако, посмотрев внимательно на первые два, я
обнаружил их безусловную схожесть. Похоже, как это часто бывает,
проект AMEDYN тихо и незаметно умер, а на его месте, как трава на
могилке появился ACCESSRUNNER.
Однако, приглянулся мне все таки ECIADSL. В самом деле, не надо ничего
грузить в ядро (а значит самая уязвимая часть системы имеет меньше
шансов сломаться). Он даже собрался. И даже после внимательного
изучения inf файла от драйвера для MS Windows прогрузил фирмваре и
попытался установить соединение, но уж очень насторожил тот факт, что
он не моргает лампочкой на модеме, как это делает его собрат из самой
распространенной операционной системы. Одним словом, на крайний случай
сгодится, хотя и доверия не внушает. Так что пришлось сесть за ACCESSRUNNER.
ACCESSRUNNER
Предварительные требования
Для начала работы в любом случае необходимы исходные тексты ядра. Они
могут быть установлены из дистрибутива (что хуже) или скачаны с
http://www.kernel.org. В последнем случае (так как всё равно
необходима перекомпиляция ядра системы) рекомендую включить поддержку
шины USB как модуль. В противном случае понадобиться вносить изменения
в загрузочные скрипты драйвера. Данная статья написана с
использованием ASPLinux 9.2 в качестве базового дистрибутива, но без
всяких изменений может быть использована и с версиями ASPLinux вниз
вплоть до 7.0. Для других дистрибутивов она вполне применима, с
возможными поправками на символические ссылки в /usr/include. Я не
тестировал данное руководство применительно к ядру серии 2.2, но судя
по всему и здесь проблем быть не должно.
Если вы установили ядро из дистрибутива, то необходимым условием будет
так же установка базовых пакетов разработчика (make, gcc, autotool и т.д.).
Установка драйвера
Пользуясь случаем хочу... Нет всего лишь передать привет разработчикам
дистрибутива ASPLinux. Если бы не их настойчивое желание сделать Linux
похожим на часы партизанские с семью стрелками, я бы управился
быстрее. Итак, приступим. Для начала скачаем сам драйвер, допустим в
каталог /opt, и там его распакуем.
cd /opt
wget -c http://easynews.dl.sourceforge.net/sourceforge/accessrunner/cxacru.tar.bz2
bzcat cxacru.tar.bz2 | tar -xf-
Далее по накатанной дорожке.
cd /opt/cxacru
make
А здесь начались сюрпризы. Драйвера то оказывается мало. Нужен еще и
пакет linux-atm. Ну ладно.
cd /opt
wget -c http://easynews.dl.sourceforge.net/sourceforge/linux-atm/linux-atm-2.4.1.tar.gz
tar -xzf linux-atm-2.4.1.tar.gz
cd linux-atm-2.4.1
./configure
make
И опять сюрприз. И вот тут самое время вспомнить о переданном ранее
привете. Давайте исправим недочет в устройстве ASPLinux.
cd /usr/src
rm -f linux-2.4 linux-2.6 linux # удаляем старые ссылки
ln -s linux-2.6.6 linux-2.6 # если у нас есть ядро 2.6
ln -s linux-2.4.26 linux-2.4 # если у нас есть ядро 2.4
ln -s linux linux-2.6 # или ln -s linux linux-2.4, если работаем с ядром 2.4
cd /usr/include
mv asm asm_distrib # на всякий случай оставим оригинальные версии
mv linux linux_distrib # хотя их назначение для меня загадка
ln -s ./../src/linux/include/asm-i386 asm
ln -s ./../src/linux/include/linux linux
Этими действиями мы установили символические ссылки на включаемые
файлы текущего ядра для сборки программ из исходных текстов. Теперь,
если программа использует заголовочные файлы ядра, она берет их именно
из текущей версии ядра (подразумевается, что исходные тексты
последнего ядра распакованы в каталог /usr/src).
Вот теперь самое время, наконец-то собрать linux-atm.
cd /opt/linux-atm-2.4.1
./configure --prefix=/usr
make
make install
ldconfig
Ну и на последок, привожу распечатку моего патча к данной версии
драйвера. Надеюсь, в скором будущем его включат в непосредственно в
проект ACCESSRUNNER. И еще, так как у меня ядро серии 2.6, я должен
запускать make new. Ради интереса, я собрал модуль для ядра серии 2.4
таким же образом и он заработал. Так что рекомендую поступать именно
так.
Авторы этого проекта, видимо люди неординарные. Они посчитали запуск
make install излишней роскошью, ну да и ладно.
Постамбула
На последок, стоит заметить, что модем можно стартовать как сервис. В
каталоге /opt/cxacru/scripts/service обнаружится готовый к
употреблению скрипт. Допустим так:
cp /opt/cxacru/scripts/service/cxacru /etc/rc.d/init.d/cxacru
/sbin/chkconfig -add cxacru
/sbin/chkconfig --level 01246 cxacru off
/sbin/chkconfig --level 35 cxacru on
Ну и, конечно, нужно записать в файл /etc/cxacru данные из WebPlus.ins
на диске с драйверами для Windows.
Иногда, по невыясненным пока причинам, при загрузке модем не
обнаруживается и сервис выходит с кодом ошибки. Лечить такое поведение
следует отключением от модема шнура USB (с последующим включением его
назад) и перезапуском сервиса:
/etc/rc.d/init.d/cxacru restart
файлы, содержащиеся в этой статье можно скачать прямо отсюда
А если у Вас нет желания обновлять ядро до последней версии (что я бы
всё-таки рекомендовал сделать), то в этом нет ничего страшного. Просто
создайте необходимые символические ссылки в каталоге /usr/include и
/usr/src (ну и конечно, установите пакет KERNEL-SOURCE). Этих действий
вполне достаточно чтобы оживить данный модем.
Ну, и конечно, оригинал этой статьи (и возможно исправления к ней, с
работающими ссылками на файлы) можно найти в интернете по адресу
http://user.rol.ru/~minlaw/omni-adsl-usb-ee-howto.html. Можно написать
мне по адресу MinimumLaw@Rambler.Ru.
737 Прочтений • [Настройка ADSL модема ZyXEL OMNI ADSL EE с USB интерфейсом под Linux (xdsl modem linux usb)] [08.05.2012] [Комментариев: 0]