这个问题在这里已有答案:
我的目标是用于飞思卡尔iMX53 Arm CPU板的嵌入式Linux 2.6.35.3 .
当所有各种CAN总线相关驱动程序(FlexCAN)在内核启动过程中初始化并准备好使用时,我需要进行更改 . 我需要CAN总线初始化的时间要早得多,以便我可以在用户空间准备好脚本完成工作之前很快发送一些特定的CAN原始消息 .
如何控制编译的(内置)内核模块/驱动程序在内核启动和初始化过程中由内核进行内部探测 .
我不是在谈论可以在脚本中进行模式探测的文件系统级.ko文件 . 这是之前的方法 .
抱歉我格式不好的linux问题..我不经常在内核空间工作..尽可能快地尝试破解我的方式 .
1 回答
initcall排序在这里定义:
http://lxr.free-electrons.com/source/include/linux/init.h#L194
这是供参考:
由于
module_init
#defined为device_initcall
,因此一个没有任何依赖它的通用模块会在序列结束时初始化 . 要尽早加载模块,只需将其module_init
调用更改为之前发生的其他内容(例如subsys_initcall
)注意:只是在事物上切换顺序可以打破其他依赖关系,并且你可以从地狱进入catch-22依赖循环 .