从源代码构建Linux内核时,可以决定某个功能是静态内置到内核中还是打包到模块中以便通过.config进行动态插入。
另一方面,如果我有任何第三方模块的源代码,例如打包的设备驱动程序,是否可以通过编程方式将此代码静态地集成到内核中?而不是从根文件系统加载内核模块?
答案 0 :(得分: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的输出文件名而不是输入文件名!