我正在开发一个embedded式Linux(ARM)的设备驱动程序。 如何编译作为内核的一部分生成的KO文件,以便在启动时加载模块?
这是我第一次需要将驱动程序编译到内核中,而不是作为可加载模块。 所以我不知道该怎么做。
谢谢拉蒙
对于你的第一个问题,我假设你想把你的驱动程序静态地构建到内核映像中(而不是作为一个模块)。 首先,您要在驱动程序目录中选择要放置驱动程序文件的目录。 假设你想把你的文件放在drivers/char/
。 将你的文件复制到这个目录中。 在drivers/char/
目录中会有一个Kconfig
文件,打开它并在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
。
有关更多信息,请参阅此内核编译文章 。
你需要建立你的设备驱动程序作为一个内置的 。 您可以手动编辑您的内核.config文件,并将属于您模块的CONFIG选项的“= m”更改为“= y”,也可以使用make menuconfig将<M>
更改为您设备驱动程序的<*>
。
before -> <M> Your Device Driver Name Here after -> <*> Your Device Driver Name Here