串口控制台
Qualcomm® Linux 内核使用 Qualcomm 通用接口(GENI)串行驱动 在 Qualcomm SoC 上支持 UART 控制台。所需的内核配置
验证以下 Kconfig 选项已启用:.cfg 片段中启用它们并重新
构建。
将串口控制台添加到内核命令行
在meta-qcom/conf/machine/include/qcom-<SoC>.conf 中的
KERNEL_CMDLINE_EXTRA 添加 console= 参数:
连接硬件
在设备和主机之间连接 USB 转 UART 线缆:早期启动消息(earlycon)
earlycon 内核参数在完整的 UART 驱动初始化之前启用一个最小化的早期
控制台。它提供从启动序列最开始的内核消息,包括 initramfs 的解包和早期
设备树处理,否则这些消息将不可见。
添加到内核命令行:
ttyMSM0 UART。消息从
start_kernel() 的第一行开始立即显示。
earlycon 和 console=ttyMSM0,... 相互独立。同时使用两者可以获得从
早期启动到登录提示符的不间断输出。printk 日志级别
printk 是内核的日志记录函数。每条消息都带有一个日志级别,用于控制
它是否出现在控制台上。
表:printk 日志级别
数值低于当前控制台日志级别的消息会被打印到控制台。Qualcomm Linux 上
默认的控制台日志级别是 7(打印所有消息)。在默认控制台日志级别为 7 的
情况下,级别 0–6(Emergency 到 Info)的消息会到达控制台。将级别设置为
8 可包含调试输出。
运行时日志级别控制
通过/proc/sys/kernel/printk 在运行时读取和设置控制台日志级别。
该文件包含四个以空格分隔的值:
<current> <default> <minimum> <boot-time-default>。
启动时日志级别
在内核命令行上设置日志级别,以在/proc 挂载之前控制详细程度:
读取内核日志缓冲区
dmesg
读取内核环形缓冲区最常用的方式:/proc/kmsg
提供内核消息实时流的虚拟 proc 文件。每次读取只返回新消息:跨重启的持久日志
在运行 systemd-journald 的系统上,内核消息会被持久存储,并可跨启动 查询:禁用控制台日志
要在生产或性能测试中使控制台静默:调试构建
要在 Yocto 镜像中包含调试符号和额外的调试 Kconfig,请在 bitbake 调用中 传入DEBUG_BUILD=1。这会在内核构建中启用 debug.config 片段:
build/conf/local.conf:

