[sisyphus] dmfe vs tulip

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Чт Фев 28 13:40:24 MSK 2008


On Thu, Feb 28, 2008 at 02:03:58AM +0300, А.Китайкин wrote:
> Подскажите пожалуйста, кого и как отучить грузить модуль tulip
> в данном конкретном случае?
> 
> У меня имеется сетевая карточка:
> 
> 00:10.0 Ethernet controller: Davicom Semiconductor, Inc. 21x4x DEC-Tulip compatible 10/100 Ethernet (rev 40)
>         Subsystem: Unknown device 4554:434e
>         Flags: bus master, medium devsel, latency 32, IRQ 10
>         I/O ports at e400 [size=256]
>         Memory at df001000 (32-bit, non-prefetchable) [size=256]
>         [virtual] Expansion ROM at 20000000 [disabled] [size=256K]
>         Capabilities: <access denied>
>         Kernel driver in use: dmfe
> 
> При загрузке компьютера усердно грузится tulip. Но сеть работает
> через dmfe.
> 
> В настройках etcnet в options прописано MODULE=dmfe, в результате
> в память загружаются оба. С ядром 2.6.18 сеть как-то работала.

Потому что в это ядро входил патч, который по умолчанию отключал
поддержку этих карточек в модуле tulip (грузились всё равно оба
модуля, но без дополнительных параметров модуль tulip игнорировал
устройство).

    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=334104
    https://launchpad.net/bugs/48287

> Попробовал 2.6.24-std-def и облом: теперь сеть запускается только
> после выгрузки обоих модулей и повторной загрузки dmfe.

На ядро 2.6.24 этот патч ещё не перенесён; апстрим, очевидно, тоже до
сих пор не исправил эту проблему.

> ...До и в процессе сочинения этого письма провел несколько
> экспериментов.
> 
> Правил pci.ids и pcitable в hwdatabase, добавил девайс и связь с
> dmfe, не помогло.

Эти файлы не используются при загрузке модулей (когда-то очень давно
информация бралась из pcitable, сейчас используются только данные из
самих модулей и blacklist в конфигурации modprobe).

> Правка /etc/hotplug/blacklist не помогла (убрал dmfe, добавил tulip,
> все равно грузится!).

hotplug сейчас не используется (остались только старые хвосты типа
acpi.rc; на 2.6.24 и они станут окончательно ненужными).

> В udev ничего не понял. В т.ч. как vendor и devid связать с чем-л.

Этим занимается не непосредственно udev, а modprobe (модуль ищется по
modalias и встроенным алиасам).

> О, чудо! Ура! Заработало! - Добавил blacklist tulip в новый файлик
> в /etc/modprobe.d

Этот вариант будет работать, если не потребуется установить рядом
другую карточку, для которой нужен будет модуль tulip.

> Вопрос остался: кто хранит тайные знания о правильных драйверах?

Обычно сопоставление идёт по modalias - список поддерживаемых модулем
устройств виден в выводе modinfo; общий список извлекается из модулей
при выполнении depmod и помещается в /lib/modules/$KVER/modules.alias.
Проблемы возникают в ситуациях, когда на один и тот же идентификатор
по каким-то причинам претендует несколько модулей (в данном случае это
означает, что для устройства есть несколько разных драйверов с
различным набором ошибок в каждом из них).

> И почему вечно грузится tulip, хотя не работает, а работает dmfe?

По приведённым выше ссылкам указано, что на некоторых архитектурах по
каким-то причинам с аналогичными устройствами нормально работает
драйвер tulip, а как раз dmfe не работает; что с этим делать -
непонятно.

> На работе за последние годы прошло несколько карточек от C-Net,
> и все dmfe, и все конфигурировались вручную. Раньше было просто,
> главное прозрачно, alias eth0 "и получи то что ты видишь".
> А что взамен?

Насколько я понял, с 2.6.18-std-smp эти карточки всё-таки должны были
работать сразу; с vanilla (чем по сути сейчас является std-def) они
действительно не работают без дополнительной настройки.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20080228/b47ee1e5/attachment-0002.bin>


Подробная информация о списке рассылки Sisyphus