当前位置: 首页 > news >正文

kernel中外部传递参数使用方法

在 Linux 内核模块开发中,module_param(rpc_tdebug, uint, 0600); 表示定义一个可通过外部传递参数进行配置的模块级变量,具体解析如下:

  1. 参数名称
    rpc_tdebug 是模块参数的变量名,该变量需在代码中提前声明为静态全局变量(例如 static uint rpc_tdebug;)‌

  2. 参数类型
    uint 表示该参数为无符号整型(unsigned int),符合内核支持的 module_param 基础类型之一‌

  3. 访问权限
    0600 是八进制权限值,表示在 sysfs 文件系统中生成的参数文件权限为:

    • 用户(Owner)‌:可读可写(rw-
    • 组(Group)‌:无权限(---
    • 其他用户(Others)‌:无权限(---)‌
  4. 功能作用

    • 模块加载时,可通过 insmod 命令直接赋值,例如:

      insmod module_name.ko rpc_tdebug=1

    • 模块加载后,可通过 /sys/module/[模块名]/parameters/rpc_tdebug 文件动态查看或修改该参数值(需权限允许)‌

使用示例:

某kernel drvier 代码中追加如下内容

static unsigned int rpc_tdebug;
module_param(rpc_tdebug, uint, 0600);
MODULE_PARM_DESC(rpc_tdebug, "Testdebug switch for rpc debug");

#define ALAP_DEBUG_L1(str, args...) do {\
	if (rpc_tdebug > 0)\
		dev_info(&spi->dev, str, ##args);\
} while (0)\

#define ALAP_DEBUG_L2(str, args...) do {\
	if (rpc_tdebug > 1)\
		dev_info(&spi->dev, str, ##args);\
} while (0)\

代码中使用该宏来描述相关log,可以在后期动态调整log等级

控制台输入命令  

echo 2 >/sys/module/alap_rpc/parameters/rpc_tdebug

输入前效果

 

输入后效果

相关文章:

  • 20250321在荣品的PRO-RK3566开发板的buildroot系统下使用UART1
  • 几个JSON在AutoCAD二次开发中应用比较有优势的场景及具体案例
  • 威联通 后台可用命令查看Bash
  • <项目> 主从Reactor模型的高并发服务器
  • Python与区块链隐私保护技术:如何在去中心化世界中保障数据安全
  • vlan实验
  • Python异常简介
  • Manus与Dify差异分析
  • 19.哈希表的实现
  • 【数据结构】kmp算法介绍+模板代码
  • 树莓集团落子海南,解读数字产业新势力
  • 2014-2023年各区县数字普惠金融指数数据
  • 【设计模式】C++ 单例模式总结与最佳实践
  • 3DMAX曲线生成器插件CurveGenerator使用方法
  • C语言【动态内存管理】详解
  • Beans模块之工厂模块注解模块@Qualifier
  • 计算机组成原理和计算机网络常见单位分类及换算
  • 机器学习算法实战——天气数据分析(主页有源码)
  • 算法及数据结构系列 - 树
  • 「AI+办公」共学(四):办公综合应用
  • 新买宝马竟是“维修车”,男子发视频维权被4S店索赔100万
  • 七大交响乐团在沪“神仙斗法”,时代交响奏出何等时代新声
  • “子宫内膜异位症”相关论文男性患者样本超六成?福建省人民医院发布情况说明
  • 中方对中美就关税谈判的立场发生变化?外交部:中方立场没有任何改变
  • 商务部新闻发言人就中美经贸高层会谈答记者问
  • 巴基斯坦:印度向巴3处地点发射导弹