如果驱动模块之间有依赖,需要更改模块挂载顺序,有三种方式:
1、增加一个优先级,比如 8。或者把自己的驱动模块声明成其他优先级,也就是不用 module_init 去声明,可以用 fs_initcall
去声明。
2、对于同一优先级的驱动模块,可以在 Makefile 中更改其编译和链接的顺序,就会切换其挂载的顺序。(静态编译)
3、动态加载驱动模块:等 Linux 系统起来以后,手动执行 insmod 和 rmmod
即可挂载和卸载驱动,顺序自己决定。测试成功后,再搞到内核中静态编译。
虽然可以更改挂载顺序,但还是希望大家写驱动模块的时候,能够做到高内聚、低耦合,自己的模块最好不要依赖其他模块,防止其他模块加载失败导致自己的模块不可用。
如何看驱动挂载顺序?有两种方式:
1、找到编译后的 Linux 内核源码,根目录下面有个 System.map 文件,这里记载了 Linux
内核所做的所有的事情,是按顺序记载的(也有可能在其他输出目录)。
一共有三列:地址、区域、操作。在操作中我们可以看到我们声明的驱动的名字。

2、如果你驱动模块有加一些打印,可以直接看 log。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
模块
+关注
关注
7文章
2851浏览量
53512 -
驱动
+关注
关注
12文章
2001浏览量
88792 -
Linux
+关注
关注
88文章
11854浏览量
219819
发布评论请先 登录
相关推荐
热点推荐
如何将SD卡驱动模块挂载至外设总线
我们的队伍编号是CICC2962,这是我们第五次分享,接下来我将分享一下如何将SD卡驱动模块挂载至外设总线上,并且发送一条读指令。
这是外设总线上被保留的接口信号,我们将所写的代码与之相连接
发表于 10-30 06:12
DM368板子DDR大小更改后模块挂载失败
打开/dev/cmem设备失败。想请教下,DDR大小更改后,上面四个模块为什么挂载失败?是不是因为内存大小更改后,需要重新配置cmem模块?
发表于 02-21 12:44
单模光模块和多模光模块之间的区别
随着光通讯、数据中心的发展,光模块的应用越来越广泛。而光模块类型、传输数据也是越来越多样化。40G光模块、100G光模块;单模光模块、多模光
发表于 05-03 10:36
•3.3w次阅读
如何使用M5StickC ESP32模块通过按钮更改LED亮度
电子发烧友网站提供《如何使用M5StickC ESP32模块通过按钮更改LED亮度.zip》资料免费下载
发表于 06-29 11:27
•0次下载
博途案例:模块更新与接口更改的实现方法
由于模块上的接口更改,翻译时不一定会生成错误消息。
因此,文档“jyyy_mm_tt SPS_HMI_Info_VASSV6”中描述了包括更改在内的受影响模块。
“接口匹配”视图比
单模蓝牙模块和双模蓝牙模块指的是什么意思?它们之间有什么区别呢
单模蓝牙模块和双模蓝牙模块指的是什么意思?它们之间有什么区别呢 单模蓝牙模块和双模蓝牙模块是指用于无线通信的蓝牙
触发开关驱动模块怎么接线
触发开关驱动模块的接线是一个涉及电子工程和电气工程的复杂过程,需要对电路设计、电子元件以及安全操作有深入的了解。 触发开关驱动模块接线概述 理解触发开关
驱动动模块之间如何更改模块挂载顺序
评论