我在寫一個內核模塊,它依賴於一個現有的內核模塊。我從樹中構建我的模塊(作爲外部模塊)。如何使一個Linux內核模塊依賴於具有depmod的另一個外部模塊?
如何聲明依賴關係,以便通過depmod識別它?
我在寫一個內核模塊,它依賴於一個現有的內核模塊。我從樹中構建我的模塊(作爲外部模塊)。如何使一個Linux內核模塊依賴於具有depmod的另一個外部模塊?
如何聲明依賴關係,以便通過depmod識別它?
你不需要。 depmod將運行當前/ lib/modules /目錄中的所有模塊,並基於未解析的符號構建依賴關係樹。
默認情況下,它會假定其他模塊未提供的任何符號都在內核中,但是您可以使用-e/-F選項來檢查是否也是如此。
雖然並不完全令人滿意,最好的我已經拿出來讓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'的最小QEMU + Buildroot示例:https://stackoverflow.com/a/44614246/895245 – 2017-06-18 11:03:18