Вставьте модули (* .ko), которые имеют циклические зависимости - PullRequest
2 голосов
/ 30 марта 2011

У меня есть три модуля ядра Linux (*.ko файлы).Они имеют циклические зависимости, подобные этому:

  • mod1.ko использует функции, экспортированные с помощью mod3.ko
  • mod2.ko использует функции, экспортируемые с помощью mod1.ko
  • mod3.ko использует функции, экспортированные mod1.ko и mod2.ko

Я не могу загрузить первый mod1.ko файл из-за ошибки «Неизвестный символ».Я также попробовал два других метода, но я получил ту же ошибку:

  • загрузка всех модулей одновременно

    insmod mod1.ko mod2.ko mod3.ko
    
  • Поместите эти файлы в/lib/modules/kernel_version/my_modules и запустите

    depmod kernel_version
    modprobe mod3
    

Может кто-нибудь помочь мне, пожалуйста!Любые предложения приветствуются.Заранее спасибо:)

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Ну, а как насчет того, чтобы объединить эти три модуля в один?

0 голосов
/ 29 апреля 2016

Я столкнулся с той же проблемой. Слияние модулей не было хорошим решением в моем случае.

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

Это устранило зависимость между модулями.

Затем можно сначала вставить независимый модуль, а затем зависимый модуль.

...