日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

module_param 用于动态开启/关闭 驱动打印信息

發布時間:2023/11/29 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 module_param 用于动态开启/关闭 驱动打印信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.定義模塊參數的方法:

module_param(name, type, perm);

其中,name:表示參數的名字; ???? type:表示參數的類型; ???? perm:表示參數的訪問權限;

type參數設定的類型和perm的訪問權限具體數值數值請參考內核定義。

?

2、可以在insmod(裝載模塊)的時候為參數指定值,如果沒有指定則使用默認值

static int num=10; module_param(num,int,S_IRUGO); static int hello_init(void) {printk("Hello module init./n");printk("num=%d/n",num);return 0; } 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=0; 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 0; } 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 1 > /sys/modules/hello/parameters/num #打開調試信息打印 echo 0 > /sys/modules/hello/parameters/num #關閉調試信息打印


以上操作即可以實現動態關閉/打開調試信息

?

轉載于:https://www.cnblogs.com/FarmPick/p/9003612.html

總結

以上是生活随笔為你收集整理的module_param 用于动态开启/关闭 驱动打印信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。