unmadindu_NO_SPAM_@Softhome.net
j.stifter_NO_SPAM_@medres.ch
Revision History | ||
---|---|---|
Revision 2.5.10 | December 4th 2002 | |
Added new FAQ entry, and other minor clean ups. | ||
Revision 2.5.9 | November 11th 2002 | |
Added new driver info, made corrections and clarifications in the GCC 3 FAQ . | ||
Revision 2.5.8 | November 10th 2002 | |
Added information on GCC 3, fixed typos, and other minor corrections. | ||
Revision 2.5.6 | September 21st 2002 | |
Changes in the FAQ section based on reader suggestions, and general error cleanups. | ||
Revision 2.5.5 | August 17th 2002 | |
Made changes in driver section, and other additions | ||
Revision 2.5.1 | July 20th 2002 | |
Made changes in driver section, and misc. additions | ||
Revision 2.50 | June 6th 2002 | |
Made changes in the drivers and FAQ section, added the database info, other corrections | ||
Revision 2.00 | March 30th 2002 | |
Made changes in the drivers section, other corrections | ||
Revision 1.10 | December 4th 2001 | |
Cleaning up of sgml by Greg Ferguson, Relicensed under the GFDL, minor corrections | ||
Revision 1.00 | November 26th 2001 | |
First Release |
Copyright В© 2002-2003 Sayamindu Dasgupta, Jan Stifter. Разрешается копировать, распространять и/или изменять этот документ в соответствии с GNU Free Documentation License версии 1.1 или любой более поздней, изданной Фондом свободного программного обеспечени (Free Software Foundation). Копия лицензии включена в раздел "GNU Free Documentation License".
Методы, описанные в этом документе, могут привести к потере ваших данных или/и повреждению вашего ПК. Авторы не несут никакой ответственности за какой-либо ущерб, который может проистекать от использования этого документа. Используйте этот документ ПОЛНОСТЬЮ на ваш собственный риск.
Все авторские права принадлежат их соответствующим владельцам, если не отмечено другое. Использование терминов в этом документе не должно расцениваться как незаконное использование какой-либо торговой или сервисной марки.
Перечисление конкретных продуктов или марок не должно пониматься как endorsements.
Вам настоятельн рекомендуется сделать резервную копию (backup) вашей системы перед основной установкой и, вообще, делать резервирование регулярно.
Самую последнюю версию этого mini-HOWTO Вы всегда можете найте на моей домашней странице (большое спасибо Peaceful Action за hosting моей домашней страницы) в различных форматах:
Я чрезвычайно благодарен членам мэйлинг-листа howtos[NO_SPAM]@frodo.hserus.net за их поддержку, особенно USM Bish.
Очень помогли члены мэйлинг-листа discuss@linmodems.org, особенно в начальной стадии howto-написания. Также я чрезвычайно благодарен Phil Richard Burchill, Rajesh Fowkar, KV Pham, Bram Vonk, Derek Cordeiro, Steven Sangster и Andrew Kar (akar) за их ценные предложения и замечания.
sgml-материал был сделан с помощью шаблона, написанного Stein Gjoen, Gregory Leblanc и Greg Ferguson. Я также обязан Greg Ferguson за то, что он навел порядок в моей Docbook :-).
Если у Вас есть любые комментарии, критика, идеи, дополнения, замечания, то, пожалуйста, отправьте их на <unmadindu_NO_SPAM_@Softhome.net>. По техническим же вопросам обращайтесь в мэйлинг-лист discuss@linmodems.org.
Пожалуйста, не отправляйте мне письма с вашими проблемами. Вы НЕ получите ответа. Обращайтесь в discuss@linmodems.org. |
В этом документе используются следующие обозначения предупреждений, команд, имен файлов, сообщений, выдаваемых компьютером и т.д.:
bash$ ls
ПРИМЕЧАНИЕ |
ПРЕДОСТЕРЕЖЕНИЕ |
ИНФОРМАЦИЯ |
ПРЕДУПРЕЖДЕНИЕ |
/usr/src/linux/
приложение
no such file or directory
#! /bin/bash |
logfile begins |
Цель этого документа - показать Вам, как можно заставить ваш PCTel HSP MicroModem работать в GNU/Linux.
Сначала позвольте мне объяснить, что есть такого "особенного" в этих PCTel-модемах, что заставило меня написать это руководство. Эти модемы относятся к особому классу аппаратных средств, сделанных специально для систем M$-Windows, и их драйверы, соответственно, "заточены" под M$-Windows ...Эти модемы называются также "винмодемами" ( "Winmodems") и явлются одной из наиболее проблемных частей оборудования для GNU/Linux. Большинство винмодемов не работают с GNU/Linux (производители используют патентованные технологии и, таким образом, драйверы для этих модемов не могут развиваться как Open Source). Для нескольких винмодемов драйверы все-таки существуют
PCTel модемы принадлежат к этой категории и попадают под определение "линмодем".
Пожалуйста, обратите внимание, что PCTel предоставляет драйверы, явлющиеся их собственностью, а в свободном мире GNU/Linux составляющие собственность драйверы не есть решение проблемы. Поэтому в самом начале, пожалуйста, подумайте, хотите ли Вы сдать свою "свободу" PCTel или хотите остаться "свободным" и купите новый модем, для которого есть GPL'ed драйвер. Я понимаю, что многие не могут купить новый модем, вот поэтому и существует этот документ. Но независимо от того, что Вы выберете, пожалуйста, пошлите письмо Mr. Jack Seller из отдела компании PCTel по связям с общественностью (PCTel's Public Relation department) по этому адресу, попросив PCTel открыть исходные тексты их драйверов. Помните, что когда Вы используете драйверы, явлющиеся чей-то собственностью, Вы отказываетесь от своей свободы. |
Хотя я ссылаюсь здесь на PCTel-модемы, на самом деле PCTel производит только чипы для этих модемов (как и в случае с видеочипами от NVIDIA), поэтому если Вы имеете, скажем, XXX модем и получите 00:09.0 Communication controller: PCTel Inc HSP MicroModem 56 (rev 01) в ответ на команду bash$ lspci, то не беспокойтесь, у Вас то, что мы называем PCTel-линмодем. |
Теперь позвольте мне перейти к следующему очевидному вопросу, а именно: Где драйверы??
Если у Вас ядро версии 2.4x, тогда идите сюда
http://linmodems.technion.ac.il/pctel-linux/, а если Вы прикреплены к ядру 2.2.x, то идите на 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.4x, то идите на 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, а в /usr/src/linux/ находятся исходные тексты для ядра версии 2.4.9 , то драйверы у Вас работать не будут.
Кроме того, Вы должны сконфигурировать ядро с поддержкой isapnp и pnp и позаботиться о том, что у Вас нет несоответстви smp/uniprocessor (это значит, что у Вас может быть ядро с поддержкой одного процессора, а исходные тексты в /usr/src/linux с поддержкой многопроцессорной конфигурации). Также, Вам будет нужно ядро, которое поддерживает загружаемые модули.
И конечно, Вы должны иметь установленный gcc, проверить это можно, набрав команду bash$ gcc -v . Если в ответ Вы не получаете сообщений об ошибках, то все в порядке
Если ваш gcc имеет версию 3 или выше и у Вас возникают проблемы в процессе компилирования, пожалуйста, обратитесь к этому разделу. |
Войдите в систему как root.
Удостоверьтесь, что версия вашего ядра равна 2.2.x: bash$ uname -r
Проверьте, находятся ли скачанные файлы в вашем текущем каталоге командой
bash$ ls
Затем распакуйте скачанные файлы командой
bash$ tar -xzvf pctel-2.2.tar.gz
Распаковав их, Вы получите каталог ~/pctel.
Перейдите в этот каталог:
bash$ cd pctel/
Там Вы найдете инсталляционный скрипт (install.sh), который с этого момента сделает за Вас почти всю работу.
Сделайте этот скрипт выполнимым (executable)
bash$ chmod +x install.sh
Затем просто запустите скрипт
bash$ ./install.sh
Вы увидите много сообщений, пролетающих по экрану: соответствующие файлы/узлы устройства создаются в каталоге /dev/, файлы драйвера распаковываются, компилируются и затем загружаются в память.
По окончании процесса (если в ходе него Вы получили какие-либо сообщения об ошибках, перейдите к разделу Устранение проблем) в каталоге ~/pctel/ Вы сможете обнаружить только что созданный подкаталог lib/. Этот подкаталог ~/pctel/lib/ содержит драйверы/модули, которые могут быть загружены в ядро.
Если Вы перейдете в каталог ~/pctel/lib/:
bash$ cd ~/pctel/lib/
и выполните bash$ ls, то там Вы найдете два файла: один называется pctel.o, а другой - ptserial.o
Это два модуля, которые следует загрузить прежде, чем модем можно будет заставить работать.
Чтобы загрузить модули, Вам надо, находясь в каталоге ~/pctel/lib/, набрать команды
bash$ insmod pctel.o
bash$ insmod ptserial.o
(Скрипт install.sh делает это автоматически, так что Вы освобождены от необходимости вручную набирать команды insmod после выполнения скрипта, но после перезагрузки Вам вновь придется загрузить модули:
bash$ cd `ваш каталог pctel`/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
cd в этот каталог:
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
Запустится конфигурационный скрипт, по экрану замелькают многочисленные сообщения. Посмотрите, нет ли среди них сообщений об ошибках. Когда вновь появится приглашение оболочки (prompt) (и если нет никаких сообщений об ошибках), скомпилируйте драйверы командой
bash$ make
Затем, если опять же нет никаких сообщений об ошибках, установите драйверы командой
bash$ make install
(Перед выполнением последнего шага Вам надо будет войти в систему как root)
Потом просто загрузите драйверы командами
bash$ insmod pctel
bash$ insmod ptserial
ЗАМЕЧАНИЕ: Эти команды могут быть запущены из любого каталога, так как программа insmod сама найдет драйверы pctel.o и ptserial.o в /lib/modules/`версия вашего ядра`/misc/ )
ПРИМЕЧАНИЕ: Если Вы получите сообщение: configure: error: You must have linux kernel >= 2.4.0 installed, то обратитесь к разделу 8.1.1. |
Если у Вас 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
cd в этот каталог:
bash$ cd pctel-0.8.6/
Теперь наступает сложная часть.
Прежде, чем двинуться дальше, Вам потребуется узнать, какой чипсет имеет ваш модем. См. раздел 9.4 для получения информации об этом.
Узнав название чипсета вашего модема, просто напечатайте одну из следующих команд (в зависимости от чипсета)
Если чипсет вашего модема - PCT 789, то
bash$ ./configure --with-hal=pct789
Если чипсет вашего модема - CM8738, то
bash$ ./configure -with-hal=cm8738
Если Вы имеете модем, интегрированный в чипсет Intel 810 материнской платы от Intel, то
bash$ ./configure --with-hal=i810intel
Если Вы имеете модем, интегрированный в чипсет Intel 810 материнской платы от SIS, то
bash$ ./configure --with-hal=i810sis
Если Вы имеете модем, интегрированный в чипсет VIA 686a материнской платы, то
bash$ ./configure --with-hal=via686a
Запустится конфигурационный скрипт, по экрану замелькают многочисленные сообщения. Посмотрите, нет ли среди них сообщений об ошибках. Когда вновь появится приглашение оболочки (prompt) (и если нет никаких сообщений об ошибках), скомпилируйте драйверы командой
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/ttyS15 создастся символическая ссылка /dev/modem , и поскольку большинство программ ищет модем сначала в /dev/modem , Вам не надо будет тратить врем на дополнительную настройку/конфигурирование этих программ. Для проверки моего модема в GNU/Linux я использую программу minicom. Если minicom у Вас уже установлена, то все, что Вам нужно сделать, - напечатать
bash$ minicom
в ответ на приглашение оболочки или в окне эмулятора терминала. Если все в порядке, то в течение нескольких секунд Вы будете видеть сообщение Initializing modem, а затем появится экран с мигающим курсором. Просто наберите ATZ и нажмите клавишу Enter. Если в ответ Вы получите OK, то примите поздравления - ваш модем работает в GNU/Linux. Напечатайте ATI 3 и нажмите Enter, в ответ Вы увидите PCtel HSP56 MicroModem. Если возникают сообщения об ошибках или Вы не получаете отклик от программы minicom, то посмотрите раздел "Устранение проблем". Если же все хорошо, то настраивайте вашу "звонилку" и подключайтесь к интернету, и, пожалуйста, потратьте некоторое время - пошлите информацию о вашем модеме в базу данных совместимости на http://pctelcompdb.sourceforge.net/. А еще Вы можете помочь автору. См. этот раздел для получения дополнительной информации.
Вот еще несколько пунктов, которые могут оказаться интересными/полезными для Вас.
Была большая путаница с опцией --with-hal, которая должна использоваться с конфигурационным скриптом, и поэтому я сделал базу данных под управлением MySQL-PHP, которая содержит информацию, присланную от владельцев модемов, так что новички могут попробовать найти в ней свой модем и по его названию определить его чипсет. Если Вы имеете PCTel-модем, то, пожалуйста, не сочтите за трудность послать информацию о нем на http://pctelcompdb.sourceforge.net/.
Если файлы pctel.o и ptserial.o находятся у Вас в каталоге /lib/modules/`версия вашего ядра`/misc/ , то Вы можете просто добавить следующие строки к вашему файлу /etc/modules.conf
# for pctel modem alias char-major-62 ptserial below ptserial pctel # country code for pctel modem options ptserial country_code=1 |
Запустите
bash$ depmod -a
после изменения /etc/modules.conf .
В этом случае при запуске ppp эти модули будут загружаться автоматически. Также Вы можете написать несколько скриптов оболочки и разместить их в каталоге /usr/bin/ (пример таких скриптов см. в Приложении)
Драйвер ptserial.o также позволяет определить код страны. Для этого надо загрузить модуль ptserial.o командой
bash$ insmod ptserial country_code=x
Таблица 1. Коды стран
Страна | country_code |
---|---|
США | 1 |
Франция | 2 |
Германия | 3 |
Италия | 4 |
Швеция | 5 |
Великобритания | 6 |
Япония | 7 |
Австралия | 8 |
Испания | 9 |
Тайвань | 10 |
Сингапур | 11 |
Корея | 12 |
Швейцария | 13 |
Норвегия | 14 |
Нидерланды | 15 |
Бельгия | 16 |
Канада | 17 |
Ирландия | 18 |
Португалия | 19 |
Польша | 20 |
Венгрия | 21 |
Финляндия | 22 |
Дания | 23 |
Австрия | 24 |
Южная Африка | 25 |
Страны CTR21 | 26 |
Китай | 27 |
Малайзия | 28 |
Люксембург | 29 |
Греция | 30 |
Исландия | 31 |
Новая Зеландия | 32 |
Бразилия | 33 |
Другие опции, которые Вы можете использовать при загрузке ptserial.o:
Для всех HAL:
- irq: Принудительное назначение irq #.
- iobase: Использование iobase для обнаружения модема.
Только для HAL I810/VIA686A:
- iobase1: Использование iobase 1
ПРИМЕЧАНИЕ: если Вы хотите установить iobase или iobase1, то одновременно с этим Вам надо использовать irq/iobase/iobase1. |
Только для HAL CM8738/PCT789:
- vendor_id: ID производителя модема
- device_id: ID модема.
ПРИМЕЧАНИЕ: 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 присутствует серьезная ошибка. Часто кажется, что модем перестает работать/зависает при наборе номера и ничего, кроме звука бееееееееее... из его динамика, Вы не получаете, в конце концов программа-номеронабиратель (dialer) выдает сообщение No Carrier и разъединяет.
Решение этой проблемы неизвестно, но иногда помогает выгрузка и повторная загрузка модулей. Командами для выполнения этих действий будут (предполагается, что ваши модули расположены в /lib/modules/'версия вашего ядра`/misc/ )
bash$ rmmod ptserial
bash$ rmmod pctel
bash$ insmod pctel
bash$ insmod ptserial
Прежде, чем пытаться выгрузить драйверы, Вы должны выйти из вашей программы-номеронабирателя, иначе Вы получите ошибку device or resource busy . |
Когда перезагрузка модулей не помогает, единственное, что можно посоветовать, - перезагрузить систему (sorry, за тавталогию).
Было также замечено, что иногда эта проблема зависит от провайдера (ISP): с одним провайдером она есть, с другим - ее нет.
Если у Вас возникает ошибка /usr/src/linux/include/linux/modversions.h : no such file or directory, посмотрите, а есть ли в каталоге /usr/src "исходники" ядра. Как правило, они располагаются в /usr/src/linux/ , но в некоторых дистрибутивах эти файлы могут устанавливаться куда-нибудь еще.
Если ваш случай второй, т.е. данные файлы находятся не в /usr/src/linux/ , а, скажем, в каталоге /usr/src/myspecialsource/ , то не надо перемещать файлы - просто создайте символическую ссылку командой
bash$ ln -s /usr/src/myspecialdirectory/ /usr/src/linux/
Для драйверов PCTel-0.8.6 или более новых определить местоположение исходных текстов ядра Вы можете, используя опцию при запуске конфигурационного скрипта bash$ --with-kernel-includes=ваш каталог исходных текстов ядра |
Поскольку большинство компьютеров разработано для операционных систем M$-Windows, то BIOS компьютера предполагает, что Вы имеете то, что называетс "PnP OS installed". Это может привести к проблемам с рассматриваемыми типами модемов в GNU/Linux (особенно, если у Вас конфликты по ресурсам), и поэтому лучше опцию "PnP OS installed" дезактивировать (поставить в "No"). Чтобы сделать это, Вам надо выполнить следующие шаги:
Во время запуска, когда на экране появлются сообщения "Memory Test", информация о процессоре (CPU), информация BIOS, нажмите клавишу DEL (или одну из функциональных клавиш (Fx)..см. руководство пользователя к материнской плате).
Вы попадете в конфигурационное меню BIOS. Войдите в раздел "PNP/PCI Configuration" и установите опцию "PNP OS installed" на "No". Сохраните внесенные изменения и перезагрузитесь.
Данные манипуляции применимы не ко всем BIOS, и если у Вас другой вид конфигурационного меню 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. Я получаю configure: error: You must have linux kernel >= 2.4.0 installed во время запуска ./configure
Если это происходит, то Вам надо "пропатчить" ваш конфигурационный скрипт. Скачайте файл configure.patch отсюда и дайте команду
cat configure.patch | patch -p0
Я предполагаю, что Вы находитесь в каталоге pctel-0.9.6, configure.patch также должен быть в этом каталоге |
Исходные тексты вашего ядра должны быть установлены в каталоге /usr/src/linux/
Если "исходники" ядра установлены в другом месте, то сделайте соответствующую символическую ссылку (symlink). (См. раздел 7.7 для получения дополнительной информации) Сделав это, выполните
bash$ make config
bash$ make dep
в /usr/src/linux/
Вам надо быть в системе с правами пользователя 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 эта ошибка возникать не должна. Тем не менее, если Вы столкнулись с такой проблемой (у Вас старый драйвер или что-то вроде этого), то Вам надо будет отредактировать файл <ваш каталог 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).
Сперва проверьте, что Вы загружаете ptserial.o только после загрузки pctel.o.
Если дело не в этом, то, вероятно, Вы скомпилировали ваши модули для неправильной версии ядра. Узнать версию своего ядра Вы можете с помощью команды
bash$ uname -r
а затем удостоверьтесь, что в каталоге /usr/src/linux у Вас находятся правильные файлы.
Кроме того, если ваше текущее ядро предназначено для однопроцессорной машины, а исходные тексты ядра в /usr/src/linux/ сконфигурированы с поддержкой smp, то Вы неизбежно получите unresolved symbols. Способ проверить, с поддержкой smp у Вас исходные тексты или без оной, - запустить bash$ make menuconfig в /usr/src/linux/ и посмотреть, выбрана ли поддержка smp.
Другой способ избавиться от проблемы unresolved symbols состоит в использовании пакета fixscript с http://linmodems.technion.ac.il/pctel-linux/fixscript.gz
Порядок действий следующий:
Распакуйте скачанный файл:
bash$ gzip -d fixscript.gz
Сделайте его исполнимым:
bash$ chmod +x fixscript
Запустите его:
bash$ ./fixscript old_module.o new_module.o
Этим Вы создадите новый модуль, который можете попробовать загрузить командой
bash$ insmod new_module.o
Если fixscript сообщает об ошибке типа
objcopy: --redefine-sym: Symbol x is target of more than one redefinition
то fixscript Вам не поможет.
Но самый лучший способ - это, естественно, установить ядро из "исходников" и перекомпилировать драйверы.
Перед перекомпилированием обязательно сделайте
bash$ make clean
Чтобы загрузить драйверы, Вам надо войти в систему как root, или же набрать команду
bash$ su
и потом загрузить драйверы.
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 при загрузке модулей.
Это сообщение информирует Вас о том, что Вы загружаете сторонний (proprietary) модуль, который не поддерживается разработчиками ядра 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. при загрузке модулей.
Попробуйте загрузить модули командами insmod -f pctel и insmod -f ptserial вместо обычных insmod pctel и insmod ptserial.
Только помните, что это не очень хороший hack. |
Прежде всего убедитесь, загрузили ли Вы драйверы. Дайте команду
bash$ lsmod
Эта команда выведет на экран все модули, которые у Вас загружены, если среди них Вы увидите что-то вроде
Module Size Used by ptserial 47472 0 (unused) pctel 1211808 0 [ptserial] |
то модули загружены правильно.
Если не увидите, то загрузите их и повторите проверку.
Также удостоверьтесь, явлется ли файл /dev/modem символической ссылкой на /dev/ttyS15
Запомните, что даже если msdos или Microsoft Windows сообщают Вам, что портом модема является com 3 или com 4, то в GNU/Linux драйвер заставит модем появиться в /dev/ttyS15 (эквивалентом которого в системах MS будет com 16!!)
Если Вы сомневаетесь, то я советую Вам заново создать файлы устройства командами
bash$ rmmod ptserial
bash$ rmmod pctel
bash$ rm /dev/ttyS15 /dev/modem
bash$ mknod /dev/ttyS15 c 62 79
ЗАМЕЧАНИЕ: числа после /dev/ttyS15 определяются дистрибутивом, c 62 79 работают для Red Hat Linux и систем, на нем базирующихся (например, ASPLinux). Если у Вас другой дистрибутив, то обратитесь к его документации.
bash$ chgrp uucp /dev/ttyS15
bash$ chmod 666 /dev/ttyS15
bash$ ln -s /dev/ttyS15 /dev/modem
Это ошибка в драйверах для ядер версий 2.4x
Обратитесь к разделу 7.6 для получения дополнительной информации.
Эта проблема обычно решается добавлением ATX3 к строкам инициализации (init strings) вашего модема. Способ добавления инициализационной строки ATX3 зависит от используемой Вами "звонилки". Например, если Вы используете wvdial, то Вам надо добавить X3 в конец строки Init2 файла /etc/wvdial.conf. Если же Вы используете KPPP, то Вам надо будет добавить ATX3 в поле Initialization String 1 раздела Modem Commands диалога Modem диалога Setup.
Вначале проверьте, загружены ли драйверы или нет, затем посмотрите, не использует ли модем какая-нибудь программа. Если все, кажется, в порядке, то выясните irq вашего модема, дав команду
bash$ lspci -v
Если полученный irq заведомо неверный (типа 0) (или не совпадает с irq модема в M$-Windows), то либо воспользуйтесь командой setserial
bash$ setserial /dev/ttyS15 irq * (где * - 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. Nov 11 10:50:24 localhost kernel: PCTel driver version 0.9.5 [5.05c-4.27.215 (09-14-2001)] (PCT789) (2002-01-31) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled. Nov 11 10:50:24 localhost kernel: PCTel driver built on [Linux 2.4.18-14 i686 i686 "2.4.18-14 <132114>"] with gcc-gcc (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7). Nov 11 10:50:24 localhost kernel: ttyS15 at 0xe400 (irq = 12) is a PCTel |
Получившийся вывод команды (output) отправьте в мэйлинг-лист <discuss@linmodems.org> (подробнее об этом рассказано в разделе 9.2.2) и ждите ответ.
#! /bin/bash /sbin/insmod /lib/modules/`uname -r`/misc/pctel.o /sbin/insmod /lib/modules/`uname -r`/misc/ptserial.o # end file |
Сохраните этот файл под именем modemon и выполните команды
bash$ chmod 700 modemon
bash$ cp modemon /usr/bin/modemon
Теперь, всякий раз, когда Вы набираете в командной строке bash$ modemon , модули будут загружаться автоматически
В этом разделе Вы найдете адреса сайтов, мэйлинг-листов, которые могут помочь Вам при конфигурировании вашего модема.
Драйвер pctel linux (неофициальный) Вы можете найти по адресу: http://linmodems.technion.ac.il/pctel-linux/
Неофициальная база данных совместимости модемов PCTel с Linux: http://pctelcompdb.sourceforge.net/.
Начало всех начал, касающихся линмодемов, - сайт linmodems.org: http://www.linmodems.org/
Огромные списки лин/винмодемов от Роба Кларка: http://www.idir.net/~gromitkc/winmodem.html
Список AT-команд от PCTel: http://www.pctel.com/atcommands_dev.htm
Самая последняя информация о линмодемах доступна по адресу: http://linmodems.technion.ac.il/.
Linmodem-HOWTO: http://www.tldp.org/HOWTO/Linmodem-HOWTO.html.
Вы можете подписаться на него на сайте
http://www.linmodems.org/, или послав пустой e-mail на адрес <discuss-subscribe@linmodems.org> .
Многие производители модемов (Dax, Zoltrix, Lectron, Tiacom и т.д.), как я знаю, предоставляют linux-драйверы для своих модемов, построенных на чипсетах PCTel.
На самом деле многие (если не все) из этих драйверов явлются слегка измененной формой драйверов, доступных на сайтах Яна и modems.dewback.cl (см. раздел 3), и поэтому, в большинстве случаев, нет смысла их скачивать.
Тем не менее, Вы можете попробовать использовать скомпилированные (под определенные дистрибутивы) драйверы, находящиеся по адресу: http://www.geocities.com/jcmp3/. Только заметьте, что лично я эти драйверы не проверял и почти ничего о них не знаю.
Кроме того, на сайте http://www.geocities.com/tom_in_rc/ Вы можете взять PCTel-драйвер, сделанный Томасом Райтом (Thomas Wright) почти сразу после появления ядер серии 2.4x.
Лучший способ идентифицировать (если хотите, распознать) чипсет вашего модема - это снять крышку корпуса системного блока, вынуть модем из его слота (если, конечно он не интегрирован в материнскую плату) и посмотреть, что напечатано на черном "квадратике" - чипе. (будьте очень-очень осторожны при выполнении этих действий, удостоверьтесь, что Вы вынули из розетки вилку блока питания и дотронулись до заземленной/металлической поверхности прежде, чем дотронулись до какой-нибудь схемы/платы компьютера). Но иногда, вскрыть сис. блок не представляется возможным (например, не истек гарантийный срок - не ждать же целый год), поэтому
Следующий лучший способ - выполнить команду
bash$ lspci -n
Эта команда даст Вам числовой PCI id вашего модема (по команде bash$ lspci можно определить и device id), зайдите на сайт http://www.yourvote.com/pci/ и в соответствующее поле введите полученное число. В ответ Вы получите или не получите точное название вашего чипсета.
Также в решении данного вопроса Вам может помочь неофициальная база данных совместимости модемов PCTel с Linux, находящаяся по адресу http://pctelcompdb.sourceforge.net/, или база данных на сайте Роба Кларка: http://www.idir.net/~gromitkc/winmodem.html#drivers.
Еще Вы можете спросить местные LUG, друзей или, на худой конец, тех. поддержку производителя вашего модема.
Если Вам понравилось данное miniHOWTO или оно принесло Вам какую-либо пользу, то, пожалуйста, если это можно, разместите на вашей домашней странице или на сайте, web-мастером которого Вы, возможно, являетесь, ссылку на сайт моего проекта Peaceful Action (http://www.peacefulaction.org/). Посетите эту страницу для получения дополнительной информации.
Также Вы можете рассказать своим друзьям о Peaceful Action . Пожалуйста, посетите эту страницу.
Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five).
State on the Title page the name of the publisher of the Modified Version, as the publisher.
Preserve all the copyright notices of the Document.
Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
Include an unaltered copy of this License.
Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version.
Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |