本文主要是介绍The kernel module programming primer(3)-A brief introduction for module utilities,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
modutils是管理内核模块的一个软件包。可以在任何获得内核源代码的地方获取Modutils(modutils-x.y.z.tar.gz)源代码,然后选择最高级别的patch.x.y.z等于或小于当前的内核版本,安装后在/sbin目录下就会有insmod、rmmod、ksyms、lsmod、modprobe等实用程序。当然,通常我们在加载Linux内核时,modutils已经被载入。1.insmod命令
调用insmod程序把需要插入的模块以目标代码的形式插入到内核中。在插入的时候,insmod自动调用init_module()函数运行。注意,只有超级用户才能使用这个命令,其命令格式为:
# insmod [path] modulename.c
inux设备驱动有两种加载方式insmod和modprobe,下面谈谈它们用法上的区别1)insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址。写法为:
insmod drv.ko
2) modprobe则可以一次将有依赖关系的驱动全部加载到内核。不加驱动的具体地址,但需要在安装文件系统时是按照make modues_install的方式安装驱动模块的。
驱动被安装在/lib/modules/$(uname -r)/...下。写法为:
modprob drv
modprobe 和insmod一样都是用来加载内核module的,不过modprobe比较智能,它可以根据module的依赖性来自动为你加载
modprobe 通过读取 /lib/modules/2.6.xx/modules.dep 文件得知module 之间的相依性,而该文件是由 执行depmod 程序所生成的。
调用rmmod程序将已经插入内核的模块从内核中移出,rmmod会自动运行cleanup_module()函数,其命令格式为:
#rmmod [path] modulename.c
调用lsmod程序将显示当前系统中正在使用的模块信息。实际上这个程序的功能就是读取/proc文件系统中的文件/proc/modules中的信息,其命令格式为:
#lsmod
ksyms这个程序用来显示内核符号和模块符号表的信息。与lsmod相似,它的功能是读取/proc文件系统中的另一个文件/proc/kallsyms。
这篇关于The kernel module programming primer(3)-A brief introduction for module utilities的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!