0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux驱动内核模块参数介绍

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-09-26 17:01 次阅读

在加载一个.ko模块时,也可以像应用程序那样,通过命令行传入一些参数,这个过程发生在调用模块初始化函数之前。

内核支持的参数类型有:boolinvbool(反转值bool类型)、charp(字符串指针)、shortintlongushortuintulong。这些类型又可以复合成对应的数组类型。

具体用法,在驱动中定义三个变量baudrateportname

static int baudrate = 9600;
static int port[4] = {0,1,2,3};
static char *name = "user";

module_param(baudrate, int, S_IRUGO);
module_param_array(port, int, NULL, S_IRUGO);
module_param(name, charp, S_IRUGO);

使用module_parammodule_param_array宏声明这些变量为模块参数。说明:

module_param(name,type,perm)
module_param_array(name,type,nump,perm)

name:变量的名字

type:变量或数组元素的类型

nump:数组元素个数的指针,可选

perm:在sysfs文件系统中对应文件的权限属性。

权限的取值参考头文件。

修改这三个变量的值,即加载模块时传参:

insmod user.ko baudrate=115200 port=1,2,3,4 name="virtual-serial"
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2655

    浏览量

    47290
  • 内核
    +关注

    关注

    3

    文章

    1360

    浏览量

    40183
  • 驱动
    +关注

    关注

    12

    文章

    1818

    浏览量

    85104
  • Linux
    +关注

    关注

    87

    文章

    11204

    浏览量

    208702
收藏 人收藏

    评论

    相关推荐

    linux 了解内核模块的原理 《Rice linux 学习开发》

    内核模块是一种没有经过链接,不能独立运行的目标文件,是在内核空间中运行的程序。
    的头像 发表于 07-16 10:08 4599次阅读
    <b class='flag-5'>linux</b> 了解<b class='flag-5'>内核模块</b>的原理 《Rice <b class='flag-5'>linux</b> 学习开发》

    Linux 内核模块工作原理及内核模块编译案例

    一个内核模块至少包含两个函数,模块被加载时执行的初始化函数init_module()和模块被卸载时执行的结束函数cleanup_module()。
    发表于 09-23 09:39 2469次阅读
    <b class='flag-5'>Linux</b> <b class='flag-5'>内核模块</b>工作原理及<b class='flag-5'>内核模块</b>编译案例

    Linux内核模块间通讯方法

    Linux内核模块间通讯方法非常的多,最便捷的方法莫过于函数或变量符号导出,然后直接调用。默认情况下,模块模块之间、模块
    发表于 06-07 16:23 2430次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核模块</b>间通讯方法

    RZ/G2L Linux系统如何添加新的内核模块

    RZ/G2L Linux系统的镜像基于yocto构建,本篇介绍如何添加新的内核模块
    的头像 发表于 01-04 12:19 1641次阅读
    RZ/G2L <b class='flag-5'>Linux</b>系统如何添加新的<b class='flag-5'>内核模块</b>

    Linux内核模块程序结构

    Linux设备驱动会以内核模块的形式出现,因此,学会编写Linux内核模块编程是学习Linux
    发表于 05-27 09:36

    Linux内核模块与应用程序的对比

    用户态程序Linux内核模块运行用户空间 内核空间 入口main() module_init()指定; 出口无 module_exit()指定; 编译gcc –cMakefile 连接
    发表于 07-03 03:15

    高效学习Linux内核——内核模块编译

    情况下,内核模块应遵循GPL 兼容许可权。Linux2.6 内核模块最常见的是以MODULE_LICENSE(“Dual BSD/GPL”)语句声明模块采用BSD/GPL 双LICEN
    发表于 09-24 09:11

    Linux设备驱动开发详解》第4章、Linux内核模块

    Linux设备驱动开发详解》第4章、Linux内核模块
    发表于 10-27 14:15 0次下载
    《<b class='flag-5'>Linux</b>设备<b class='flag-5'>驱动</b>开发详解》第4章、<b class='flag-5'>Linux</b><b class='flag-5'>内核模块</b>

    什么是 Linux 内核模块?

    lsmod 命令能够告诉你当前系统上加载了哪些内核模块,以及关于使用它们的一些有趣的细节。
    的头像 发表于 08-09 17:01 3203次阅读

    嵌入式LINUX系统内核内核模块调试教程

    本文档的主要内容详细介绍的是嵌入式LINUX系统内核内核模块调试教程。
    发表于 11-06 17:32 21次下载
    嵌入式<b class='flag-5'>LINUX</b>系统<b class='flag-5'>内核</b>和<b class='flag-5'>内核模块</b>调试教程

    如何在Petalinux创建Linux内核模块

    --enable”,能创建Linux内核模块,包括c源代码文件,Makefile,Yocto的bb文件。相关文件放在目录“ project-spec / meta-user / recipes-modules”中
    的头像 发表于 03-02 11:10 4282次阅读

    Asterisk内核模块介绍

    主要阐述Asterisk内核模块的基础知识。
    发表于 03-17 13:47 7次下载

    嵌入式LINUX系统内核内核模块调试

    嵌入式LINUX系统内核内核模块调试(嵌入式开发和硬件开发)-嵌入式LINUX系统内核内核模块
    发表于 07-30 13:55 10次下载
    嵌入式<b class='flag-5'>LINUX</b>系统<b class='flag-5'>内核</b>和<b class='flag-5'>内核模块</b>调试

    Linux内核模块参数传递与sysfs文件系统

    函数传参的内核传参机制,编写内核程序时只要实现传参接口,用户在加载内核模块时即可传入指定参数,使得内核模块更加灵活。
    发表于 06-07 16:23 2021次阅读

    linux驱动程序如何加载进内核

    ,需要了解Linux内核的基本概念和API。以下是一些关键概念: 1.1 内核模块Linux内核模块是一种动态加载和卸载的代码,可以在不重
    的头像 发表于 08-30 15:02 339次阅读