unmadindu_NO_SPAM_@Softhome.net
j.stifter_NO_SPAM_@medres.ch
История изменений |
||
---|---|---|
Revision 2.5.10 | 4 декабря 2002 | |
Добавлен новый раздел в FAQ и другие
мелкие изминения |
||
Revision 2.5.9 | 11 ноября 2002 | |
Добавлена информация в драйверах,
откорректирован и проверен FAQ c gcc 3 |
||
Revision 2.5.8 | 10 ноября 2002 | |
Добавлена информация о gcc 3.0 ,
исправление типов и другие мелкие коррекции |
||
Revision 2.5.6 | 21сентября 2002 | |
Крупные изминения в секции FAQ на
основе устранения общих ошибок |
||
Revision 2.5.5 | 17 августа 2002 | |
Сделаны исправления в секции драйверов и другие добавления | ||
Revision 2.5.1 | 20 июля 2002 | |
Сделаны исправления в секции
драйверов и другие добавления |
||
Revision 2.50 | 6 июня 2002 | |
Сделаны исправления в секции
драйверов и секции FAQ, добавлена информация в базе данных, другие
коррекции |
||
Revision 2.00 | 30 марта 2002 | |
Сделаны исправления в секции
драйверов, другие исправленя |
||
Revision 1.10 | 4 декабря 2001 | |
Исправление sgml Greg Ferguson,
Изминение лицензии на GFDL, минимальные исправления |
||
Revision 1.00 | 26 ноября 2001 г |
|
Первый релиз |
Copyright б╘ 2002-2003 Sayamindu Dasgupta, Jan Stifter. Разрешено копировать, распределять и/или изменить этот документ в соответствии с GNU Свободной Документационной Лицензией, Версией 1.1 или любой более поздней версией, изданной Фондом бесплатного программного обеспечения.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections , with no Front-Cover Texts , and with no Back-Cover Texts . A copy of the license is included in the section entitled "GNU Free Documentation License".
Последнии версии этого mini-HOWTO можно всегда получить на homepage (большое спасибо Peaceful Action за хостинг моей странички ) в следующих форматах:
HTML.
plain text (простой текст) .
PDF.
RTF.
compressed html (multiple pages format). (сжатый html)
SGML source. (исходный текст на SGML)
Большое спасибо участникам рассылки discuss@linmodems.org, замечания
которых были очень полезны , особенно в начальной стадии написании
howto. Я также чрезвычайно благодарен Филу Ричарду Берчиллу, Rajesh
Fowkar, KV Pham, Браму Вонку, Дереку Кордеиро, Стивену Сангстеру и
Эндрю Кару (akar) за их ценные предложения и исправления.
Sgml-материал был сделан со помощью шаблона, написанного Stein Gjoen,
Григорием Лебланком и Грэгом Фергусоном. Я также обязан Грэгу Фергусону
за исправление ошибок, которые я сделал в Docbook:-).
Если у Вас есть какие-нибудь комментарии, идеи, добавления, коррекции и т.п., пожалуйста пишите мне по e-mail : <unmadindu_NO_SPAM_@Softhome.net>. Но для технических вопросов, вы можете обратиться в рассылку discuss@linmodems.org .
Пожалуйста, не пишите о своих проблемах . я Вам НЕ отвечу. Вопросы задавайте в discuss@linmodems.org. |
Португальский перевод Rafael Cardoso <rafamvc_NO_SPAM_@yahoo.com.br>
Русский перевод Хихина Руслана <ruslandh_NO_SPAM_@narod.ru>
В документе используется специальные форматы текста для отображения
предупреждений, комманд, имен файлов и т.п.
bash$ ls
NOTE: |
Опасно ! |
Информация |
Предупреждения |
/usr/src/linux/
application
no such file or directory
#! /bin/bash |
logfile begins |
Целью этого документа было создать руководство по настройке и установки PCTel HSP MicroModem в GNU/Linux.
Во-первых давайте объясним зачем нужно специальное руководство по
модему PCTel.
Эти модемы входят в специальный класс аппаратуры, разработанной для
Windows и имеют драйвера, ориентированные на Windows
Эти модемы также называют win-модемами (Winmodems) и у них есть
определенные проблемы при работе в GNU/Linux.
Большинство win-модемов не работают в GNU/Linux (производители
используют патентованные технологии и такие драйвера не могут
разрабатываться под лицензией GNU). Но для некоторых модемов имеются
готовые драйвера под Linux, они называются Lin-модемами (Linmodems).
PCTel модемы входят в эту категорию Lin-модемов.
Пожалуйста обратите внимание, что PCTel
представляет составляющие её собственность драйвера, а в свободном мире
GNU/Linux, составляющие собственность фирмы драйвера - не решение. Эти
драйвера, могут оказываться, большой угрозой, для развития и созревания
Свободного Программного Движения. Так, в самом начале, пожалуйста
рассмотрите, хотите ли Вы сдать вашу "свободу" фирме PCTel, или Вам
лучше купить новый модем, который имеет GPL'ed драйвер. Я понимаю, что
для многих, покупка нового модема - не возможна, и поэтому существует
это руководство. Но независимо от того, что Вашего решения , пожалуйста
пошлите e-mail г. Джеку Селлеру из Общественного отдела Отношения
PCTel's по этому
адресу, с просьбой , чтобы PCTel выпустила исходный текст
их драйверов. |
Хотя я говорю PCTel модемы, фактически PCTel только производит
чипы для этих модемов, так если у Вас есть XXX модем, и Вы получаете
сообщение 00:09.0 Communication controller:
PCTel Inc HSP MicroModem 56 (rev 01) bash$ lspci то это означает, что у Вас PCTel Lin-модем. |
Теперь позвольте задать очевидный вопрос - где взять драйвера ??
Хорошо, если Вы нетерпеливы, и если Вы имеете ядро 2.4x ряда, тогда
идите на http://linmodems.technion.ac.il/pctel-linux/,
а если у Вас ядро 2.2.x и старшеs, идите на http://modems.dewback.cl
(точная ссылка на файл
http://modems.dewback.cl/pctel-2.2.tar.gz )
Но есть множество драйверов на обоих сайтах, так что вы можете невольно почувствовать некоторое смущение просматривая их.
Версия драйвера зависит от версии вашего ядра. Узнать версию вашего
ядра вы можете используя следующую команду :
uname -r
Если вы увидете что-то подобное 2.2.x идите на http://modems.dewback.cl и загрузите pctel 2.2x драйвера из PCTel раздела этого сайта.
Если вы увидете что-то подобное 2.4.x идите на http://linmodems.technion.ac.il/pctel-linux/ и загрузите pctel 0.9.6 (pctel-0.9.6.tar.gz) драйвера с этого сайта.
Также обратите внимание, что только pctel 0.9.6 драйвер имеет поддержку для новых AMR модемов. |
Первое необходимое для инсталляции - у Вас должен быть исходный
текст ядра в /usr/src/linux/(см. раздел 7.7)
и оно должно быть сконфигурировано, то есть Вы должны были выполнить
команды
bash$ make configure
и
bash$ make dep
для него.
При выполнении их удостоверяется, что у Вас есть исходный текст
для вашего ядра ... например, если Вас выполняется ядро 2.4.8, а у
Вас имеется исходный текст для ядра 2.4.9 в/usr/src/linux/, то драйвера
PCTel не могут работать.
Кроме того, Вы должны конфигурировать ядро с isapnp, и pnp
поддержкой и позаботится о факте, что у Вас есть соответствие smp/uni
(ядра для двух или одного процессора) ядра, и исходного текста ядра
(т.е. если у Вас smp ядро, а исходный текст ядра up, то драйвер то-же
не будет работать). Также Вам необходимо, что-бы ядро поддерживало
загрузку модулей.
И конечно, Вы должны иметь установленный gcc, проверить это можно ,
дав команду
bash$ gcc -v .
Если Вы не получаете никаких ошибок, то все в порядке.
Если у Вас gcc версии 3 или выше и у Вас возникли проблемы с компиляцией, пожалуйста посмотрите этот раздел в FAQ. |
Войдите как root.
Проверьте, что у Вас ядро версии 2.2.x командой
bash$ uname -r
Проверьте, что вы находитесь в директории с загруженными файлами
командами
bash$ ls
Затем распакуйте загруженные файлы командой
bash$ tar -xzvf pctel-2.2.tar.gz
Послк распаковки перейдите в директорию ~/pctel
командой
bash$ cd pctel/
Есть инсталляционный сценарий (install.sh) , который делает работу
более легкой.
Сделайте скрипт исполняемым командой
bash$ chmod +x install.sh
Теперю запустите скрипт
bash$ ./install.sh
Вы увидите множество сообщений о то что соответствующие файлы
устройства сделаны в каталоге/dev/, файлы драйвера распакованы и затем
компилируются и загружены в память.
Как только процесс будет закончен без сообщений об ошибках (если Вы получаете ошибки, переходите к разделу поиска неисправностей ), Вы найдете, что в директории lib / был создан новый каталог с именем ~/pctel/. Этот каталог ~/pctel/lib/содержит драйверы/модули, которые могут быть загружены ядром.
Если вы перейдете в директорий ~/pctel/lib/
используя команду
bash$ cd ~/pctel/lib/
и выполните команду
bash$ ls
то Вы увидете здесь два файла pctel.o
и ptserial.o
Это два модуля, которые нелбходимо загрузить для работы модема.
Для загрузки модулей, Вы можете выполнить команды
bash$ insmod pctel.o
bash$ insmod ptserial.o
из директории ~/pctel/lib/
(Скрипт install.sh автоматически загружает эти модули, но после
перезагрузки их нужно будет загрузить командами (если их не прописать в
/etc/config.modules )
bash$ cd `your pctel directory`/lib/
bash$ insmod pctel.o
bash$ insmod ptserial.o )
Проверьте, что у Вас ядро версии 2.4.0 или выше командой
bash$ uname -r
Распакуйте загруженные файлы командой
bash$ tar -xzvf pctel-0.9.6.tar.gz
Затем перейдите в директорию pctel-0.9.6 командой
bash$ cd pctel-0.9.6/
Затем начтупает трудная часть установки.
Для последуюших операций Вам надо знать, какой чип установлен в
Вашем модеме
Посмотрите раздел 9.4 для
полученее более подробной информации.
Только зная какой чип установлен в Вашем модеме, вы можете выподнять
следующие команды (в зависимости от чипа)
Если у вас установлен PCT 789 чип
bash$ ./configure --with-hal=pct789
Если у вас установлен CM8738,
bash$ ./configure -with-hal=cm8738
Если Вы имеете чипа, интегрированный с i8 ** чипами, то устанавливается
bash$ ./configure --with-hal=i8xx
Если у Вас установлен чип, интегрированный с материнской платой VIA
686a
bash$ ./configure --with-hal=via686a
Сценарий выбора конфигурации выполнится, и появится множество сообщений . Проверите сообщения об ошибках, которые могут появиться при выполнении этого скрипта. Когда Вы выполните эту команду и получите приглашение bash, (и если у Вас не появятся сообщения об ошибках), собирите драйверы командой
bash$ make
Если у Вас не появится ни одной ошибки, установите драйвер командой
bash$ make install
(Последний шаг требует, что-бы вы вошли с правами root)
Теперь загрузите модули драйвера командами
bash$ insmod pctel
bash$ insmod ptserial
NOTE: Эти команды могут выполняться из любой директории и команда insmod сама найдет модули драйвера pctel.o и ptserial.o в /lib/modules/`ВЕРСИЯ_ВАШЕГО_ЯДРА`/misc/)
NOTE: Если у Вас аоявилось сообщение configure: |
Если у Вас AMR модем, Вы должны использовать драйвера версии 0.9.6.
Используйте этот драйвер, только если у Вас возникли проблемы с pctel-0.9.6 драйверами |
Проверьте, что у Вас ядро версии 2.4.0 или выше командой
bash$ uname -r
Распакуйте загруженные файлы командой
bash$ tar -xzvf 0.8.6.tar
Теперь Вам надо перейти в директорию pctel-0.8.6 командой
bash$ cd pctel-0.8.6/
Теперь самая сложная часть
Для последуюших операций Вам надо знать, какой чип установлен в
Вашем модеме
Посмотрите раздел 9.4 для
полученее более подробной информации.
Только зная какой чип установлен в Вашем модеме, вы можете выподнять
следующие команды (в зависимости от чипа)
bash$ ./configure --with-hal=pct789
Для CM8738 чипа,
bash$ ./configure -with-hal=cm8738
Если у Вас установлен чип интегрированный с Intel 810 установленный
на материнской плате Intel,
bash$ ./configure --with-hal=i810intel
Если у Вас установлен чип интегрированный с Intel 810 установленный
на материнской плате SISl,
bash$ ./configure --with-hal=i810sis
Если у Вас установлен чип интегрированный с материнской платой VIA
686a,
bash$ ./configure --with-hal=via686a
Сценарий выбора конфигурации выполнится, и появится множество
сообщений . Проверите сообщения об ошибках, которые могут появиться при
выполнении этого скрипта. Когда Вы выполните эту команду и получите
приглашение bash, (и если у Вас не появятся сообщения об ошибках),
собирите драйверы командой
bash$ make
Если у Вас не появится ни одной ошибки, установите драйвер командой
bash$ make install
(Последний шаг требует, что-бы вы вошли с правами root)
bash$ insmod pctel
bash$ insmod ptserial
(все также как и с pctel-0.9.6 драйверами , команды могут выполняться из любой директории . Команда insmod сама найдет модули драйвера pctel.o и ptserial.o в /lib/modules/`ВЕРСИЯ_ВАШЕГО_ЯДРА`/misc/)
Есть только один способ проверить, работают ли драйверы или нет. Вы
будете должны увидеть, найден ли ваш модем или нет.
Драйвер создает node (логическое устройство) для вашего модема в
/dev/ttyS15, независимо от того какой com порт определяет M$DOS/M$
Windows. Создается символическая ссылка /dev/modem на /dev/ttyS15 и
поскольку большинство программ ищет модем в/dev/modem , Вам не нужно
будет играть с параметрами настройки/конфигурациями этих программ.
Программа, что я использую, чтобы проверить мой модем в GNU/Linux -
minicom. Если Вы имеете установленный minicom, что Вы должны сделать -
набрать
bash$ minicom
в оболочке shell или в окне эмулятора терминала . Если все в порядке, Вы увидете Инициализирующее сообщение модема в течение нескольких секунд и затем экран с мигающим курсором. Наберите ATZ , и нажмите клавишу ENTER. Если Вы видите сообщение OK, то мои поздравления, Ваш модем работает в GNU/Linux. Напечатайте ATI 3, и нажмите ENTER, и Вы увидете PCtel HSP56 Микромодемный вывод. Если Вы получаете сообщение об ошибках, или если Вы будете не в состоянии установить связь модемом, посмотрите раздел поиска неисправностей. Если-же все в порядке, Вы можете конфигурировать ваше программное обеспечение - программы номеронабирателя и соединения с интернетом, и пожалуйста потратьте некоторое время, чтобы поместить вашу модемную информацию в базе данных совместимости на http://pctelcompdb.sourceforge.net.. Вы можете рассматривать это как помощь автору. См. этот раздел для более подробной информации..
Еще несколько пунктов, которые Вы могли бы найти интересными /
полезными.
Были много проблем по --with-hal- опции, которая должна
использоваться со сценарием выбора конфигурации, и для которой, я
составил программу MySQL-PHP, которая принимает информацию от модемных
владельцев, так, чтобы новички могли просмотривать и искать в базе
данных, чипсеты их модемов. Если Вы имеете PCTel модем, то, пожалуйста
предоставьте вашу модемную информацию на http://pctelcompdb.sourceforge.net
Если у Вас есть модули pctel.o и ptserial.o в директории /lib/modules/`your kernel version`/misc/ , в вы можете добавить строки в Ваш файл /etc/modules.confдля автоматической загрузки модулей драйвера Вашего модема:
# for pctel modem |
запустите
bash$ depmod -a
после модификации Вашего /etc/modules.conf .
В этом случае запуск pppd автоматически загрузит модули модема. Вы
можете также написать некоторые shell - скрипты и поместить их в вашем
/usr/bin директории (Я поместил примеры некоторых скриптов в разделе
приложений)
Для модуля ptserial.o можно так-же
определить код страны, хотя для большинства ситуаций, значение по
умолчанию США в порядке.(Для России лучше поставить код Канады)
Если Вы хотите определить код страны, загрузите ptserial.o модуль
командой
bash$ insmod ptserial country_code=x
(где x - код выбранной Вами страны) Список стран смотри ниже.
Table 1. Коды стран (Country Codes)
Country Name | country_code |
---|---|
USA | 1 |
France | 2 |
Germany | 3 |
Italy | 4 |
Sweden | 5 |
UK | 6 |
Japan | 7 |
Australia | 8 |
Spain | 9 |
Taiwan | 10 |
Singapore | 11 |
Korea | 12 |
Switzerland | 13 |
Norway | 14 |
Netherlands | 15 |
Belgium | 16 |
Canada | 17 |
Ireland | 18 |
Portugal | 19 |
Polan | 20 |
Hungary | 21 |
Finland | 22 |
Denmark | 23 |
Austria | 24 |
South Africa | 25 |
CTR21 Countries | 26 |
China | 27 |
Malaysia | 28 |
Luxumburg | 29 |
Greece | 30 |
Iceland | 31 |
New Zealand | 32 |
Brazil | 33 |
Можно так-же использовать другие опции при загрузке модуля
ptserial.o :
Для всех HAL :
- irq: Установка используемого прерывания.
- iobase: Установка используемых адресов ввода/вывода .
Только для I810/VAI686A HALs:
- iobase1: Установка iobase 1
NOTE: Если Вы хотите установить iobase или iobase1, Вы должны также установить irq /iobase/iobase1 . |
Только для CM8738/PCT789 HALs:
- vendor_id: vendor ID модема
- device_id: device ID модема..
NOTE: vendor_id и device_id должны использоваться одновременно, но Вы не можете комбинировать , эти две опции с iobase, iobase преобладают над определением(vendor/device)_id . |
Когда Вы загружаете модули, первым должен загружаться модуль pctel.o
bash$ insmod pctel
а затем ptserial.o
bash$ insmod ptserial
При выгрузке порядок обратный,
bash$ rmmod ptserial
bash$ rmmod pctel
Существует серьёзный дефект в драйверах для ядра
2.4x, модем часто, кажется, останавливается, зависает при наборе номера
, и Вы получаете только beeeeeeeeee ... звук от модемного спикера и
позже, программа - номеронабиратель не дает сообщение
No Carrier и разъединяет связь.
Эта проблема не имеет никакого реального решения, но иногда выгрузка
и перезагрузка модулей восстанавливает работу. Для этого нужно выполнить
команды (предпологается, что модули в
/lib/modules/'Ваша_версия_ядра`/misc/)
bash$ rmmod ptserial
bash$ rmmod pctel
bash$ insmod pctel
bash$ insmod ptserial
Вы должны выйти от вашей программы - номеронабирателя перед попыткой выгрузить модули драйвера, иначе Вы получите сообщение об ошибке : a device or resource busy . (устройство или ресурс заняты) |
Когда проблемы становятся слишком острыми, единственным решением,
остается перезагрузка
Также замечалось, что иногда, эта проблема - зависима от ISP провайдера, с появлением этой проблемы при использовании определенного ISP провайдера.
Если Вы получаете ошибку,
/usr/src/linux/include/linux/modversions.h :
no such file or directory ,посмотрите смотрите в вашем /usr/src
исходный текст вашего ядра. Местоположение по умолчанию
-/usr/src/linux/, но в некоторых дистрибутивах исходные тексты ядра
могут рачпологаться где-нибудь еще.
Если Вы нашли эти файлы в директории /usr/src/myspecialsource/,
не переносите эти файлы, лучше сделайте символическую ссылку командой
bash$ ln -s /usr/src/myspecialdirectory/ /usr/src/linux/
В случае PCTel-0.8.6 или более новых драйверов Вы можете также
определить местоположение вашего источника исходных текстов ядра,
используя опцию |
Поскольку большинство компьютеров разработано для операционных систем M$-Windows, BIOS компьютера предполагает, что Вы имеете, установку " PnP OS installed ". Это может причинять неприятность с этими типами модемов в GNU/Linux (особенно, если Вы имеете конфликты ресурсов) и так лучший выбор установить опцию " PnP OS installed " в "Нет". Чтобы сделать это, Вы должны исполнить следующие шаги:
В момент запуска, когда Вы видите сообщение "Memory Test" "
информацию ЦЕНТРАЛЬНОГО ПРОЦЕССОРА, или информацию BIOS, нажмите клавишу
DEL (если это не работает, обычно ни одна из Функцииональных (Fx)
клавиш ..- посмотрите в вашем руководстве).
Вы будете перейдете в меню конфигурации BIOS. Выберите раздел "
PNP/PCI Конфигурация ", и установите опцию для " PNP OS installed " в
"No". Сохраните изменения, которые Вы сделали, и затем перезагружайтесь.
Этоесть не применимо ко всем BIOS, и Вам советуют проконсультироваться с вашей документацией PC, если Вас особенный вид меню конфигурации BIOS. |
Существуют некоторые PCTel чипы, которые устанавливают в AMR слоты вместо нормальных PCI слотов. Они обычно идентифицируютя чере команду bash$ lspci как HSP MR. Эти модемы поддержаны только pctel-0.9.6 драйверами.
Недавно, были некоторые отправления в discuss@linmodems.org списке,
что PCTel модули работали только после того, как звуковые модули были
выгружены с помощью команды
bash$ rmmod
Если Вы не получаете ответа от вашего модема даже после того, как
pctel.o и ptserial.o модули были загружены, то Вы можете попробовать
выгрузить звуковые модули, и затем перезаряжать PCTel модули. Однако,
эта проблема не происходит, если Вы используете коммерческий ($$$)
драйвера от
www.opensound.com
Набор общих проблем, с которыми Вы можете столкнуться, и их возможные решения.
8.1.1. Я получил собщение сonfigure: error: You must have linux kernel >= 2.4.0 installed during ./configure
Если это происходит, Вам необходимо исправить ваш скрипт configure. Загрузите файл configure.patch отсюда, и дайте команду :
cat configure.patch | patch -p0
Я преполагаю, что Вы находитесь в директории pctel-0.9.6 и файл e configure.patch также находтся в той-же директории |
Вам необходимо иметь исходные тексты ядра в директории /usr/src/linux/
Если исходные текста ядра установлены в другом месте, просто
сделайте символическую ссылку на это место (более подробно см раздел 7.7 )
Если исходный текст ядра установлен в /usr/src/linux/, перейдите в /usr/src/linux/
и выполните команды :
bash$ make config
bash$ make dep
permission denied error while
running bash$ make install
Вам необходимо войти в систему c правами root и дать команду :
bash$ make install
8.1.4. У меня стоит gcc 3 и при
компиляции, я ролучаю сообщение, похожее на это
<command line>:1:13: multi-line string
literals are deprecated make[3]: *** [ptserial.o] Error 1.
Этого в принципе не должно больше
случаться, так как версия pctel-0.9.6 драйвера была выпущена, чтобы
исправить эту проблему. Однако, если Вы все столнулись с этой прблемой,
(более высокая версия ядра, gcc или т.п.), Вам нужно отредактировать
файл
< ваш pctel каталог > src/ptserial/Makefile. В этом файле,
найдите строку, которая содержит :
CFLAGS = -D__KERNEL__ -Werror -Wno-trigraphs -fno-common -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -DMODULE -DMODVERSIONS -DEXPORT_SYMTAB -D$(HAL_TARGET) $(AUDIO_ROUTING) -DBUILD_SYSTEM=\""$(BUILD_SYSTEM)\"" -DGCC_VERSION=\""$(GCC_VERSION)\"" -I$(top_srcdir)/include -I$(KERNEL_INCLUDES) -include $(KERNEL_INCLUDES)/linux/modversions.h |
и измените её на
CFLAGS = -D__KERNEL__ -Wno-trigraphs -fno-common -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -DMODULE -DMODVERSIONS -DEXPORT_SYMTAB -D$(HAL_TARGET) $(AUDIO_ROUTING) -DBUILD_SYSTEM=\""$(BUILD_SYSTEM)\"" -DGCC_VERSION=\""$(GCC_VERSION)\"" -I$(top_srcdir)/include -I$(KERNEL_INCLUDES) -include $(KERNEL_INCLUDES)/linux/modversions.h |
....и перекомпилите пакет.
Если Вы не находите файл src/ptserial/Makefile, запустите скрипт еще раз. |
Альтернативно, вы можете также применить пред-компилируемый
(специфичный для дистрибутива) драйвера в http://www.geocities.com/jcmp3/.
Только обратите внимание, что я лично не проверил этих драйверов, и я
не много знаюю о них.
См. предыдущий предыдущий пункт (8.1.4).
8.2.1. Я получил сообщение unresolved symbols.... при загрузке модулей
I get unresolved symbols.... messages while loading the modules
Во-первых, проверьте, что модуль ptserial.o
загружен после модуля pctel.o.
bash$ uname -r
и затем проверьте, что у Вас есть все правильно в /usr/src/linux.
в директории /usr/src/linux/ Moreover, if you have a running kernel for a uniprocessor machine and have kernel source in /usr/src/linux/ that is configured for smp support, then you will get unresolved symbols. A method to check whether you have a smp supporting source is by running bash$ make menuconfig in /usr/src/linux/ и посмотрев выбрана-ли поддержка многопроцессорности.
Другой метод избавляться от неопределенных символических переменных
в драйвере состоит в том, чтобы использовать скрипт fixscript из http://linmodems.technion.ac.il/pctel-linux/fixscript.gz
Процедура его использования такая :
Разархивировать скрипт командой
bash$ gzip -d fixscript.gz
Сделать его исполняемым
bash$ chmod +x fixscript
Переименовать модули pctel.o и ptserial.o в old_pctel.o и old_ptserial.o соответственно
bash$ cp pctel.o old_pctel.o
bash$ cp ptserial.o old_ptserialel.o
bash$ ./fixscript old_pctel.o pctel.o
Загрузить новый модуль pctel.o
bash$ insmod pctel.o
Запустить скрипт для модуля pcserial.o командой
bash$ ./fixscript old_ptserial.o ptserialel.o
Загрузить новый модуль ptserialel.o
bash$ insmod ptserialel.o
Если fixscript Выдает сообщение, подобное :
objcopy: --redefine-sym: Symbol x is target of more than one redefinition
тогда fixscript не сможет Вам помочь.
Лучший метод - конечно, устанавливать исходные тексты ядра и повторно собрать драйвера.
Проверьте, что Вы дали команду
bash$ make clean
перед перекомпиляцией драйвера
Вы должны иметь права root, что-бы загрузить драйвер, вы можете войти в root с помощью команды (Вы должны знать пароль root)
bash$ su
и загрузить драйвера (войти в систему с правами root можно и другими способами).
8.2.3. Я получил предупреждение :
Warning: loading
/lib/modules/2.4.19/misc/ptserial.o will taint the kernel: non-GPL
license - GPL linked with proprietary libraries
при загрузке модулей.
Это сообщение только сообщает Вам, что Вы загружаете
модуль, который не поддержан Linux разработчиками ядра. Это также
служит предупреждением, что драйвера не были официально проверены с
ядром, и могут причинять проблемы, и сообщают Вам, что Вы не должны
посылать сообщения об ошибках разработчикам ядра Linux, если Вы
сталкнетесь с неустойчивостью системы или любыми другими проблемами
после загрузки этих драйверов.
Примечание:
Это - не сообщение об ошибках, а только напоминание Вам, что Вы используете коммерческий модуль. |
8.2.4. Я получил сообщение при загрузке
модуля :
The module you are trying to load
(/lib/modules/2.4.18-14/misc/pctel.o) is compiled with a gcc version 2
compiler, while the kernel you are running is compiled with a gcc
version 3 compiler. This is known to not work. message while loading
the modules.
Модуль, который Вы пробуете загружать
(/lib/modules/2.4.18-14/misc/pctel.o), компилируется с gcc компилятором
версии 2, в то время как ядро, которое Вы выполняете, компилировалось с
gcc компилятором версии 3. Это, как известно, не работает. Наилучшим
вариантом было-бы настроить компиляцию gcc, что-бы при компиляции
модулей использовался та-же версия gcc, которым было скомпилировано ядро
Для этого надо установить пакеты компиляции соответствующей версии и
выполнения команды выбора компилятора, например для gcc 3.2
select_gcc 3.2
Другой способ это загрузить модули "насильно" командами insmod -f pctel и insmod -f ptserial вместо insmod pctel и insmod ptserial.
Только запомните - это не
очень хороший прием |
8.3.1. Я получил сообщение об ошибке /dev/modem no such device (Устроство /dev/modem не существует).
Прежде всего, проверьте, действительно-ли загрузились
дайвера командой
bash$ lsmod | grep ptserial
Вы должны увидеть, что модули pctel и ptserial корректно загружены из сообщения, подобные этому :
Module Size Used by |
Если нет, то вы должны попытаться их загрузить повторно :
Также проверьте, что файл /dev/moden это символьная ссылка на
устройство /dev/ttyS15
Помните, даже если MS DOS или Microsoft Windows сообщают Вам, что
модем находится в com 3 или com 4, в GNU/Linux, драйвер создает
устройство /dev/ttyS15 (эквивалент Microsoft - com 16 !!)
Если Вы сомнениваетесь, я предлагаю, чтобы Вы пересоздали файлы
устройства командами
bash$ rmmod ptserial
bash$ rmmod pctel
bash$ rm /dev/ttyS15 ═/dev/modem
bash$ mknod /dev/ttyS15 c 62 79
NOTE: Номера стоящие после/devttyS15 - распределение, определяемое
дистрибутивом , пораметр c 62 79 работает с Red
Hat Linux и близким к ним дистрибутивам. Если У Вас любое другое
распределение устройств, пожалуйста выберите их по вашей документации к
дистрибутиву (или ядру).
bash$ chgrp uucp /dev/ttyS15
bash$ chmod 666 ═/dev/ttyS15
bash$ ln -s /dev/ttyS15 /dev/modem
Это программная ошибка драйвера при работе с ядром серии 2.4.x
Подробнее смотри в разделе 7.6
Это обычно решается, добавляя ATX3 к инициализационной
строке модема. Процесс добавления ATX3 к инициализационной строке
меняется в зависимости от программы - номеронабирателя, которую Вы
используете.
Например, если Вы используете wvdial, Вы должны добавить X3 в конце
строки Init2 в файле /etc/wvdial.conf.
Если-же Вы используете KPPP, Вам необходимо бедет добавить ATX3 в
строке поля Initialization String 1,
которая находится в диалоге: Установка параметров KPPP -> Модем
-> Команды Модема .
.
Во-первых, посмотрите загружены-ли модули драйвера, а щатем проверьте, не использует-ли какая-нибудь еще программ модем. Если все, окажется в порядке, то попробуйте определить прерывание (irq) вашего модема командой:
bash$ lspci -v
Если покзываемый irq очевидно неправилен (например, равен 0), или не
соответствует вашей конфигурации M$-Windows, тогда назначьте
неиспользуемое irq командой :
t (like 0) (or does not tally with your M$-Windows configuration) then
either use the setserial command
bash$ setserial /dev/ttyS15 irq xxx
(где xxx - это irq вашего модема)
или у Вас проблемы с установками BIOS (см. раздел 7.8)
Другой возможностью может быть то, что ваши звуковые драйвера находятся в противоречии с PCTel модулями. Подробности посмотрите в разделе 7.10
Посмотрите вывод команды
bash$ tail /var/log/messages
Она выдает Вам Всю информацию о Вашей машине. Если что - нибудь идет
не так, то это отразиться в выводе . Нормальный вывод, касаемый
модема должен быть подобен этому :
Nov 11 10:50:24 localhost kernel: PCTel device[00:09.0](0x48) found "PCTel Inc HSP MicroModem 56 (rev 01)", iobase=0xe400, irq=12. |
Можно отфильтровать строки, в которых есть слова PCTel и ttyS15
соответствующими командами :
bash$ tail /var/log/messages | grep PCTel
bash$ tail /var/log/messages | grep ttyS15
Вы можеть отправить вывод, которого Вы получили по e-mail в рассылку <discuss@linmodems.org> (подробнее см. 9.2.2 ), и дожидаться ответа. :)
#! /bin/bash |
Если Вы сохраните этот файл под именем modemon, то для его
использования, выполните команды :
bash$ chmod 700 modemon
bash$ cp modemon /usr/bin/modemon
Теперь всегда командой
bash$ modemon
Вы сможите загрузить модули драйвера.
Здесь перечислены адреса сайтов и списков рассылок, где Вам могут помочь при конфигурировании Вашего модема .
Неофициальный сайт драйвера pctel для Linux http://linmodems.technion.ac.il/pctel-linux/
Неофициальная база Lin-модемов совместимых с PCTel http://pctelcompdb.sourceforge.net.
Сайт Lin-модемов (главный сайт всех проектов по lin-модемам) http://www.linmodems.org
Громадный список Win/Lin-модемов http://www.idir.net/~gromitkc/winmodem.html
Список модемных команд AT модемов PCTel http://www.pctel.com/atcommands_dev.htm
Последняя информация по Lin-модемам http://linmodems.technion.ac.il/.
Linmodem-howto доступен здесь http://www.linuxdoc.org/HOWTO/Linmodem-HOWTO.html.
Наиболее важная рассылка по Lin-модемам
Вы можете подписаться на нее по адресу http://www.linmodems.org или послав пустое письмо по e-mail <discuss-subscribe@linmodems.org> .
Существует мноожество изготовителей PCTel модемов (Dax, Zoltrix,
Lectron, Tiacom и т.д) , которые поставляют linux драйверы для своих
модемов,
Фактически большинство (если не все) эти драйвера - это слегка
измененые виды драйверов обычного PCTel драйвера, и в большинстве
случааях, нет никакого смысла в их загрузке.
Также , Вы можете испытывать пред-компилируемый
(дистрибутиво-зависимые) драйвера с http://www.geocities.com/jcmp3/.
Только обратите внимание, что лично я не проверил эти драйвера, и я
немного знаю о них.
Кроме того, в ранних версиях 2.4x ядра, Томас Врайт сделали PCTel
драйвер, и Вы можете найти этот драйвер на его сайте http://www.geocities.com/tom_in_rc/.
Наилучший способ идентифицировать набор чипа вашего модема состоит в
том, чтобы снять кожух системного блока, мягко выдвиньте модем от
своего слота (только если это не интегрированный в материнскую плату
драйвер), и посмотреть название, напечатанное на черном чипе на модеме.
(Будьте очень очень осторожны при выполнении, и удостоверьтесь, что все
источники питания отключены, и коснитесь "земли" металлической
поверхностью перед работой с любой платой/проводом в машине).
Но иногда, это - не возможно и Вы должны быть готовы применить другие
методы.
Следующий по надежности метод - дать команду
bash$ lspci -n
Команда долна выдать номер PCTid вашего модема (Вам, возиожно
придется дать команду bash$ lspci для проверки
соответствия id устройств)
и Вы должны будете проверить этот номер на http://www.yourvote.com/pci/
This command will give you the numeric PCI id of your modem (you may
have to run bash$ lspcito crosscheck the device
id) and you will have to submit the number at http://www.yourvote.com/pci/
Здесь Вы сможете уточнить какой реально чип стоит у Вас.
В неофициальной базе PCTel Lin-модемов http://pctelcompdb.sourceforge.net можно также сравнить свой модем и уточнить выбор чипсета.
Если у Вас не получается определить название Вашего чипскта модема,
вы можете зайти на http://www.idir.net/~gromitkc/winmodem.html#drivers и
поискать его там.
Вы также можете спросить в вашей локальной Linux Union Groupe (LUG) или у Ваших друзей. или (безусловно плохой путь) просить персональную поддержку у производителя Вашего модема)
Если у Вас есть похожее miniHOWTO, если Вы получили пользу (выгоду) из этого Нowto , пожалуйста, свяжитесь со мной по следующей ссылки c Peaceful Action (http://www.peacefulaction.org), c моей домашней страницой, или с любого сайта, принадлежащему мне для больей иформации эдесь .
Вы можете также рекомендовать вашим друзьям Peaceful Action .
Чтобы рекомендовать Peaceful Action другу, пожалуйста посетите эту страницу.