实际上我希望我的驱动程序消息到达我的终端以进行调试。所以我只是尝试通过以下链接进行检查。
我改进了以下链接: - http://elinux.org/Debugging_by_printing
我在side vmplayer虚拟机中使用ubuntu。 Ubuntu在虚拟机内部以终端模式运行。 我试图向内核printk缓冲区发送一些消息,但是echo命令失败。
klog恶魔也在运行我用以下命令确认。
ps aux | grep klogd
proc printk条目上的cat命令:---
# cat /proc/sys/kernel/printk
4 4 1 7
运行echo命令:---
#sudo echo "<1>Writing critical printk messages from userspace" >/dev/kmsg
但我无法在终端上收到消息。在命令运行时出现以下错误: -
-bash: /dev/kmsg: Permission denied
请建议如何在控制台上打印?
我的实际要求是...在我的驱动程序中直接发送printk()的消息到我的控制台。我只是在我的控制台测试,低优先级的消息到达控制台。
这篇文章是怎么回事..? linux kprint messages on console
请建议。
答案 0 :(得分:3)
错误是因为shell试图写入/dev/kmsg
(通过重定向),并且它没有与sudo
一起运行。此外,默认情况下,echo
通常是一个内置的shell,而不是可以在另一个进程中执行的二进制文件,尽管这里有点无关紧要。正确的方法是
echo "blah" | sudo tee /dev/kmsg
tee
是一个将stdin复制到文件和stdout的命令。它被称为tee
,因为它就像管道中的T形管道。