驱动程序的运行模式:
1. 动态加载
将驱动程序编译成 .ko 模块,在内核运行期间,动态加载或卸载
动态加载:insmod *.ko
动态卸载:rmsmod *.ko
2. 随机启动
修改 /etc/profile文件,在文件中添加
insmod *.ko
缺点:卸载需要手动卸载;
3. 编译进内核,随内核启动运行
3.1 在menuconfig 里要能产生一个驱动程序配置的选项
内核配置与编译,主要依靠2个文件:
Kconfig: 用于配置 menuconfig;
Makefile:用于指定编译选项
3.2 如何实施?
-
在 kernel/drivers/char/xxx/xxx.c 创建驱动源码文件
-
在 kernel/drivers/char/xxx/Kconfig 创建Kconfig文件
-
在 kernel/drivers/char/xxx/Makefile 创建Makefile文件
-
修改上一级目录下的Kconfig,Makefile;
在kernel/drivers/char/Kconfig 中添加source "drives/char/xxx/Kconfig"在kernel/drivers/char/Makefile 中添加 obj-y += xxx/