侧边栏切换

Linux图形界面环境下如何显示内核printk的输出

最后编辑于: 2016-03-07 22:41  |  分类: linux  |  标签:   |  浏览数: 957  |  评论数: 0


本文转载自Jim的Ubuntu环境下如何显示printk的输出

在Linux中,驱动程序工作在内核态,内核与用户之间的交互是通过控制台dev/console实现的,控制台与终端的概念对于我们“年轻人”来说是容易混淆的,我本人到现在也不是彻底搞明白(菜鸟啊)。

内核打印函数printk的输出被定向到文件/dev/console,但是在Ubuntu环境中,我们使用的通常是虚拟终端/dev/pts/n。其中n为虚拟终端的编号,如果你当前打开了第3个虚拟终端,那么第3个终端的对应的设备文件即为 /dev/pts/3。可以通过命令tty查看当前终端所对应的设备文件。

在弄清楚了上述概念之后,就不难明白为什么平时在图形界面终端(虚拟终端)下调试驱动程序时printk的输出都看不到了。

有两种比较简单的方法可以查看驱动的输出信息,如下所示:

方法一:dmesg命令

说明:采用该方法的缺点是需要每次手动执行命令查看消息。

方法二:cat /proc/kmsg &

说明:别忘记在命令参数最后加个与号&让cat命令工作在后台。采用该方法的优点是只要驱动有消息输出马上就会在终端看到。

注:此处只给出解决方法(策略)而非原理(机制)。


上一篇: makefile中关于all和.phony

下一篇: fpga设计的常用思想与技巧