静态插入linux内核模块

问题描述 投票:13回答:1

从源代码构建Linux内核时,可以决定某个功能是静态内置到内核中还是打包到模块中以便通过.config进行动态插入。

另一方面,如果我有任何第三方模块的源代码,例如打包的设备驱动程序,是否可以通过编程方式将此代码静态地集成到内核中?而不是从根文件系统加载内核模块?

linux linux-kernel kernel kernel-module
1个回答
10
投票

当然,你只需要做一些黑客攻击就可以将外部模块移动到内核源代码树中,稍微调整一下Makefiles / Kconfig以便代码是内置的,然后构建你的内核映像。例如,假设您将模块源移动到drivers/blah。然后你应该添加一行到drivers/Makefile然后结束

obj-y += blah/

你应该确保设置drivers/blah/Makefile来构建你的模块,例如

obj-y += mymodule.o
mymodule-objs := src.o other.o

等等,你的Makefile设置在哪里,但它需要构建你正在处理的特定模块。注意:您必须使用mymodule-objs的输出文件名而不是输入文件名!

© www.soinside.com 2019 - 2024. All rights reserved.