0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核中如何修改printk等級(jí)

麥辣雞腿堡 ? 來(lái)源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-09-27 15:56 ? 次閱讀

printk等級(jí)

路徑:include/linux/kern_levels.h

#define KERN_EMERG KERN_SOH "0"  /* 最高輸出等級(jí),系統(tǒng)可能處于不可用的狀態(tài) */
#define KERN_ALERT KERN_SOH "1"  /* 緊急和理科需要處理的輸出 */
#define KERN_CRIT KERN_SOH "2"  /* 緊急情況 */
#define KERN_ERR KERN_SOH "3"  /* 發(fā)生錯(cuò)誤的情況 */
#define KERN_WARNING KERN_SOH "4" /* 警告 */
#define KERN_NOTICE KERN_SOH "5"  /* 重要的提示 */
#define KERN_INFO KERN_SOH "6"  /* 提示信息 */
#define KERN_DEBUG KERN_SOH "7"  /* 調(diào)試輸出 */

Linux內(nèi)核為printk定義了8個(gè)輸出等級(jí),KERN_EMERG等級(jí)最高,KERN_DEBUG等級(jí)最低。在配置內(nèi)核時(shí),由一個(gè)宏來(lái)設(shè)置系統(tǒng)默認(rèn)的輸出等級(jí)CONFIG_MESSAGE_LOGLEVEL_DEFAULT,通常這個(gè)默認(rèn)輸出等級(jí)為4,因此只有輸出等級(jí)高于4時(shí)才會(huì)輸出到終端或者串口,即只有KERN_EMERG~KERN_ERR滿足這個(gè)條件。

通常在產(chǎn)品開(kāi)發(fā)階段,會(huì)把系統(tǒng)默認(rèn)等級(jí)設(shè)置為最低,以便在開(kāi)發(fā)測(cè)試階段可以暴露更多的問(wèn)題和調(diào)試信息,在發(fā)布產(chǎn)品時(shí)再把輸出等級(jí)設(shè)置為0或者4 。

修改printk等級(jí)

# cat /proc/sys/kernel/printk  //printk默認(rèn)有4個(gè)等級(jí)
7  4  1  7

四個(gè)數(shù)字分表代表:

控制臺(tái)輸出等級(jí)
默認(rèn)消息等級(jí)
最低輸出等級(jí)
默認(rèn)控制臺(tái)輸出等級(jí)

在系統(tǒng)運(yùn)行時(shí),我們也可以修改系統(tǒng)的輸出等級(jí)。打開(kāi)所有的內(nèi)核輸出:

echo 8 > /proc/sys/kernel/printk  //打開(kāi)所有的內(nèi)核輸出

另外,還可以通過(guò)在啟動(dòng)內(nèi)核時(shí)傳遞commandline給內(nèi)核的方法來(lái)修改系統(tǒng)默認(rèn)的輸出等級(jí)。例如,使用uboot引導(dǎo)內(nèi)核時(shí),可以在uboot傳參的bootargs參數(shù)上,加上“loglevel=8”,這樣在系統(tǒng)啟動(dòng)時(shí),就打開(kāi)了所有內(nèi)核輸出。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1372

    瀏覽量

    40290
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209520
  • 系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    1017

    瀏覽量

    21347
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux內(nèi)核學(xué)習(xí)筆記:printk調(diào)試

    很多內(nèi)核開(kāi)發(fā)者喜歡的調(diào)試工具是printk,在Linux內(nèi)核,使用printk()函數(shù)來(lái)打印信
    發(fā)表于 06-01 15:14 ?1156次閱讀

    Linux內(nèi)核學(xué)習(xí)筆記:動(dòng)態(tài)輸出調(diào)試

    上篇說(shuō)到printk調(diào)試,但printk是全局的,只能設(shè)置輸出等級(jí)。而動(dòng)態(tài)輸出可以動(dòng)態(tài)選擇打開(kāi)某個(gè)內(nèi)核子系統(tǒng)的輸出,可以有選擇性地打開(kāi)某些模塊的輸出。
    發(fā)表于 06-01 15:16 ?538次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>學(xué)習(xí)筆記:動(dòng)態(tài)輸出調(diào)試

    Linux內(nèi)核調(diào)試方法的總結(jié)

    printk最容易被接受的一個(gè)特質(zhì),幾乎在任何地方,任何時(shí)候內(nèi)核都可以調(diào)用它(中斷上下文、進(jìn)程上下文、持有鎖時(shí)、多處理器處理時(shí)等)。2 printk函數(shù)脆弱之處在系統(tǒng)啟動(dòng)過(guò)程,終端
    發(fā)表于 05-20 10:30

    Linux內(nèi)核3.5開(kāi)發(fā),一起了解一下

    的優(yōu)點(diǎn)1.用戶可以隨時(shí)擴(kuò)展Linux系統(tǒng)的功能。2.當(dāng)要修改當(dāng)前Linux系統(tǒng)的驅(qū)動(dòng)時(shí),只需要卸載舊模塊,編譯目標(biāo)驅(qū)動(dòng)模塊,重新安裝插入即可。3.系統(tǒng)如果需要使用新模塊,不必重新編譯
    發(fā)表于 10-05 20:36

    linux內(nèi)核打印函數(shù)printk的方法

    1.linux內(nèi)核打印函數(shù)printk一、函數(shù)有頭文件二、定義的關(guān)鍵宏三、函數(shù)原型合理的創(chuàng)建標(biāo)題,有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個(gè)適合你的列表創(chuàng)建一個(gè)
    發(fā)表于 12-20 07:02

    迅為RK3399開(kāi)發(fā)板Android 系統(tǒng)--打印級(jí)別設(shè)置(printk日志等級(jí)設(shè)置)

    內(nèi)核源碼 include/linux/kern_levels.h 文件預(yù)定義了內(nèi)核 log 等級(jí),一共有八個(gè)
    發(fā)表于 10-25 11:21

    基于ARM9和NANDFlash對(duì)uboot和Linux內(nèi)核進(jìn)行修改

    本文針對(duì)嵌入式Linux操作系統(tǒng)提出了一種新的更新機(jī)制,并且基于ARM9微處理器和NANDFlash存儲(chǔ)器,對(duì)uboot和Linux內(nèi)核進(jìn)行修改,實(shí)現(xiàn)了對(duì)嵌入式
    發(fā)表于 04-07 11:00 ?2799次閱讀
    基于ARM9和NANDFlash對(duì)uboot和<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>進(jìn)行<b class='flag-5'>修改</b>

    Linux內(nèi)核模塊介紹,使用Linux模塊的優(yōu)點(diǎn)

    內(nèi)核通過(guò) printk() 輸出的信息具有日志級(jí)別,日志級(jí)別是通過(guò)在 printk() 輸出的字符串前加一個(gè)帶尖括號(hào)的整數(shù)來(lái)控制的,如 printk("Hello, world!/n"
    的頭像 發(fā)表于 03-30 15:53 ?7393次閱讀

    如何配置和使用Linux內(nèi)核printk功能

    了解如何配置和使用Linux內(nèi)核printk功能,包括其動(dòng)態(tài)調(diào)試功能。 這樣可以選擇性地打印調(diào)試消息,而無(wú)需重新編譯內(nèi)核
    的頭像 發(fā)表于 11-27 06:40 ?3101次閱讀

    你知道Linux內(nèi)核調(diào)試關(guān)鍵技術(shù)之一的printk?

    內(nèi)核調(diào)試技術(shù)之中,最簡(jiǎn)單的就是printk的使用了,它的用法和C語(yǔ)言應(yīng)用程序的printf使用類似,在應(yīng)用程序依靠的是stdio.h
    發(fā)表于 05-10 11:18 ?1673次閱讀

    LinuxPrintk與dmesg功能

    要將linux內(nèi)核的帶級(jí)別控制的printk內(nèi)容打印出來(lái),在命令行輸入 dmesg -n 8 就將所有級(jí)別的信息都打印出來(lái)。Linux命令:dmesg  功能說(shuō)明:顯示
    發(fā)表于 04-02 14:39 ?465次閱讀

    Linux操作系統(tǒng)修改內(nèi)核參數(shù)的三種方法詳細(xì)說(shuō)明

    linux內(nèi)核的參數(shù)設(shè)置怎么弄呢,Linux 操作系統(tǒng)修改內(nèi)核參數(shù)有以下三種方式:
    發(fā)表于 10-06 18:03 ?1.1w次閱讀
    <b class='flag-5'>Linux</b>操作系統(tǒng)<b class='flag-5'>修改</b><b class='flag-5'>內(nèi)核</b>參數(shù)的三種方法詳細(xì)說(shuō)明

    內(nèi)核調(diào)試?yán)?b class='flag-5'>printk的使用心得

    ? ? [導(dǎo)讀] 剛剛開(kāi)始做Linux相關(guān)開(kāi)發(fā)工作時(shí),深感Linux內(nèi)核代碼龐大,要加些自己的驅(qū)動(dòng)進(jìn)內(nèi)核代碼樹(shù),常常深陷bug的泥沼難以自拔,今天來(lái)分享一下
    的頭像 發(fā)表于 11-08 17:31 ?2853次閱讀
    <b class='flag-5'>內(nèi)核</b>調(diào)試?yán)?b class='flag-5'>printk</b>的使用心得

    Linux內(nèi)核pr_xx()函數(shù)封裝

    pr_xx( )封裝 在使用printk的時(shí)候需要手動(dòng)添加輸出等級(jí)KERN_INFO、KERN_WARNING等,這樣還是有些麻煩。因此,Linux內(nèi)核也對(duì)
    的頭像 發(fā)表于 09-27 15:58 ?792次閱讀

    內(nèi)核調(diào)試工具printkprintk的輸出格式

    很多內(nèi)核開(kāi)發(fā)者喜歡的調(diào)試工具是printk,在Linux內(nèi)核,使用printk()函數(shù)來(lái)打印信
    的頭像 發(fā)表于 09-27 16:09 ?1061次閱讀