Linux实现驱动模块传参过程解析
在驱动的模块中声明一下你要传递的参数名称,类型和权限
module_param(变量的名称,类型,权限);
#include#include staticchar*p_name="Usr"; module_param(p_name,charp,S_IRUGO); MODULE_PARM_DESC(p_name,"Thisisachar*string."); staticint__inithi_init(void) { printk(KERN_INFO"Hienter%s\n",p_name); return0; } module_init(hi_init); staticvoid__exithi_exit(void) { printk(KERN_INFO"Hiexit%s\n",p_name); } module_exit(hi_exit); MODULE_AUTHOR("libra13179"); MODULE_LICENSE("GPLv2");
KVERS=$(shelluname-r) #Kernelmodules obj-m+=hi.o #Specifyflagsforthemodulecompilation. #EXTRA_CFLAGS=-g-O0 build:kernel_modules kernel_modules: make-C/lib/modules/$(KVERS)/buildM=$(CURDIR)modules #@echo$(KVERS) clean: make-C/lib/modules/$(KVERS)/buildM=$(CURDIR)clean
不设置时候使用默认的
root@lin-virtual-machine:/home/lin/hi#insmod./hi.ko root@lin-virtual-machine:/home/lin/hi#cat/var/log/syslog|grepHi ... Jul2515:11:38lin-virtual-machinekernel:[203.238178]HienterUsr ...
使用设置时候
root@lin-virtual-machine:/home/lin/hi#insmodhi.kop_name='God'
加载模块后,都会在/sys/modules下生成一个模块的文件夹,文件夹下会有一个parameters文件夹,
里面包含的就是以参数名命名的文件节点,里面保存的就是我们设置的值,例如在p_name中
root@lin-virtual-machine:/home/lin/hi#cat/sys/module/hi/parameters/p_name
God
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。