使用 printk 调试
使用printk 技术在 Linux 内核中进行调试,以打印消息和跟踪。
include/linux/printk.h 中定义的 printk 封装函数支持为日志语句添加日志级别。例如:
调试内核模块
要调试内核模块,请在 kas shell 中执行以下操作:- 使用
devtool modify linux-qcom命令克隆内核代码。 - 内核模块签名默认处于禁用状态。要手动禁用内核模块签名配置
CONFIG_MODULE_SIG,请使用menuconfig命令。有关menuconfig命令的更多信息,请参阅”配置内核”。
这是一次性步骤。
- 在内核或模块中进行更改。
- 使用
bitbake esp-qcom-image命令重新构建内核模块。 - 请参阅安装并启动内核以刷写更新后的内核镜像并重启。
使用日志级别调试
您可以使用/linux/printk.h 中定义的任何其他日志级别打印消息。控制台日志由 printk 中使用的日志级别以及设备上选择的日志级别控制。
请根据您的用例选择日志级别。如果在频繁调用的函数中选择了较低的日志级别,可能会产生大量日志。
以下示例展示了各内核打印级别的日志:
启用并挂载 debugfs 文件系统
Debugfs 是一个允许内核开发人员向用户空间提供内核信息的文件系统。 Debugfs 用于访问内核数据结构和变量、跟踪事件、调试消息和统计信息。- 确保您的内核配置中设置了
CONFIG_DEBUG_FS(默认启用)。 - 如果没有,可以在内核配置中使用
menuconfig启用它。 - 如果 debugfs 未默认挂载,请挂载它。

