module_softdep

yooooooo發表於2024-08-25

所謂的MODULE_SOFTDEP,就是兩個兩個模組之間本有依賴,但是一定要要載入順序的要求。
用法很簡單。

#define MODULE_SOFTDEP(_softdep) MODULE_INFO(softdep, _softdep)

舉例如下:

 MODULE_SOFTDEP("pre: module-foo post: module-baz")

這個例子說明module-foo 這個模組。module-foo是這個模組的名字,因此這個模組就是module-foo.ko 必須要在
module-baz.ko 之前載入。

如果是在module-foo.ko 中包含的原始檔中呼叫MODULE_SOFTDEP。則可以簡化成MODULE_SOFTDEP("pre: module-foo"),反之既然.

在kernel中用到的例子。MODULE_SOFTDEP("pre: crct10dif");
會生成一個module.softdep的檔案.檔案中的內容如下:

softdep sctp_probe pre: sctp

這樣呼叫modprobe的時候會從參考這個檔案中的資訊,在載入sctp_probe.ko 之前會線載入sctp.ko