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

Ubuntu 20.04下如何启用mceusb内核模块的dynamic_debug日志输出?

Ubuntu 20.04下如何启用mceusb内核模块的dynamic_debug日志输出?

看起来你遇到的核心问题是内核Lockdown限制了debugfs访问,加上modprobe参数的使用不够精准,导致调试日志没输出。我来一步步帮你解决:

一、先解决内核Lockdown的限制

你看到的Lockdown: bash: debugfs access is restricted提示,是因为Ubuntu 20.04默认启用了Secure Boot,触发了内核的lockdown模式,禁止了对调试接口的修改操作。解决这个问题需要在BIOS/UEFI中禁用Secure Boot:

  • 重启电脑,按开机提示的按键(通常是F2、Del、Esc等)进入BIOS/UEFI设置界面
  • 找到「Secure Boot」相关选项,将其设置为「Disabled」
  • 保存设置并重启系统,lockdown限制就会解除

二、启用dynamic_debug的两种有效方法

方法1:通过debugfs动态配置(推荐,可实时调整)

  1. 先确保debugfs已经挂载(如果没挂载的话执行):
    sudo mount -t debugfs none /sys/kernel/debug
    
  2. 切换到root权限:
    sudo su
    
  3. 精准启用mceusb模块的调试日志:
    echo 'file mceusb.c +p' > /sys/kernel/debug/dynamic_debug/control
    
    • 这里要写mceusb.c(文件名)而非mceusb(模块名),dynamic_debug是按源码文件名匹配的,这样更准确
    • 如果你需要更详细的日志,可以追加参数:+f显示文件名、+l显示行号、+m显示模块名,比如:
      echo 'file mceusb.c +pfml' > /sys/kernel/debug/dynamic_debug/control
      
  4. 实时查看调试输出:
    dmesg -w
    
    或者查看系统日志文件:cat /var/log/syslog

方法2:加载模块时直接指定调试参数

如果不想修改debugfs,也可以在加载模块时一次性配置:

  1. 先卸载已加载的mceusb模块(如果模块正在使用,需要先断开相关设备):
    sudo rmmod mceusb
    
  2. 加载模块并启用调试:
    sudo modprobe mceusb dyndbg="file mceusb.c +pfml"
    
  3. 同样用dmesg -w或查看/var/log/syslog获取调试日志

额外检查

  • 可以用lsmod | grep mceusb确认模块是否成功加载
  • 如果模块加载失败,检查是否有依赖缺失,或者系统是否包含该模块(可通过find /lib/modules/$(uname -r) -name mceusb.ko查找)

备注:内容来源于stack exchange,提问作者Bil_Bomba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 15:33:02