Ключевые слова:modem, winmodem, win, linux, driver, hardware, (найти похожие документы)
From: Ilya Evseev <ilya_evseev AT mail TOCHKA ru>
Date: Mon, 28 Feb 2004 14:31:37 +0000 (UTC)
Subject: Настройка Lucent WinModem в ALT Linux
Оригинал: http://ilya-evseev.narod.ru/posix/linmodem/
Lucent WinModem в ALT Linux Master
Данные заметки относятся только к модемам, основанным на чипсетах
фирмы 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. Накладываем мой патч (прим. копия в конце статьи):
wget http://ilya-evseev.narod.ru/posix/linmodem/ltmodem-8.26a9-alt1.patch
patch < ltmodem-8.26a9-alt1.patch
Что да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
2. Драйверы запущены?
$ depmod -a; lsmod | grep lt_
lt_serial 20628 0 (autoclean)
lt_modem 472475 0 (autoclean) [lt_serial]
3. Автозагрузка драйверов при старте системы включена?
$ grep lt_ /etc/modules.conf
# lt_drivers: autoloading and insertion parameter usage
alias char-major-62 lt_serial
alias /dev/tts/LT0 lt_serial
alias /dev/modem lt_serial
4. Модем распознаётся?
$ wvdialconf /tmp/wvdial_ltmodem.conf
_________________________________________________________________
Последнее изменение: 02 February 2004 MSK 05:45
Ругань принимается по адресу: ilya_evseev AT mail TOCHKA ru.
ltmodem-allstuff.sh
#!/bin/sh
#
# ltmodem-allstuff.sh
#
# Automate dowloading, compiling and installing
# Lucent WinModem 8.26a9 drivers for Linux.
#
# Original location:
# http://ilya-evseev.narod.ru/posix/linmodem
#
# Author:
# ilya_evseev AT mail TOCHKA ru
#
# Last changed:
# 27 January 2004 MSK 15:53
#
set -e
echo "Step 1: installing compiler, library, utilities..."
sudo apt-get install gcc3.2 glibc-devel kernel24-headers make patch
echo "Step 2: downloading sources..."
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
echo "Step 3: downloading and applying patch..."
wget http://ilya-evseev.narod.ru/posix/linmodem/ltmodem-8.26a9-alt1.patch
patch < ltmodem-8.26a9-alt1.patch
echo "Step 4: build, install, configure..."
sudo ./scanmodem
./build_module
sudo ./ltinst2
test -e /dev/modem && sudo rm -f /dev/modem
sudo ./autoload
## EOF ##
ltmodem-8.26a9-alt1.patch
--- build_module.orig 2004-01-09 13:20:08 +0300
+++ build_module 2004-01-11 13:08:27 +0300
@@ -64,9 +64,13 @@
exit 2
fi
-mkdir -p /tmp/ltmodem
-TMPM=/tmp/ltmodem/tmpfile
-echo $TMPM
+if [ -z "$TMPDIR" ]; then
+ test -d ~/tmp && TMPDIR=~/tmp || TMPDIR=/tmp
+fi
+TMPD=$TMPDIR/ltmodem
+test -d $TMPD || mkdir -p $TMPD
+TMPM=$TMPD/tmpfile
+echo Assign Record File to $TMPM
export TMPM=$TMPM
# FAST is usually exported from build_rpm or build_deb.
@@ -253,7 +257,13 @@
if [ -z "$FAST" ]; then
# Calling scanPCI utility
-utils/scanmodem
+if [ $UID = 0 ]; then
+ utils/scanmodem
+else
+ echo Enter your password to executing ScanModem under Root privileges...
+ sudo utils/scanmodem
+ sudo chown $USER $TMPD/*
+fi
echo
read -p "To continue: Enter"
echo ==================================================
@@ -345,6 +355,23 @@
rm -rf $BASE
tar zxf $BASE.tar.gz
+ echo
+ echo "Patching configure..."
+ echo '
+--- configure.orig 2004-01-09 13:28:13 +0300
++++ configure 2004-01-09 13:28:30 +0300
+@@ -992,6 +992,7 @@
+ KERNEL_HEAD_ALT="$KERNEL_HEAD_ALT /usr/src/linux-`echo "$KERNEL_VERSION" | cut -d"-" -f1`"
+ fi
+ KERNEL_HEAD_ALT="$KERNEL_HEAD_ALT /usr/src/linux-$KERNEL_VERSION \
++ /usr \
+ /lib/modules/$KERNEL_VERSION_ORI/build"
+
+ for DIR in $KERNEL_HEAD_ALT
+' | patch -d source
+ echo "...done"
+ echo
+
# for rpm Distro -CPU.rpm with CPU exported from build_rpm
if test -n "$CPU" ; then
echo CPU='"'$CPU'"' >> $BASE/SETTINGS
@@ -919,6 +946,25 @@
fi #TEST=1
+echo
+echo "Patching autoload..."
+echo '
+--- source/autoload.orig 2004-01-09 14:04:12 +0300
++++ source/autoload 2004-01-09 14:07:28 +0300
+@@ -274,8 +274,7 @@
+ END
+ cat $TMPM >> $RECORD
+ cat $TMPM
+- sleep3
+- exit 1
++ read -p "Press Ctrl+C to abort, Enter to continue AT YOUR OWN RISK!"
+ fi
+
+
+' | patch -d source
+echo "...done"
+echo
+
if [ -z "$FAST" ]; then
if [ -n "$FV" ] ; then
echo For useful methods of packaging drivers read DOCs/Options.txt
@@ -941,3 +987,4 @@
fi
fi # FAST
echo
+