Как заставить один модуль ядра Linux зависеть от другого внешнего модуля с depmod?

Я пишу модуль ядра, который зависит от одного существующего модуля ядра. Я создаю свой модуль из дерева (как внешний модуль).

Как я могу объявить зависимость, так, чтобы она была распознана depmod?

5
задан Ciro Santilli 新疆改造中心法轮功六四事件 20 May 2017 в 12:33
поделиться

2 ответа

Хотя это не совсем удовлетворительно, лучшее, что я придумал, чтобы заставить modprobe работать, это либо добавить запись в modules. dep

# tail -1 modules.dep
../../../../home/ctuffli/mymod/mymod.ko: kernel/drivers/scsi/libsas/libsas.ko kernel/drivers/scsi/scsi_transport_sas.ko

или, как вариант, символически связать модуль вне дерева с /lib/modules/ и позволить depmod разобраться с зависимостями

# ln -s /home/ctuffli/mymod/mymod.ko /lib/modules/2.6.31-19-server/kernel/drivers/scsi/
# depmod
# grep mymod /lib/modules/2.6.31-19-server/modules.dep
kernel/drivers/scsi/mymod.ko: kernel/drivers/scsi/libsas/libsas.ko kernel/drivers/scsi/scsi_transport_sas.ko
4
ответ дан 15 December 2019 в 01:00
поделиться

Это не обязательно. depmod пройдется по всем модулям в текущем каталоге /lib/modules/ и построит дерево зависимостей на основе неразрешенных символов.

По умолчанию он будет считать, что любой символ, не предоставленный другим модулем, находится в ядре, однако вы можете использовать опции -e/-F для проверки этого.

0
ответ дан 15 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: