1.定义模块参数的方法:

module_param(name, type, perm);

其中,name:表示参数的名字;      type:表示参数的类型;      perm:表示参数的访问权限;

type参数设定的类型和perm的访问权限具体数值数值请参考内核定义。

2、可以在insmod(装载模块)的时候为参数指定值,如果没有指定则使用默认值

static int num=;
module_param(num,int,S_IRUGO);
static int hello_init(void)
{
printk("Hello module init./n");
printk("num=%d/n",num);
return ;
}
static void hello_exit(void)
{
printk("Goodbye module exit./n");
}
module_init(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("Dual BSD/GPL");
MODULE_DESCRIPTION("a simple module");
MODULE_ALIAS("hello");

上面的num=10,则10是参数num的默认值。

保存为源文件hello.c, 编译生成hello.ko , 当我们使用insmod进行载入时, 使用

insmod hello.ko num=20

则可以 cat /sys/module/hello/parameters/num ,看到为 20

3、驱动的打印调试信息正常情况下我们并不希望看到,但是出现错误的情况下还是需要查看的,可使用以下方法:

static int num=;
module_param(num,int,S_IRUGO); /* 驱动运行中调用的操作 */
int fun_test()
{
if(num)
{
printk("This is a test!\n");
}
} static int hello_init(void)
{
printk("Hello module init./n");
printk("num=%d/n",num);
return ;
}
static void hello_exit(void)
{
printk("Goodbye module exit./n");
}
module_init(hello_init);
module_exit(hello_exit); MODULE_LICENSE("Dual BSD/GPL");
MODULE_DESCRIPTION("a simple module");
MODULE_ALIAS("hello");

默认运行中不会出现打印信息“This is a test”。

查看 /sys/modules/hello/parameters/num参数,默认数值是0,

echo  > /sys/modules/hello/parameters/num    #打开调试信息打印
echo > /sys/modules/hello/parameters/num #关闭调试信息打印

以上操作即可以实现动态关闭/打开调试信息

最新文章

  1. SQL 语法总结
  2. JAVA自定义异常
  3. solr异常解决
  4. JiaThis WordPress分享插件安装全攻略
  5. #pragma 的使用
  6. Android -- 分享功能和打开指定程序
  7. onTouch与onClick事件的关系
  8. suse安装软件命令
  9. Mybatis+SpringMVC实现分页查询(附源码)
  10. unset() isset() empty difined()操作变量详解
  11. 常用shell笔记
  12. php之手机号码查归属地
  13. IE678进入混杂模式
  14. MySQL(Navicat)运行.sql文件时报错[Err] 2006 - MySQL server has gone away 的解决方法
  15. 什么是UUID?
  16. Docker教程:docker的概念及安装
  17. 自动化脚本中click()或sendKeys()没有反应
  18. DB2还原数据库备份
  19. 怎样用Python的Scikit-Learn库实现线性回归?
  20. hihoCoder编程练习赛69

热门文章

  1. Largest Rectangle in Histogram, 求矩形图中最大的长方形面积
  2. Java中的条件运算符
  3. Pandas字符串和文本数据
  4. rabbitmq High Availability
  5. 图片加载之Picasso使用
  6. C# 集合类 Array,Arraylist,List,Hashtable,Dictionary...
  7. sha1加密
  8. TCP和Http的区别!(转) 真心有帮助!!!
  9. 【Hive】执行脚本
  10. CoreData / MagicalRecord