我正在为嵌入式Linux(ARM)开发设备驱动程序。 如何编译作为内核的一部分生成的KO文件, 以某种方式模块将在启动时加载?
这是我第一次将驱动程序编译到内核而不是可加载模块。所以我不知道该怎么做。
谢谢, Ramon的。
答案 0 :(得分:2)
对于您的第一个问题,我假设您想要将驱动程序静态地构建到内核映像中(而不是作为模块)。首先,在drivers目录中选择要放置驱动程序文件的目录。假设您要将文件放在drivers/char/
中。将文件复制到此目录中。 Kconfig
目录中会有一个drivers/char/
文件,打开它并在endmenu
之前添加这样的条目。
config MYDRIVER
bool "This is a driver for something"
default n
help
This is a test driver.
保存文件并在同一目录中打开Makefile
。转到文件末尾并添加以下条目。
obj-$(CONFIG_MYDRIVER) += mydriver.o
就是你已经将文件添加到内核树了。现在,像往常一样,make menuconfig
并选择MYDRIVER
。
有关详细信息,请参阅此Kernel Compilation article。
答案 1 :(得分:1)
您需要将设备驱动程序构建为内置。您可以手动编辑内核 .config 文件,并将“= m”更改为“= y”以获取属于您的模块的CONFIG选项,或使用 make menuconfig 将<M>
更改为<*>
以获取设备驱动程序。
before -> <M> Your Device Driver Name Here
after -> <*> Your Device Driver Name Here