Данные заметки относятся только к модемам, основанным на чипсетах
фирмы Lucent (бывшая Bell Labs, нынешняя Agere (http://www.agere.com/)).
В моём случае это Genius GM56PCI-LA. Более полную информацию на русском
языке, в том числе по другим чипсетам и по их поддержке в ALTLinux'е,
смотрите здесь: http://wiki.atmsk.ru/?LinHardWare/Modem/WinModem.
Кроме того, по адресу ftp://ftp.atmsk.ru/pub/contrib находятся уже
собранные RPM-пакеты для поддержки Lucent WinModems в ALT Linux
Master/Junior 2.2, автором которых является Вадим Липатов. К
сожалению, к ним не прилагается src.rpm, так как он, по словам автора,
утерян. Поскольку каждая сборка ядра теоретически требует
соответствующей сборки драйверов, по мере выхода обновлений ядра
указанные пакеты с драйверами становятся всё менее и менее
актуальными.
Наконец, надобность в данной странице отпадёт, когда/если ALT станет
поддерживать Lucent-модемы <<из коробки>>.
Итак... В Интернете опубликовано ДВА разных пакета, носящих одинаковое
название ltmodem.
Один их них распространяется с сайта http://www.close.u-net.com/ltmodem.html
и имеет версию 0.9.9. Вот что он умеет:
* Detects Lucent PCI modems, prints rom checksums, estabilishes
basic communication with the modem.
* Get the modem on/off hook and dial both dtmf and pulse.
* Detects dial tone and answer tone.
* Detects incoming call, then goes offhook.
* Completely working full duplex voice mode (working at 8kHz, 16
bit, linear). It is already possible to use this driver to turn
your winmodem into telephone.
То есть ЭТО НЕ ДРАЙВЕРЫ, а набор утилит! И они у меня не заработали.
Второй распространяется с сайта http://www.heby.de/ltmodem и содержит
драйверы для ядер серии 2.4. Текущая версия пакета - 8.26a9. Он-то нам
и нужен (примечание: последняя версия для ядер серии 2.2 -- 6.00).
Собирать из него RPM я не пробовал, так как у меня сложилось
впечатление, что его утилиты сборки и установки:
* чересчур <<интерактивны>> для того, чтобы можно было использовать
их для сборки и установки RPM-пакета;
* чересчур <<интеллектуальны>> для того, чтобы можно было установить
на машине А пакет, собранный на машине Б.
Вместо этого здесь находится патч и инструкция, которые позволят вам
выполнить все необходимые действия самостоятельно. Если такой вариант
вас не устраивает, в пакете с исходниками есть сценарий build_rpm,
который, если повезeт, соберeт RPM-пакет, пригодный для RedHat'a.
Готовые пакеты для разных дистрибутивов есть и на сайте. Можете
попробовать установить один из них в сомнительной надежде, что он
заработает в ALM 2.2. Я предпочeл выполнить сборку вручную.
_________________________________________________________________
Если вам лень копировать команды из Веб-браузера в терминал, можете
скачать и запустить этот сценарий (прим. см. ниже ltmodem-allstuff.sh).
Он выполняет шаги с первого по четвёртый.
Шаг 1. Установка компилятора, библиотек и утилит.
sudo apt-get install gcc3.2 glibc-devel kernel24-headers make patch
Здесь подразумевается, что (а) у вас установлено ядро 2.4 (для ядра
2.2 нужны, соответственно, kernel22-headers) и (б) для построения
модулей вы будете использовать компилятор GCC версии 3.2. Хотя ядро
скомпилировано GCC 2.96, который не имеет полной двоичной
совместимости с 3.x, у меня такой симбиоз проблем не вызвал. Если
хотите гарантированно их избежать, устанавливайте пакет gcc2.96.
Шаг 2. Скачиваем и устанавливаем исходные тексты драйвера.
mkdir ~/src && cd ~/src
wget -c http://www.physcip.uni-stuttgart.de/heby/ltmodem/ltmodem-8.26a9.tar.gz
tar xzf ltmodem-8.26a9.tar.gz
cd ltmodem-8.26a9
Можете выбрать [9]ближайший FTP-сервер.
Шаг 3. Накладываем мой патч (прим. копия в конце статьи):
Что даeт патч?
1. Позволяет запускать build_module не от root'a, а от простого
пользователя, но имеющего право запуска sudo.
2. Позволяет компилировать драйверы версией компилятора, отличной от
той, которая использовалась для компиляции ядра (см.выше).
3. Правит пути для поиска заголовочных файлов ядра, т.к. в ALT'e они
слегка отличаются от общепринятых.
Шаг 4. Компилируем, устанавливаем и настраиваем модули.
sudo ./scanmodem # убеждаемся, что модем распознаeтся
./build_module # компилируем... приготовьтесь нажимать Enter ;-)
sudo ./ltinst2 # инсталлируем lt_modem.o и lt_serial.o в /lib/modules/`
uname -r`/ltmodem
sudo rm -f /dev/modem # ...иначе заругается
sudo ./autoload # создаeм /dev/ttyLT0, правим /etc/modules.conf
Шаг 5. Проверка.
1. Драйверы установлены?
$ ls -l /lib/modules/`uname -r`/ltmodem
-rw-r--r-- 1 root root 543712 Jan 9 13:58 lt_modem.o
-rw-r--r-- 1 root root 28049 Jan 9 13:58 lt_serial.o