You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

printk仅输出时间戳未打印消息,请求故障排查线索

排查线索
  • 修正printk调用语法:你代码里的printk调用格式错误,正确写法应该是:

    printk(KERN_WARNING "AFTER: x:%u y:%u\n", x, y);
    

    KERN_WARNING是日志级别宏,需要和格式字符串直接拼接,不能作为独立参数传递。原写法会让内核把KERN_WARNING当成格式字符串,后续参数不匹配,导致无法正常输出消息内容。

  • 查看内核日志缓冲区:执行dmesg命令,检查你的printk消息是否存在于内核日志缓冲区中。如果dmesg能看到消息但控制台没显示,可能是控制台输出的刷新或级别问题;如果dmesg也没有,说明代码未执行或printk调用错误。

  • 验证日志级别配置:当前/proc/sys/kernel/printk的控制台级别是7,KERN_WARNING的级别是4(<4>),理论上级别足够。可以临时调高控制台级别测试:

    echo 8 > /proc/sys/kernel/printk
    

    之后触发触摸操作,看控制台是否输出消息。

  • 确认函数是否被执行:在touchscreen_report_pos函数开头添加语法正确的printk测试:

    printk(KERN_INFO "touchscreen_report_pos is called\n");
    

    触发触摸后用dmesg查看是否有这条日志,确认函数是否被正常调用。

  • 核对内核控制台相关配置:检查内核启动参数中的console=设置,确认控制台设备正确;同时核对CONFIG_PRINTK、CONFIG_SERIAL_CONSOLE(如果是串口控制台)等配置是否正常启用,确保控制台输出通路正常。

内容的提问来源于stack exchange,提问作者gulpr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 04:51:25