|
- Андрей Рандрианасулу, 2.10.2003 -
Описание установки дров для win-modem'a.
НЕ HOWTO! Но кое-что, мне кажется, будет полезным.
У меня случилась беда: сгорел мой замечательный U. S. Robotics (56k, FAX, EXT) :(
Как оказалось, в его схеме не было трансформатора... Был модем куплен по случаю полного перехода на Linux, работал как часы, вполне оправдывая свою высокую цену. Но... Однажды вечером модем на попытку дозвона в Инет ответил "нет сигнала в линии"... И с тех пор он линию так и не увидел :( Оставшись без доступа в Сеть, пришлось задуматься о временной замене железного модема на хоть какой-нибудь модемчик. Разумеется, поддерживаемый Linux.
Такой модем нашелся у приятеля - Lucent Win Modem (PCI). Из разного рода источников я знал, что этот модем в принципе работает под Linux и BeOS :) Осталось только установить драйвер... "Что я, драйвера под Linux не ставил?! :)" - подумал я и скачал (у друга, т.к. сам без модема в Сеть ходить не умею :) ) некий файл, найденный через rpmseek.com. Это был SRPM, однако я его распотрошил и вызволил в home файл kernel-source-ltmodem-8.26a9.tar.bz2
А вот сама SRPM'ка потерялась :(. Поэтому я и не могу ее сейчас назвать - забыл. Распаковав архив в одноименную директорию, получил довольно большое кол-во файлов.... Тут стоит разъяснить: я был почти уверен в том, что для сборки модулей именно этого драйвера зачем-то необходимы исходники ядра, а не только kernel-headers. Но получить исходники было довольно проблематично, потому что я выкачивал из инета однодисковый дистр ALT Linux Junior 2.2.
И позже добавил в него много разных пакетов с ftp.altlinux.ru. Но вот пакет с исходниками ядра показался мне слишком большим. И я его не взял. А теперь протащить его стало вдвойне проблематичнее - моя машина общается с миром только через USB Flash Drive, ни флоппи, ни CD-ROM'а нету (флоппик не взял из соображений морального устаревания, сидюк ....... хм, сломался... Это отдельная история, отличный пищущий привод превратился после небольшого намокания в самый странный девайс на свете - Win-CDROM .... ). Решил на свой страх и риск попробовать откомпилировать модули только с одними kernel-headers, без полных исходных текстов ядра.
Итак, что имеем:
Ядро: 2.4.20-alt6-up
Заголовки ядра ставились из: kernel24-headers-2.4.20-alt6.i586.rpm
Make: GNU Make version 3.79.1
gcc: gcc version 2.96 20000731 (ALT Linux, build 2.96-alt3)
Железо:
Board Name: i440BX-ALI513x
Detected 420.009 MHz processor
CPU: Intel Pentium II (Deschutes) stepping 03
128MB LOWMEM available
(Это все по dmesg |less , модем я еще не втыкал)
Захожу в директорию с распакованными исходниками, из которых предстоит собрать модуль.
Читаю 1ST-READ, ис удивлением обнаруживаю, что у меня нету многих файлов! Но в надежде, что это не критичные для сборки файлы, запускаю configure. Скрипт завершается сообщением о ненайденных заголовках. Из 1ST-READ узнаю, что неплохо бы поместить заголовки в стандартные папки поиска, вроде /usr/src, а не туда, куда они меня поставились из rpm'ки: /usr/lib/kernel/2.4.20-alt6/include/
Делаю "su -" и после ввода пароля root'а ввожу:
ln -s /usr/lib/kernel/2.4.20-alt6 /usr/src/linux
Готово, теперь скрипт увидел заголовки и отработал до конца.
Дальше запускаю в директории с исходными текстами драйвера скрипт build_drivers_rpm
Он завершается с ошибками, но судя по всему драйвера откомпилировались - я вижу новые файлы и среди них:
560482 Окт 1 01:13 lt_modem.o
27390 Окт 1 01:14 lt_serial.o
Теперь стоит эти модули отправть в директорию, где у меня лежат остальные модули.
Можно вручную, но все же стоит попробовать скрипт ltinst2
Скрипт выдает ошибки, но все же помещает файлы в нужное место:
/lib/modules/2.4.20-alt6-up/ltmodem/lt_serial.o
/lib/modules/2.4.20-alt6-up/ltmodem/lt_modem.o
Теперь надо настроить загрузку модуля lt_serial, он протащит за собой lt_modem (если найдет "свой" модем). Нужного скрипта у меня как раз не было, пришлось читать 1ST-READ.
There is a block with the file /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
# The next line is a syntax example, rarely needed, to automate parameter
usage during lt_drivers insertion. See documentation for details
# options lt_modem vendor_id=0x115d device_id=0x0420 Forced=3,0x130,0x2f8
# section for lt_drivers ends
Однако все это прописал kudzu, когда я перед очередной загрузкой воткнул наконец модем :)
Устройство отозвалось на lspci -v невразумительно, что-то типа
00:11.0 Class 0780: 11c1:0440 (rev 01)
Subsystem: 11c1:0440
Точно не помню, причину сейчас объясню.
Запускаю kppp, выбираю устройство /dev/modem и пытаюсь посмотреть, что же мне модем по ATI 1-9 командам выдаст. Не выходит, получаю надпись "модем занят". Ага, видимо дело в отсутствии устройства в /dev ... Так и есть, нету /dev/modem и /dev/ttyLT0!
Кстати, и lsmod мой казалось бы загруженный при старте (в /etc/modules.conf все необходимые строчки прописались автоматически, как я уже сказал) lt_serial не показывал. Однако modprobe lt_serial грузил все как надо.
ладно, создаем устройства! Не зная, как это делается, заглянул во все файлы в директории с драйвером... Ага.... похоже эта команда...
mknod /dev/ttyLT0 c 62 64
Угу, получилось :)
Теперь
chown root /dev/ttyLT0
chgrp uucp /dev/ttyLT0
chmod 660 /dev/ttyLT0
(Это все по аналогии с ttyS0)
ln -s /dev/ttyLT0 /dev/modem
А вот и ссылка :)
сhmod 777 /dev/modem
(По аналогии с рядом лежащей ссылкой mouse)
Права доступа расставили....
Запускаю kppp.
Ура! Модем откликнулся!
Довольно странные строчки получаются при попытке опросить модем, однако не вид главное, да?
Пытаюсь набрать номер провайдера. Все как будто подвисает, мышь еле двигается и замирает вовсе, на экране "замерзает" даже gkrellm :( Однако вскоре в окне журнала вырисовывается ответ модема на строки инициализации. Это "ок". Вот набирается номер. Вернее, снова все замерзает и через некоторое время вылезает надпись "No Dialtone" :( Бяка :(
Перепроверяю все провода, что идут от телефонной розетки ко мне в модем. Порядок! Сам модем заведомо исправен. Ох! Перегрузиться, что ли? Перегружаюсь, модуль (lt_serial) теперь сам прогружается, но при попытке воспользоваться модемом жуткие тормоза и "No dialtone".
В общем, это была аппаратная проблема... Переставил модем в другой слот pci и все заработало :) :)
И быстро :)
Как и все в linux :)
|