无法在linux上启用内核动态调试

时间:2014-10-24 21:03:16

标签: linux debugging linux-kernel kernel

我在内核配置文件中启用了CONFIG_DYNAMIC_DEBUG标志,内置&安装了内核。然后,当我重新启动时,我可以看到/sys/kernel/debug/dynamic_debug/control

但是,当我尝试动态启用这样的模块时:

sudo echo 'module xhci_hcd +p' > /sys/kernel/debug/dynamic_debug/control

我得到了:

bash: /sys/kernel/debug/dynamic_debug/control: Permission denied

请注意,我正在使用sudo

2 个答案:

答案 0 :(得分:2)

启用CONFIG_DYNAMIC_DEBUG后,只需检查是否已启动到正确的内核版本?接下来检查是否已安装debugfs。

尝试-n选项(不输出尾随换行符)

echo -n 'module xhci_hcd +p' | sudo tee /sys/kernel/debug/dynamic_debug/control

如果您能够调试ko的特定文件,请尝试:

echo -n 'file filename.c +p' | sudo tee /sys/kernel/debug/dynamic_debug/control

答案 1 :(得分:2)

重定向(使用> shell运算符)不是以root身份执行的。这就是您获得权限被拒绝错误的原因。我建议你在子shell中运行整个命令,如:

sudo sh -c "echo 'module xhci_hcd +p' > /sys/kernel/debug/dynamic_debug/control"