使用 printk 调试
在 Linux 内核中使用printk 技术进行调试,以打印消息和进行跟踪。
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 用于访问内核数据结构和变量、trace 事件、调试消息以及统计信息。- 确保您的内核配置中已设置
CONFIG_DEBUG_FS(默认启用)。 - 如果没有,可以使用
menuconfig在内核配置中启用它。 - 如果 debugfs 未默认挂载,请手动挂载。

