如果驱动模块之间有依赖,需要更改模块挂载顺序,有三种方式:
1、增加一个优先级,比如 8。或者把自己的驱动模块声明成其他优先级,也就是不用 module_init 去声明,可以用 fs_initcall
去声明。
2、对于同一优先级的驱动模块,可以在 Makefile 中更改其编译和链接的顺序,就会切换其挂载的顺序。(静态编译)
3、动态加载驱动模块:等 Linux 系统起来以后,手动执行 insmod 和 rmmod
即可挂载和卸载驱动,顺序自己决定。测试成功后,再搞到内核中静态编译。
虽然可以更改挂载顺序,但还是希望大家写驱动模块的时候,能够做到高内聚、低耦合,自己的模块最好不要依赖其他模块,防止其他模块加载失败导致自己的模块不可用。
如何看驱动挂载顺序?有两种方式:
1、找到编译后的 Linux 内核源码,根目录下面有个 System.map 文件,这里记载了 Linux
内核所做的所有的事情,是按顺序记载的(也有可能在其他输出目录)。
一共有三列:地址、区域、操作。在操作中我们可以看到我们声明的驱动的名字。
2、如果你驱动模块有加一些打印,可以直接看 log。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
模块
+关注
关注
7文章
2486浏览量
46547 -
驱动
+关注
关注
11文章
1718浏览量
84354 -
Linux
+关注
关注
87文章
10992浏览量
206744
发布评论请先 登录
相关推荐
DM368板子DDR大小更改后模块挂载失败
打开/dev/cmem设备失败。想请教下,DDR大小更改后,上面四个模块为什么挂载失败?是不是因为内存大小更改后,需要重新配置cmem模块?
发表于 02-21 12:44
单模光模块和多模光模块之间的区别
随着光通讯、数据中心的发展,光模块的应用越来越广泛。而光模块类型、传输数据也是越来越多样化。40G光模块、100G光模块;单模光模块、多模光
发表于 05-03 10:36
•2.9w次阅读
如何使用M5StickC ESP32模块通过按钮更改LED亮度
电子发烧友网站提供《如何使用M5StickC ESP32模块通过按钮更改LED亮度.zip》资料免费下载
发表于 06-29 11:27
•0次下载
博途案例:模块更新与接口更改的实现方法
由于模块上的接口更改,翻译时不一定会生成错误消息。
因此,文档“jyyy_mm_tt SPS_HMI_Info_VASSV6”中描述了包括更改在内的受影响模块。
“接口匹配”视图比
什么是NB-IoT模块?什么是4G模块?NB-IoT模块与4G模块之间的区别
什么是NB-IoT模块?什么是4G模块?NB-IoT模块与4G模块之间的区别 怎么选择呢? NB-IoT
评论