Linux驱动程序可以在内核配置时直接编译进内核或者以模块编译成生.ko文件动态加载。 下面以arm开发板上光感驱动程序为例子,说明模块编译,动态加载的流程。
修改内核源码中字符设备目录的内核配置文件Kconfig与Makefile.
linux-4.x.y/drivers/char/Kconfig
config NANO_LIGHT tristate "nanoPi2451 light device GPG7" depends on MACH_MINI2451 help 91arm.comlinux-4.x.y/drivers/char/Makefile
obj-$(CONFIG_NANO_LIGHT) += nano2451_light.o注意事项:Kconfig文件中的 NANO_LIGHT 同Makefile文件中CONFIG_ NANO_LIGHT要统一命名。 makefile中指定要生成nano2451_light.o文件,对应的当前目录下要存在nano2451_light.c的驱动程序源文件。
配置内核模块编译
make menuconfig内核如果已经通过make命令编译完成,可以通过make modules 命令只编译模块,生成nano2451_light.ko文件存放在driver/char目录。拷贝到开发板任一目录 。