如果使用prink()打印内核消息并在控制台中读取它,它看起来像这样:
<6>[ 2809.666228] amp_enable: amp enable bypass(2)
<6>[ 2809.666747] amp_enable: AMP_EN is set to 0
<3>[ 2810.084296] init: untracked pid 4196 exited
<3>[ 2810.873706] init: untracked pid 4817 exited
<6>[ 2810.933923] msm_ta_detect_work: USB exit ta detection - frindex
<6>[ 2817.483839] amp_enable: AMP_EN is set to 1
<6>[ 2823.084022] adjust_soc: ibat_ua = -114500, vbat_uv = 4296066, soc = 95, batt_temp=302
<6>[ 2823.669799] SLIM_CL: skip reconfig sequence
<6>[ 2823.685578] amp_enable: amp enable bypass(2)
<6>[ 2823.686372] amp_enable: AMP_EN is set to 0
每行开头的数字是什么意思?这是某种时间戳吗?我该如何解读?
答案 0 :(得分:1)
如所提到的NG
,&lt; 3&gt;和&lt; 6&gt;是对数级别,其中&lt; 3&gt;是是KERN_ERR
和&lt; 6&gt;是KERN_INFO
。
这是从http://tuxthink.blogspot.com/2012/07/printk-and-console-log-level.html获取的列表。
0 KERN_EMERG
1 KERN_ALERT
2 KERN_CRIT
3 KERN_ERR
4 KERN_WARNING
5 KERN_NOTICE
6 KERN_INFO
7 KERN_DEBUG
下一个数字似乎是自系统启动以来的秒数。当您看到这些消息时,您的系统是否在50分钟前启动了?时间戳可以帮助我们跟踪任务花费的时间。例如,amp_enable: amp enable bypass(2)
需要0.519毫秒才能完成。从第一次进入到第四次进入,花了1.207478s。
<6>[ 2809.666228] amp_enable: amp enable bypass(2)
<6>[ 2809.666747] amp_enable: AMP_EN is set to 0
<3>[ 2810.084296] init: untracked pid 4196 exited
<3>[ 2810.873706] init: untracked pid 4817 exited
我通过访问http://elinux.org/Printk_Times_Sample1了解了这一点。