Linux圖形界面環(huán)境下如何顯示內(nèi)核printk的輸出

本文轉(zhuǎn)載自Jim的Ubuntu環(huán)境下如何顯示printk的輸出
在Linux中,驅(qū)動(dòng)程序工作在內(nèi)核態(tài),內(nèi)核與用戶(hù)之間的交互是通過(guò)控制臺(tái)dev/console
實(shí)現(xiàn)的,控制臺(tái)與終端的概念對(duì)于我們“年輕人”來(lái)說(shuō)是容易混淆的,我本人到現(xiàn)在也不是徹底搞明白(菜鳥(niǎo)?。?/p>
內(nèi)核打印函數(shù)printk的輸出被定向到文件/dev/console
,但是在Ubuntu環(huán)境中,我們使用的通常是虛擬終端/dev/pts/n
。其中n為虛擬終端的編號(hào),如果你當(dāng)前打開(kāi)了第3個(gè)虛擬終端,那么第3個(gè)終端的對(duì)應(yīng)的設(shè)備文件即為 /dev/pts/3??梢酝ㄟ^(guò)命令tty查看當(dāng)前終端所對(duì)應(yīng)的設(shè)備文件。
在弄清楚了上述概念之后,就不難明白為什么平時(shí)在圖形界面終端(虛擬終端)下調(diào)試驅(qū)動(dòng)程序時(shí)printk的輸出都看不到了。
有兩種比較簡(jiǎn)單的方法可以查看驅(qū)動(dòng)的輸出信息,如下所示:
方法一:dmesg命令
說(shuō)明:采用該方法的缺點(diǎn)是需要每次手動(dòng)執(zhí)行命令查看消息。
方法二:cat /proc/kmsg &
說(shuō)明:別忘記在命令參數(shù)最后加個(gè)與號(hào)&
讓cat命令工作在后臺(tái)。采用該方法的優(yōu)點(diǎn)是只要驅(qū)動(dòng)有消息輸出馬上就會(huì)在終端看到。
注:此處只給出解決方法(策略)而非原理(機(jī)制)。