CONFIG_MODULE_SIG
: 加载模块时校验签名
CONFIG_MODULE_SIG_FORCE
: 禁止加载没签名的模块和签名密钥未知的模块
CONFIG_MODULE_SIG_ALL
: 为所有模块进行签名
CONFIG_MODVERSIONS
: 加载模块时校验内核版本与模块的"vermagic"信息是否一致
根据需要关闭这些config项 我的建议是全部关闭
即使这样做 仍然会有很多限制 比如你的模块必须是和内核一起编译的才能成功加载 第二次编译的内核去加载前一次编译的模块是加载不了的(除非魔改kernel/module.c
)
另外 如果生成的模块ko文件太大 可以用你编译内核时使用的交叉编译工具链的strip来给文件“瘦身” 但是必须传--strip-debug
或-S
参数 否则会损坏模块文件进而导致加载模块时提示Exec format error
再另外 可以魔改内核的kernel/module.c
文件来实现绕过验证强制加载指定模块 可以参考这个commit