Я пишу модуль ядра, который зависит от одного существующего модуля ядра. Я создаю свой модуль из дерева (как внешний модуль).
Как я могу объявить зависимость, так, чтобы она была распознана depmod?
Хотя это не совсем удовлетворительно, лучшее, что я придумал, чтобы заставить 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
Это не обязательно. depmod пройдется по всем модулям в текущем каталоге /lib/modules/ и построит дерево зависимостей на основе неразрешенных символов.
По умолчанию он будет считать, что любой символ, не предоставленный другим модулем, находится в ядре, однако вы можете использовать опции -e/-F для проверки этого.