LINUX.ORG.RU

поддержка IDE-чипсета не подключается из модуля


0

0

у меня чипсет который в ядре обозначен как VIA82CXXX. если
вкомпилировать его в ядро то все ок -- dma на дисках работает

если же попытаться скомпилировать его модулем то начинаются
проблемы. автоматом оно не подхватывается, на попытку
insmod via82cxxx (или modprobe) отвечает

/lib/modules/2.4.30/kernel/drivers/ide/pci/via82cxxx.o: unresolved symbol ide_setup_dma

и еще несколько

в конфигурации ядра меняется только один флажок:

<*> VIA82CXXX chipset support --> <M> VIA82CXXX chipset support

тем не менее не работает

в System.map символ ide_setup_dma и прочие есть

anonymous

Ответ на: комментарий от JB

мне надо одну rpm-сборку разбросать на восемь машин, у них чипсеты разные. боюсь будут проблемы

anonymous
()

Да, это общая проблема ядер 2.6

Либо куда-нить в начальные скрипты вставь modprobe, либо собери поддержку для всех своих чипсетов в ядро - так делают дистростроители. Все будет работать нормально.

jackill ★★★★★
()

>insmod via82cxxx (или modprobe) отвечает

Так insmod или modprobe.

Если только insmod, то скорее всего, не хватает еще какого-то модуля, от которого зависит нужный тебе.

anonymous
()
Ответ на: комментарий от jackill

пардон. забыл указать конкретно. ядро 2.4.30

с ядрами 2.6.x такая же проблема?

anonymous
()
Ответ на: комментарий от anonymous

с dma диски работают со скоростью в ~10 раз быстрее чем без

без сборки под конкретный чипсет dma не работает

причина достаточна?

anonymous
()

слушайте, что серьезно что ли у всех такие траблезы? я сперва думал что там какую-то галку недоглядел, а сегодня весь гугль облазил ничего полезного не нашел

вот ведь блин. нафига тогда вообще позволять пользователю модулями это дело собирать если оно не работает?

anonymous
()
Ответ на: комментарий от anonymous

modprobe и работает. Я так одно время и делал.

Но на 2.4 у меня подцеплялось все автоматом. Так что странно, почему у тебя так.

kernel module loader у тебя собран (как-то так называется)?

jackill ★★★★★
()
Ответ на: комментарий от jackill

> kernel module loader у тебя собран

конечно да. да вообще все модули подцепляются -- сетевухи, звуковухи scsi, все нормально. а вот этот чего-то нет

> Но на 2.4 у меня подцеплялось все автоматом.

где ж эта волшебная галка-то... ты уверен что это были именно модули? если, повторюсь, в ядро вкомпилять то все работает как надо

anonymous
()
Ответ на: комментарий от anonymous

# depmod -a

depmod: *** Unresolved symbols in /lib/modules/2.4.30/kernel/drivers/ide/pci/via82cxxx.o

anonymous
()

АФИГЕТЬ

добил-таки. знаете как? вот символы, которые insmod видеть не хотел: ide_setup_dma, ide_pci_unregister_driver, ide_pci_register_driver, ide_setup_pci_device

сидят они в исходниках ядра в модулях ide-dma.c и setup-pci.c; экпортируются в наружу при помощи макроса EXPORT_SYMBOL_GPL. также для экспорта символов используется макрос EXPORT_SYMBOL (просто, без _GPL). цитата из kernel-hacking

EXPORT_SYMBOL_GPL

Similar to EXPORT_SYMBOL() except that the symbols exported by EXPORT_SYMBOL_GPL() can only be seen by modules with a MODULE_LICENSE() that specifies a GPL compatible license.

вот я его и убрал, перекомпилил -- и ЗАРАБОТАЛО

может надо было просто из via82cxxx.c убрать MODULE_LICENSE("GPL")?

anonymous
()
Ответ на: комментарий от anonymous

А не проще было собрать ядро с поддержкой initrd? Ну и сам initrd с нужными модулями, естественно.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.