ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: Sergey Vlasov <vsu@altlinux.ru>
To: community@altlinux.ru
Subject: Re: [Comm] Проблемы с Iola PLN
Date: Sat, 16 Jul 2005 22:27:35 +0400
Message-ID: <20050716182735.GA12954@procyon.home> (raw)
In-Reply-To: <42D93CCB.2080409@tula.net>

[-- Attachment #1: Type: text/plain, Size: 3650 bytes --]

On Sat, Jul 16, 2005 at 08:58:51PM +0400, Андрей Жмурин wrote:
> Заранее прошу на чайника сильно не замахиваться. Поиск по архивам
> не дал никакой информации, потому и пишу сюда.
> 
> Имеем: из железа - однопортовый PCI-адаптер IolaPLN (надтональный 
> xDSL-модем, изготавливается в Калуге), из софта - ALM2.4 и родные
> дрова, взятые с сайта - http://www.iola.ru/1251/support.htm
> (пробовал и 3.07, и 3.11-2).
> 
> Поставил пакет с исходниками ядра, пакет с заголовками, gcc++ 2.95.
> Распаковал исходники, запустил make menuconfig, получил .config ядра,
> дал на него ссылку в includes (дрова Иолы очень хотели его там видеть).

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

> Откомпилил согласно документации, сделал depmod -a, modprobe ipln

Странно, что собранный таким образом модуль вообще загрузился...

> dmesg показал наличие записей про Iola на eth0 с правильным IP и MAC
> (он по IP у них ставится), но утилита конфигурации говорит, что
> появившийся eth0 не является открытым, потому что это вообще не IolaPLN.
> 
> Активно подозреваю, что где-то сильно накосячил, но пока опыта не хватает
> понять, где? Если кто сможет ситуацию прояснить, буду признателен...

Больше всех накосячили разработчики драйвера - это же надо сделать
Makefile и скрипты вокруг, наводящие на мысли о подобном способе
сборки.  А уж как они собирают модуль для ядер 2.6.x - это вообще
достойно занесения в сборник вредных советов (я-то надеялся, что с
2.6, где есть стандартная процедура для сборки сторонних модулей,
подобными извращениями больше никто заниматься не будет).

Вместо всего этого безобразия нужно:

0) Удалить модули, которые были собраны оригинальными скриптами, из
/lib/modules.

1) Поставить пакет kernel-headers-modules-std-up (версия и сборка
этого пакета должны точно соответствовать используемому ядру - если
ядро обновлялось из updates, то и этот пакет необходимо взять оттуда
же).  Или kernel-headers-modules-std-smp, если используется SMP-ядро.
При этом автоматически вытянется по зависимостям пакет
kernel-headers-std-up и соответствующая версия компилятора (в данном
случае - gcc2.96).

2) Распаковать исходники драйвера и положить в каталог ipln/linux файл
Makefile следующего содержания:

===========================================================================
obj-m := ipln.o iplnusb.o

src ?= .
EXTRA_CFLAGS := -I$(src)/../common -DIPLN

-include $(TOPDIR)/Rules.make
===========================================================================

3) Находясь в этом же каталоге, выполнить команду вида:

	make -C /usr/src/linux-2.4.26-std-up modules SUBDIRS=`pwd`

(имя каталога зависит от версии и варианта ядра).

4) Положить собранные модули ipln.o, iplnusb.o (или ipln.ko,
iplnusb.ko для ядер 2.6.x) куда-нибудь в /lib/modules/<версия_ядра>
(можно создать там подкаталог с любым разумным именем, чтобы не
смешивать эти файлы с установленными из пакетов).

5) Выполнить команду depmod -a.

После этого можно загружать модуль (modprobe ipln).

Кстати, похоже, этот модуль при загрузке читает файл /etc/ipln.cfg
(ещё одна вещь, которая в нормальных модулях делаться не должна) -
возможно, какие-то проблемы вызываются отсутствием или неправильным
содержимым этого файла.

В процессе борьбы с утилитой конфигурации может пригодиться strace,
чтобы посмотреть, что она пытается делать.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2005-07-16 18:27 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-16 16:58 Андрей Жмурин
2005-07-16 18:27 ` Sergey Vlasov [this message]
2005-07-17 15:04   ` Андрей Жмурин
2005-07-17 16:25 ` [Comm] " Michael Shigorin
2005-07-18 12:39   ` Maxim Bodyansky
2005-07-18 13:11     ` Michael Shigorin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050716182735.GA12954@procyon.home \
    --to=vsu@altlinux.ru \
    --cc=community@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git