Linux - статьи


Настройка модема


Закончив со звуковой картой, можно заняться интегрированным модемом.

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

Сотрудники фирмы IBM не бросили свое детище (в смысле ноутбук) на произвол судьбы и написали для него драйвер для DSP-модема. Вследствие чего имеем Linmodem.

Загрузить пакет с драйвером можно с сайта IBM - в разделе Download the ACP Modem driver необходимо выбрать пункт Current source code. Затем его следует распаковать и сконфигурировать. В первый раз желательно оставить все конфигурационные файлы без изменений и выполнить следующие команды:

# tar zxvf mwavem-<1.0.3>.i386.tar.gz # cd mwavem-<1.0.3> #./configure -enable-mwavedd

Во время выполнения команды может возникнуть ошибка с сообщением "Не найден каталог /usr/src/linux" - она устраняется созданием символической ссылки на существующее ядро:

# /bin/ln -s /usr/src/linux-<2.4.9-13> /usr/src/linux

А затем необходимо скомпилировать и установить драйвер:

# make # make install

После этого в системе, помимо файлов различных программ и утилит, будет создано устройство /dev/modems/mwave и драйвер /lib/modules/<2.4.9-13>custom/kernel/drivers/char/mwave/mwave.o. Далее необходимо скопировать папку с драйвером mwave. o в /lib/modules/<2.4.9-13>/kernel/drivers/char, а папку /lib/modules/<2.4.9-13>custom/ со всем ее содержимым удалить.

Затем нужно выполнить команду, которая перенастроит файл описания драйверов /lib/modules/<2.4.9-13>/modules.dep:

# cd /lib/modules/<2.4.9-13> # /sbin/depmod

Перейдем к созданию устройства /dev/modems/mwave и редактированию конфигурационного файла /usr/local/etc/mwavem.conf.



В разделе [WORLDTRADE] необходимо установить значение переменной Country равным 7, что соответствует стране "Россия". Поскольку переменной "Украина" в этом списке нет, остановимся на таком варианте.


Country=7

Теперь загрузим драйвер mwave:

# /sbin/modprobe mwave

Проверим его:

# /sbin/lsmod

Если выводится строка:

mwave 30656 4

значит, драйвер модема загрузился успешно, в таком случае два следующих абзаца можно пропустить и переходить к установке скрипта mwaved.

Если же указанная строка не вывелась на консоль, то, вероятнее всего, возникла ошибка, связанная с неверно установленными значениями irq и io. Для данной модели ноутбука методом проб и ошибок было выявлено, что устройством, "мешающим" загрузке драйвера mwave, является pcmcia-контроллер. Проверить это можно, запустив утилиту редактор скриптов (ntsysv или ksysv) и удалив из пятого уровня загрузки скрипт поддержки pcmcia-контроллера (который так и называется - PCMCIA).

Для чистоты эксперимента следует перезагрузить компьютер, а затем выполнить команду:

# /sbin/modprobe mwave

Скорее всего, после этого драйвер загрузится. Проверить это можно с помощью команды lsmod. Если же произошло невероятное и выдается сообщение об ошибке, отчаиваться не стоит. Нужно проанализировать содержание файлов /proc/ioports, /proc/dma, /proc/interrupts и определить, какое устройство все-таки "мешает" работать mwave. Измените значения параметров загрузки драйвера (используйте свободные значения io, dma, irq) - и попробуйте еще раз.

Итак, драйвер загружается. Можно считать, что полдела сделано. Предстоит добавить скрипт, который будет загружать модуль mwave при каждом старте OC LINUX. Для этого необходимо скопировать /mwavem-1.0.3/src/mwavem/mwaved в папку /etc/rc.d/init.d. Далее запускаем утилиту ntsysv (ksysv) и добавляем в требуемый уровень загрузки скрипт mwaved с порядковым номером 30 (согласно рекомендациям авторов).

Чтобы драйверы pcmcia и mwaved заработали совместно, необходимо в файле /etc/pcmcia/config.opts убрать символ комментария ("#") перед строкой:

exclude irq 3

Эта строка указывает скрипту, устанавливающему драйвер pcmcia, что третье прерывание (irq 3) использовать не нужно, так как оно зарезервировано для использования другим устройством.



Теперь следует запустить утилиту ntsysv (ksysv) и вернуть скрипт pcmcia на прежнее место (номер 45). После перезагрузки ноутбука можно проверить, как драйверы устройств ведут себя при одновременной загрузке. Подтверждением успешной загрузки скриптов будет слово "Ok" в строке каждого устройства - и pcmcia, и mwave.

После успешной загрузки драйверов может возникнуть проблема с сетевой картой 3COM 589 - если она "возжелает" занять десятое прерывание (irq 10). Проверить, активен сетевой интерфейс или нет, можно командой, которая показывает состояние всех сетевых интерфейсов:

# /sbin/ifconfig -a

Если сетевая карта конфликтует с mwave-модемом, необходимо проверить, какие прерывания заняты, а какие свободны. Это можно увидеть, просмотрев содержимое файла /proc/interrupts:

# /bin/cat/proc/interrupts

Но вернемся к редактированию файла /etc/pcmcia/config.opts. Если параллельный порт не используется, а в файле /etc/pcmcia/config.opts присутствует строка:

exclude irq 7

значит, седьмое прерывание (irq 7) зарезервировано и его можно использовать для другого устройства. Достаточно закомментировать эту строку, добавив в начало строки символ "#". Для того чтобы драйвер сетевой карты не пытался занять десятое прерывание (irq 10) необходимо добавить в файл следующую строку:

exclude irq 10

После этих действий конфликт прерываний должен быть устранен.

Вернемся теперь к настройке модема и создадим "мягкую" ссылку на устройство /dev/ttyS1:

# /bin/ln -s /dev/ttyS1 /dev/modem

Для проверки работоспособности модема воспользуемся программой minicom. Ее необходимо выполнить c параметром -s, который позволит настроить программу сразу после ее запуска.

# /usr/bin/minicom -s

В появившемся окне configuration следует выбрать строку Serial port setup. Возникнет окно, отображающее текущие настройки. Они должны быть следующего содержания:

A - Serial Device: /dev/modem .... E - Bps/Par/Bits: 38400 8N1 F - Hardware Flow Control: Yes G - Software Flow Control: No

После нажатия клавиши <Enter> и выбора строки Exit происходит инициализация модема. Если она прошла успешно, можно позвонить какому-нибудь провайдеру посредством команды:

ATDP 1111111

где ATDP - команда набора номера в пульсовом режиме, а 1111111 - номер телефона.

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

CONNECT..

Это означает, что модем работает и соединение установлено.

Но может сложиться ситуация, когда модем начнет "общаться", но через 3-4 секунды "зависает", издавая пронзительный писк. При этом звук не слышен через динамики ноутбука. Реанимировать его можно лишь перезагрузкой всей OC. Если у вас происходит описанная ситуация, необходимо исправить раздел [STARTUP] конфигурационного файла /usr/local/etc/mwavem.conf. Строка скорости должна выглядеть так:

SPEED=33600

После этих изменений все должно успешно заработать.


Содержание раздела