参考书籍《Linux设备驱动程序》
检查Linux内核
1 | //检查Linux内核版本 |
创建第一个helloworld内核模块
1 |
|
内核的特殊宏:
MODULE_LICENSE,告诉内核,该模块的使用采用自由许可证,如果没有该声明,内核在生成module的时候会产生warning。
安装Linux内核库
1 | //install linux header in ubuntu |
使用Makefile进行编译
使用make命令,会在当前路径下查找Makefile
文件名的编译文件。
注意命名,一定要是Makefile不能使makefile。
1 | #Makefile |
利用make进行编译
![make result](/images/Linux-驱动-第一个helloworld/make result.png)
安装module
dmesg
显示开机信息。显示系统运行时硬件的检测或者断开连接信息。当计算机启动时,系统内核(操作系统的核心部分)将会被加载到内存中。在加载的过程中会显示很多的信息,在这些信息中我们可以看到内核检测硬件设备。
1 | sudo insmod helloworld.ko |
Linux内核模块相关命令
- lsmod 列出内核已加载模块。列出/proc/modules的内容
- depmod 分析可加载模块的依赖性,生成modules.dep文件和映射文件
- modprobe Linux内核添加删除模块
- modinfo 显示内核模块信息
- insmod 向内核中插入模块
- rmmode 从内核中删除模块