驱动模块的编译与安装
模块可以被选择“模块化编译”或“静态编译”
1. 分离式模块化编译:需要在内核运行时动态加载(也能实现开机加载 );非常适合驱动的开发与调试
2. 静态编译:链接入内核镜像,默认被加载;适合开发完成后在产品中使用
3. 统一式模块化编译:和内核一起编译,并统一输出到文件系统,在内核启动时统一开机加载 ;有利于实现开机加速
1.分离式模块化编译与安装
- 所谓分离式模块化编译,就是不和内核一起编译的意思,非常适合驱动的开发与调试
- 首先必须要获得开发板上内核的“该次编译源码目录”,因为模块化编译依赖于开发板上内核的“那一次编译”,如果内核与模块化编译不是“同一次编译”的,那么模块安装时将发生错误
- 进入“该次编译源码目录”,可以在drivers目录下创建一个文件夹,以后可以在此文件夹下工作;文件夹内需要有模块源码(假设名字为module_test.c)与Makefile
- 这是一个典型的驱动模块Makefile,它是非常模式化的,要改动的地方很少
#指定“该次编译源码目录”
KERN_DIR = xxxx/kernel
#obj-m表示将module_test.o编译成单独的模块
obj-m += module_test.o