Конфигурирование PCTel HSP MicroModem (mini-HOWTO)

Sayamindu Dasgupta

unmadindu_NO_SPAM_@Softhome.net

Jan Stifter

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 г

Первый релиз


Попытка "вольного" перевода :) hihin_k@t_narod.ru

Это рукодство по установке и настройке драйверов модемов PCTel HSP MicroModem в GNU/Linux

Оригинальный  mini-HOWTO  (на английском языке)  находится  по  адресу :

 http://www.peacefulaction.org/sayamindu/pctel.html


Содержание

1. Введение
1.1. Информация об авторских правах
1.2. Описание
1.3. Новые версии
1.4. Благодарности
1.5. Как связаться со мной
1.6. Переводы
1.7. Специальные форматы текста документа
2. Назначение этого mini-HOWTO
3. Где взять драйвера
4. Выбор  подходящего драйвера
5. Компиляция и установка драйверов
5.1. Установка драйверов на ядре.
5.2. Установка pctel-0.9.6 драйвера
5.3. Установка pctel-0.8.6 драйвера
6. Проверка драйвера
7. Несколько других замечаний.
7.1. Неофициальная база Win-модемов, совместимых с Linux.
7.2. Автоматическая загрузка модулей
7.3. Коды стран
7.4. Другие опции загрузки модулей.
7.5. Порядок загрузки и выгрузки модулей.
7.6. Известные ошибки (баги) драйвера pctel версий 0.9.6 и  0.8.6
7.7. Директории исходных кодов ядра
7.8. Установки PnP BIOS
7.9. AMR модемы
7.10. Возможные конфликты с звуковыми модулями
8. FAQ/Различные проблемы
8.1. Проблемы компиляции
8.2. Проблемы загрузки модулей.
8.3. Общие проблемы модемов.
8.4. У меня проблема, которая не перечислена в данном разделе. Что мне делать ?
9. Приложение
9.1. Пример скрипта для загрузки модулей.
9.2. Ресурсы Web
9.3. Другие доступные драйвера
9.4. Идентификация чипа установленного модема
9.5. Помощь автору
9.6. Лицензия GNU Free Documentation

1. Введение

1.1. Информация об авторских правах

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".


1.2. Отказ от ответственности

Методы, описанные в этом документе возможно могут повредить ваш комрьютер или информацию на нем. Авторы не будут ответствены ни за какое повреждение(ущерб), которое могло бы проистекать из использования этого документа. Используйте этот документ ПОЛНОСТЬЮ на свой страх и риск. .

Все авторские права принадлежат соответствующими владельцами, если определенно не отмечено иначе. Использование термина в этом документе не должно быть расценено как воздействие на законность никакой торговой или сервисной марки.

Имена специфических продуктов или торговых марок принадлежат соответствующим фирмам..

Вам настоятельно рекомендуют сохранять копии ядра, модулей и всех конфигурационных файлов с целью восстановления системы


1.3. Новые версии этого документа

Последнии версии этого mini-HOWTO можно всегда получить на homepage (большое спасибо Peaceful Action за хостинг моей странички ) в следующих форматах:


1.4. Благодарности

Я чрезвычайно благодарен членам поддержки howtos [NO_SPAM] @frodo.hserus.net, особенно USM Bish.


Большое спасибо участникам рассылки discuss@linmodems.org, замечания которых были очень полезны , особенно в начальной стадии написании howto. Я также чрезвычайно благодарен Филу Ричарду Берчиллу, Rajesh Fowkar, KV Pham, Браму Вонку, Дереку Кордеиро, Стивену Сангстеру и Эндрю Кару (akar) за их ценные предложения и исправления.

Sgml-материал был сделан со помощью шаблона, написанного Stein Gjoen, Григорием Лебланком и Грэгом Фергусоном. Я также обязан Грэгу Фергусону за исправление ошибок, которые я сделал в Docbook:-).


1.5. Как связаться со мной

Если у Вас есть какие-нибудь комментарии, идеи, добавления, коррекции и т.п., пожалуйста пишите мне по e-mail : . Но для технических вопросов, вы можете обратиться в рассылку discuss@linmodems.org .

Caution

Пожалуйста, не пишите о своих проблемах . я Вам НЕ отвечу. Вопросы задавайте в discuss@linmodems.org.


1.7. Специальные форматы текста документа

В документе используется специальные форматы текста для отображения предупреждений, комманд, имен файлов и т.п.

Комманды bash

bash$ ls

Заметка
Note NOTE:

Предостережение об опасности

Caution Опасно !
Информация

Tip Информация
Предупреждение
Warning Предупреждения
Имена_файлов/Директории

/usr/src/linux/

Задачи

application

Вывод компьютера

no such file or directory

Коды/cкрипты

#! /bin/bash

Вывод компьютера (весь монитор)

logfile begins


2. Цель этого mini-HOWTO

Целью этого документа было создать руководство по настройке и установки PCTel HSP MicroModem в GNU/Linux.

Во-первых давайте объясним зачем нужно специальное руководство по модему PCTel.
Эти модемы входят в специальный класс аппаратуры, разработанной для Windows и имеют драйвера, ориентированные на Windows
Эти модемы также называют win-модемами (Winmodems) и у них есть определенные проблемы при работе в GNU/Linux.
Большинство win-модемов не работают в GNU/Linux (производители используют патентованные технологии и такие драйвера не могут разрабатываться под лицензией GNU). Но для некоторых модемов имеются готовые драйвера под Linux, они называются  Lin-модемами (Linmodems).

PCTel модемы входят в эту категорию Lin-модемов.

Note

 Пожалуйста обратите внимание, что PCTel представляет  составляющие её собственность драйвера, а в свободном мире GNU/Linux, составляющие собственность фирмы драйвера - не решение. Эти драйвера, могут оказываться, большой угрозой, для развития и созревания Свободного Программного Движения. Так, в самом начале, пожалуйста рассмотрите, хотите ли Вы сдать вашу "свободу" фирме PCTel, или  Вам лучше купить новый модем, который имеет GPL'ed драйвер. Я понимаю, что для многих, покупка нового модема - не возможна, и поэтому  существует это руководство. Но независимо от того, что Вашего решения , пожалуйста пошлите e-mail  г. Джеку Селлеру из Общественного отдела Отношения PCTel's по   этому  адресу, с просьбой  , чтобы PCTel выпустила исходный текст их драйверов.

Запомните, что, когда Вы используете составляющие собственность какой-либо фирмы драйвера, Вы теряете свою свободу.

Note

Хотя я говорю PCTel модемы, фактически PCTel только производит чипы для этих модемов, так если у Вас есть  XXX модем, и Вы получаете сообщение

00:09.0 Communication controller: PCTel Inc HSP MicroModem 56 (rev 01)
от команды

bash$ lspci

то это означает, что у Вас PCTel Lin-модем.


3. Где взять драйвера ?

Теперь позвольте задать очевидный вопрос - где взять драйвера  ??

Хорошо, если Вы нетерпеливы, и если Вы имеете ядро 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 )

Но есть множество драйверов на обоих сайтах, так что вы можете невольно почувствовать некоторое смущение просматривая их.


4. Выбор подходящего драйвера

Версия драйвера зависит от версии вашего ядра. Узнать версию вашего ядра вы можете используя следующую команду :

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) драйвера с этого сайта.

Important

 Также обратите внимание, что только pctel 0.9.6 драйвер имеет поддержку для новых AMR модемов.


5. Компиляция и установка драйверов

Первое необходимое для инсталляции - у Вас должен быть исходный текст ядра  в  /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 .

Если Вы не получаете никаких ошибок, то все в порядке.

Note

Если у Вас gcc версии  3 или выше и у Вас возникли проблемы с компиляцией, пожалуйста посмотрите  этот раздел в FAQ.


5.1. Установка драйверов на ядре 2.2x

Войдите как  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 )


5.2. Установка pctel-0.9.6 драйвера

Проверьте, что у Вас ядро версии 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

NOTE: Если у Вас аоявилось сообщение configure:
еrror: You must have linux kernel >= 2.4.0 installed,
пожалуста загляните в раздел   8.1.1  для настройки правильного вычесления версии ядра .

Если у Вас AMR модем,  Вы должны использовать   драйвера версии 0.9.6.


5.3. Установка pctel-0.8.6 драйвера

Caution

 Используйте этот драйвер, только если у Вас возникли проблемы с 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  для полученее более подробной информации.

Только зная какой чип установлен в Вашем модеме, вы можете выподнять следующие команды (в зависимости от чипа)

Если у вас установлен PCT 789 чип

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/


6. Проверка драйвера

Есть только один способ проверить, работают ли драйверы или нет. Вы будете должны увидеть, найден  ли ваш модем или нет.
Драйвер создает 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..  Вы можете рассматривать это как помощь автору. См. этот раздел для более подробной информации..


7. Несколько других замечаний.

Еще несколько пунктов, которые Вы могли бы найти интересными / полезными.


7.1. Неофициальная база PCTel win-модемов совместимых с Linux.

Были много проблем  по --with-hal- опции, которая должна использоваться со сценарием выбора конфигурации, и для которой, я составил программу MySQL-PHP, которая принимает информацию от модемных владельцев, так, чтобы новички могли просмотривать и искать в базе данных,  чипсеты их модемов. Если Вы имеете PCTel модем, то, пожалуйста предоставьте вашу модемную информацию  на http://pctelcompdb.sourceforge.net


7.2. Автоматическая загрузка модулей драйвера

Если у Вас есть модули pctel.o и ptserial.o  в директории /lib/modules/`your kernel version`/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 .
В этом случае  запуск pppd автоматически загрузит  модули модема. Вы можете также написать некоторые shell - скрипты и поместить их в вашем /usr/bin директории (Я поместил примеры некоторых скриптов в разделе приложений)


7.3. Коды стран

Для модуля 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

7.4. Другие опции загрузки модулей драйвера.

Можно так-же использовать другие опции при загрузке модуля ptserial.o :

Для всех  HAL :

- irq: Установка используемого прерывания.

- iobase: Установка используемых адресов ввода/вывода  .

Только для I810/VAI686A HALs:

- iobase1: Установка iobase 1

Note

NOTE: Если Вы хотите установить iobase или iobase1, Вы должны также установить irq /iobase/iobase1 .

Только для  CM8738/PCT789 HALs:

- vendor_id: vendor ID модема

- device_id: device ID модема..

Note

NOTE: vendor_id и device_id должны использоваться одновременно, но Вы не можете комбинировать , эти две опции с iobase, iobase преобладают  над определением(vendor/device)_id .


7.5. Порядок загрузки/выгрузки модулей.

Когда Вы загружаете модули, первым должен загружаться модуль pctel.o

bash$ insmod pctel

а затем ptserial.o

bash$ insmod ptserial

При выгрузке порядок обратный,

bash$ rmmod ptserial

bash$ rmmod pctel


7.6. Известные ошибки (баги) драйвера pctel версий 0.9.6 и 0.8.6.

Существует серьёзный  дефект в драйверах для ядра 2.4x, модем часто, кажется, останавливается, зависает при наборе номера , и Вы получаете только beeeeeeeeee ... звук от модемного спикера и позже, программа - номеронабиратель не дает сообщение 
No Carrier и разъединяет связь.

Эта проблема не имеет никакого реального решения, но иногда выгрузка и перезагрузка модулей восстанавливает работу. Для этого нужно выполнить команды  (предпологается, что  модули в /lib/modules/'Ваша_версия_ядра`/misc/)

bash$ rmmod ptserial

bash$ rmmod pctel

bash$ insmod pctel

bash$ insmod ptserial

Note

 Вы должны выйти от вашей программы - номеронабирателя перед попыткой выгрузить модули драйвера, иначе Вы получите сообщение об ошибке  : a device or resource busy . (устройство или ресурс заняты)

Когда проблемы становятся слишком острыми, единственным решением, остается перезагрузка

Также замечалось, что иногда, эта проблема - зависима от ISP провайдера, с появлением этой  проблемы при использовании определенного  ISP провайдера.


7.7. Директория исходных кодов ядра

Если Вы получаете ошибку,
/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/

Note

В случае PCTel-0.8.6 или более новых драйверов Вы можете также определить местоположение вашего источника исходных текстов ядра, используя опцию

bash$ - with-kernel-includes=your ядерный исходный каталог


в момент выполнения сценария выбора конфигурации.


7.8. Установки PnP BIOS

Поскольку большинство компьютеров разработано для операционных систем M$-Windows, BIOS компьютера предполагает, что Вы имеете, установку " PnP OS installed ". Это может причинять неприятность с этими типами модемов в GNU/Linux (особенно, если Вы имеете конфликты ресурсов) и так  лучший выбор  установить опцию " PnP OS installed " в "Нет". Чтобы сделать это, Вы должны исполнить следующие шаги:

В момент запуска, когда Вы видите сообщение "Memory Test" "  информацию ЦЕНТРАЛЬНОГО ПРОЦЕССОРА, или информацию BIOS, нажмите клавишу DEL (если это не работает, обычно ни одна из Функцииональных (Fx)  клавиш ..- посмотрите в  вашем руководстве).

Вы будете перейдете в  меню конфигурации BIOS. Выберите раздел  " PNP/PCI Конфигурация ", и установите опцию для " PNP OS installed " в "No". Сохраните изменения, которые Вы сделали, и затем перезагружайтесь.

Warning

Этоесть не  применимо ко всем BIOS, и Вам советуют проконсультироваться с вашей документацией PC, если Вас особенный вид меню конфигурации BIOS. 


7.9. AMR модемы

Существуют некоторые PCTel чипы, которые устанавливают в AMR слоты вместо нормальных PCI слотов. Они обычно идентифицируютя чере команду  bash$ lspci как HSP MR. Эти модемы поддержаны только pctel-0.9.6 драйверами.


7.10. Возможные конфликты с звуковыми модулями

Недавно, были некоторые отправления в discuss@linmodems.org списке, что PCTel модули работали только после того, как звуковые модули были выгружены с помощью команды 
bash$ rmmod
 
Если Вы не получаете ответа от вашего модема даже после того, как pctel.o и ptserial.o модули были загружены, то Вы можете попробовать выгрузить звуковые модули, и затем перезаряжать PCTel модули. Однако, эта проблема не происходит, если Вы используете коммерческий ($$$) драйвера от www.opensound.com 



8. FAQ/Различные проблемы

Набор общих проблем, с которыми Вы можете столкнуться, и их  возможные решения.


8.1. Проблемы компиляции

8.1.1. Я получил в configure : error: You must have linux kernel >= 2.4.0 installed during ./configure
8.1.2. Я получил  /usr/src/linux/include/linux/modversions.h : no such file or directory
8.1.3. Я получил запрет доступаI во время работы bash$ make install
8.1.4. У меня gcc 3 и во время компиляции ,я получаю ошибку подобную этой  <command line>:1:13: multi-line string literals are deprecated make[3]: *** [ptserial.o] Error 1.
8.1.5. У меня RedHat 8.0/Mandrake 9.0, и у меня проблемы при компиляции драйверов.

8.1.1. Я получил собщение сonfigure: error: You must have linux kernel >= 2.4.0 installed during ./configure

Если это происходит, Вам необходимо исправить ваш скрипт configure. Загрузите файл configure.patch отсюда, и дайте команду : 

cat configure.patch | patch -p0

Note

 Я преполагаю, что Вы находитесь в директории pctel-0.9.6  и файл e configure.patch также находтся в той-же директории

8.1.2. Я получил сообщение:  /usr/src/linux/include/linux/modversions.h : no such file or directory

Вам необходимо иметь исходные тексты ядра в директории /usr/src/linux/

Если исходные текста ядра установлены в другом месте, просто сделайте символическую ссылку на это место (более подробно см раздел  7.7  )
Если исходный текст ядра установлен в  /usr/src/linux/, перейдите в /usr/src/linux/ и выполните команды :

bash$ make config

bash$ make dep


8.1.3. Я получил сообщение :

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

....и перекомпилите пакет.

Tip

 Если Вы не находите файл  src/ptserial/Makefile, запустите скрипт еще раз.

Альтернативно, вы можете также применить пред-компилируемый (специфичный для дистрибутива) драйвера в http://www.geocities.com/jcmp3/. Только обратите внимание, что я лично не проверил  этих драйверов, и я не  много знаюю о них.

8.1.5. У меня стоит RedHat 8.0/Mandrake 9.0,  и у меня возникли проблемы при компиляции драйвера.

См. предыдущий  предыдущий пункт (8.1.4).


8.2. Проблемы загрузки модулей.

8.2.1. Я получил сообщение   unresolved symbols....  при загрузке модулей
8.2.2. Я получил сообщение  Operation not permitted error  при попытке загрузки модулей
8.2.3. Я получил прдупреждение  при загрузке  модулей драйвера : /lib/modules/2.4.19/misc/ptserial.o will taint the kernel: non-GPL license - GPL linked with proprietary libraries .
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.

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/, который является отконфигурирован  для поддержки многопроцессорного ядра , тогда у вас будут неопределенные символьные переменные.Это Вы можете проверить командой

bash$ make menuconfig

в директории  /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

Создать новый модуль pctel.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

перед перекомпиляцией драйвера

8.2.2. Я аолучил сообщение Operation not permitted error while trying при загрузке драйвера

 Вы должны иметь права 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, если Вы сталкнетесь с неустойчивостью системы или любыми другими проблемами после загрузки этих драйверов.

Примечание:

Note  Это - не сообщение об ошибках, а  только напоминание Вам, что Вы используете коммерческий модуль.

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.

Warning  Только запомните - это не очень хороший прием

8.3. Общие проблемы модемов.

8.3.1. Я получил сообщение об ошибке /dev/modem no such device .
8.3.2. Моя программа дозвона выдает ошибку  No Carrier
8.3.3. Я получил сообщение No Dialtone.
8.3.4. Я получил сообщение об ошибке Modem Busy.

8.3.1. Я получил сообщение  об ошибке /dev/modem no such device (Устроство /dev/modem не существует).

Прежде всего, проверьте, действительно-ли загрузились дайвера командой

bash$ lsmod | grep ptserial

Вы должны увидеть, что модули pctel и ptserial корректно загружены из сообщения, подобные этому :

Module                  Size  Used by
ptserial 47472 0 (unused)
pctel 1211808 0 [ptserial]

Если нет, то вы должны попытаться их загрузить повторно :

Также проверьте, что файл /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

8.3.2. Моя программа дозвона выдает ошибку

No Carrier

Это программная ошибка драйвера при работе с ядром серии 2.4.x

Подробнее смотри в разделе  7.6

8.3.3. Я получаю сообщение 

No Dialtone
message.

Это обычно решается, добавляя ATX3 к инициализационной строке модема. Процесс добавления ATX3 к инициализационной строке меняется в зависимости от программы - номеронабирателя, которую Вы используете.
Например, если Вы используете wvdial, Вы должны добавить X3 в конце строки Init2 в файле /etc/wvdial.conf.
Если-же Вы используете KPPP, Вам необходимо бедет добавить ATX3 в строке поля Initialization String 1, которая находится  в   диалоге:  Установка параметров KPPP ->  Модем -> Команды Модема .
.

8.3.4. Я получаю ошибку

Modem Busy
.

(модем занят)

Во-первых, посмотрите загружены-ли модули драйвера, а щатем проверьте, не использует-ли какая-нибудь еще программ модем. Если все, окажется  в порядке, то попробуйте определить прерывание (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 


8.4. У меня проблема, которая не перечислена в этом разделе. Что мне делать?

Посмотрите вывод команды

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

Можно отфильтровать строки, в которых есть слова PCTel и ttyS15 соответствующими командами :

bash$ tail /var/log/messages | grep PCTel

bash$ tail /var/log/messages | grep ttyS15

Вы можеть отправить  вывод, которого Вы получили по e-mail   (подробнее см. 9.2.2 ), и дожидаться ответа. :)


9. Приложение

9.1. Пример скрипта для загрузки модулей драйвера.

#! /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

Вы сможите загрузить модули драйвера.


9.2. Ресурсы Web

Здесь перечислены адреса сайтов и списков рассылок, где Вам могут помочь при конфигурировании Вашего модема .


9.2.1. Web сайты

Неофициальный сайт драйвера 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.


9.2.2. Списки рассылки

Наиболее важная рассылка по Lin-модемам

Вы можете подписаться на нее по адресу http://www.linmodems.org  или послав пустое письмо по e-mail  .


9.3. Другие доступные драйвера

 Существует мноожество  изготовителей  PCTel модемов (Dax, Zoltrix, Lectron, Tiacom и т.д) , которые поставляют  linux драйверы для своих модемов,

Фактически большинство (если не все) эти драйвера  - это слегка измененые виды драйверов обычного PCTel драйвера, и  в большинстве случааях, нет никакого смысла в их загрузке.

Также , Вы можете испытывать пред-компилируемый (дистрибутиво-зависимые) драйвера с http://www.geocities.com/jcmp3/.
Только обратите внимание, что  лично я не проверил  эти драйвера, и я немного  знаю  о них.

Кроме того, в ранних версиях 2.4x ядра, Томас Врайт сделали PCTel драйвер, и Вы можете найти этот драйвер на  его сайте http://www.geocities.com/tom_in_rc/.


9.4. Идентификация чипа установленного модема

Наилучший способ идентифицировать набор чипа вашего модема состоит в том, чтобы снять кожух системного блока, мягко  выдвиньте модем от своего слота  (только если это не интегрированный в материнскую плату драйвер), и посмотреть название, напечатанное на черном чипе на модеме. (Будьте очень очень осторожны при выполнении, и удостоверьтесь, что все источники питания отключены, и коснитесь "земли" металлической поверхностью перед работой с любой  платой/проводом в машине).
Но иногда, это - не возможно и Вы  должны быть готовы применить другие методы.

Следующий по надежности метод - дать команду

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) или у Ваших друзей. или (безусловно плохой путь) просить персональную поддержку у производителя Вашего модема)


9.5. Помощь автору

Если у Вас есть похожее  miniHOWTO, если Вы получили пользу (выгоду) из этого Нowto , пожалуйста, свяжитесь со мной по  следующей ссылки c Peaceful Action (http://www.peacefulaction.org), c моей домашней страницой, или  с любого сайта, принадлежащему мне для больей иформации  эдесь .


Вы можете также рекомендовать  вашим друзьям Peaceful Action . Чтобы рекомендовать Peaceful Action   другу, пожалуйста посетите эту страницу.


9.6.Лицензия GNU Free Documentation

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.

          Текст GNU Free Documentation License можно посмотреть здесь 



Используются технологии uCoz