Взял я у товарища на пару деньков serial-модем ZyXEl OMNI 56k MINI (т.е. внешний hard-модем), чтобы попробовать выйти с помощью него в Интернет из моего Linux'а Slackware.
Отконфигурировал ядро (ванильное, версия 2.6.14.4):
Device Drivers -> Character devices -> Serial drivers:
-- 8250/16550 and compatible serial support - Y
Device Drivers -> Network device support:
-- Network device support - Y
-- Dummy net driver support - Y
-- PPP (point-to-point protocol) support - M
-- PPP support for async serial ports - M
-- PPP Deflare compression - M
-- PPP BSD-Compress compression - M
Собрал, загрузился в него.
Установил пакет ppp_2.4.4b1.
Убедился, что симлинк /dev/modem указывает на устройство /dev/ttyS0 (именно здесь и располагается модем).
Подключение двух модулей прошло успешно:
# modprobe ppp_generic
# modprobe ppp_deflate
А вот с третьим не вышло:
# modprobe ppp_async
FATAL: Error inserting ppp_async (/lib/modules/2.6.12se/kernel/drivers/net/ppp_async.ko): Unknown symbol in module, or unknown parameter (see dmesg)
где:
-- se (2.6.12se) - это EXTRAVERSION в Makefile (/usr/src/linux).
Затем выполняю:
# dmesg | tail
<..>
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
ppp_async: Unknown symbol crc_ccitt_table
<..>
Запустил KPPP от root'а. Указал на свой модем в настройках (/dev/ttyS0), создал соединение. начинаю коннектиться.
Модем набрал номер, начались характерные звуки соединения. В тот момент, когда в Windows выскакивает сообщение, что соединение установлено (В Linux'е я еще ни разу в Инет не выходил), KPPP выкинуло ошибку с кодом возврата 1 и сообщением:
Couldn't set tty to PPP discipline: Invalid argument.
В журнале KPPP были такие записи:
ATZ
OK
ATM1L3
OK
ATDT8200
CONNECT 115200/v.90 45333/v42b
// 8200 - это телефонный номер провайдера.
А внизу, когда вылетает ошибка, всегда написано: запускаем pppd...
В /var/log/messages по этому поводу написано вот что:
<..> pppd[1888]: pppd 2.4.4b1 started by iam, uid 1000
<..> modpobe: FATAL: Error inserting ppp_async (/lib/modules/2.6.12se/kernel/drivers/net/ppp_async.ko): Unknown symbol
in odule, or unknown parameter (see dmesg)
<..> pppd[1888]: Exit
Где:
-- iam - это мой аккаунт в системе
-- <..> - это дата, время и хост (localhost).
Путем нехитрых умозаключений, пришел к выводу, что pppd работает, модем KPPP успешно обнаруживает, но вот проблема с модулем ядра.
Ошибка в ядре?
Не указана какая-то еще опция при конфигурации ядра, из-за которой модуль ppp_async отказывается работать?
Кстати, пробовал вкомпилировать в ядро все опции с PPP. KPPP все равно не коннектился, только уже вылетал с кодом ошибки 4, и твердил, что this system lacks kernel support for ppp.
Первое, что приходит в голову, это сменить ядро на более свежее и попробовать с ним (кстати, я так и не смог наложить патч на это ядро. Оно постоянно ругалось на смещение строк).
Может быть у кого-нибудь будут еще идеи? Или подсказки, что я пропустил.