如何获取在 Linux 内核启动期间初始化/探测的所有模块/驱动程序的详细信息?

How to get details of all modules / drivers that were initialized / probed during the Linux kernel boot?

我需要在内核引导期间调用|初始化|探测的 modules/drivers 序列。

能否请您告诉我是否有任何 flash 命令行选项可用于获取此序列?

在内核命令行上传递选项“initcall_debug”将使内置驱动程序的每个初始化例程的计时信息打印到控制台。 initcalls 用于初始化静态链接的内核驱动程序和子系统,并为 Linux 引导过程贡献大量时间。 (在安装根文件系统之前,可加载模块不可用。)

输出如下:

calling  tty_class_init+0x0/0x44 @ 1
initcall tty_class_init+0x0/0x44 returned 0 after 9765 usecs
calling  spi_init+0x0/0x90 @ 1
initcall spi_init+0x0/0x90 returned 0 after 9765 usecs

参考:http://elinux.org/Initcall_Debug

附录

指定内核参数“ignore_loglevel”和“initcall_debug”将确保在启动期间显示信息。

在内核命令行上同时启用initcall_debug=1 和ignore_loglevel=1 后,我能够看到模块初始化开始和结束时间。下面的 link 对此有更多详细信息。

https://chengyihe.wordpress.com/2015/12/13/android-kernel-enable-initcall_debug-to-debug-initcall/