编译这几个函数之前要学一下:Linux 的几个操作命令。
学习地址:http://edu.51cto.com/lesson/id-101824.html
重要的命令 有4个 :分别是 1、lsmod,2、insmod 3、modinfo 4、rmmod.
1、lsmod (list module) 将模块列表显示,打印出当前内核中已经安装的模块列表,下面试试效果
2、insmod ( install module ) 向内核中安装模块,使用方式 insmod xxx.ko
3、modinfo ( module information ) 模块信息自带信息,使用方式modinfo xxxx.ko
分别 包括路径,使用权限,版本号(纯数字),依赖关系(与其他模块关系),字符串的版本号(详细的版本信息)
4、rmmod ( remove module )向内核中移除模块,使用方式 rmmod xxx
5、不常用的 两个命令 (modprobe,depmod)
6、Ubuntu 会 拦截 printk 函数打印的数据,因此要使用 命令 dmesg 来查看。
7、内核版本信息和模块版本信息得一直才能安装,否则不能安装。。。(vermagic)
8、如何保证模块vermagic 和内核的 一致性,即 用 该 内核编译就好了。
9、内核中不允许使用 printf,因为会占用大量的时间,影响内核的性能,尽量使用printk函数。
10、内核 shell 控制台 有一个 优先级 别,可以设定是否打印 printk 打印的数据到控制台,方便调试。 查看和修改 方法如下:
1、查看:cat /proc/sys/kernel/printk
2、修改:echo 7 > /proc/sys/kernel/printk