关闭Linux内核打印信息方法
调试内核模块过程中,kmsg打印信息太多,通过修改/proc/sys/kernel/printk文件内容来控制。
一般通过 echo 0 > /proc/sys/kernel/printk关闭打印信息
或者echo 0 4 0 7 > /proc/sys/kernel/printk
/proc/sys/kernel/printk 内容简介
此文件有四个数字值,它们根据日志记录消息的重要性,定义将其发送到何处。关于不同日志级别的更多信息,请查阅syslog(2)联机帮助。上面显示的4个数据分别对应:
控制台日志级别:优先级高于该值的消息将被打印至控制台
默认的消息日志级别:将用该优先级来打印没有优先级的消息
最低的控制台日志级别:控制台日志级别可被设置的最小值(最高优先级)
默认的控制台日志级别:控制台日志级别的缺省值
数值越小,优先级越高
其实这四个值是在kernel/printk.c 中被定义的,如下:
int console_printk[4] = {undefined
DEFAULT_CONSOLE_LOGLEVEL, /* console_loglevel */
DEFAULT_MESSAGE_LOGLEVEL, /* default_message_loglevel */
MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */
DEFAULT_CONSOLE_LOGLEVEL, /* default_console_loglevel */
};
内核通过printk() 输出的信息具有日志级别,日志级别是通过在printk() 输出的字符串前加一个带尖括号的整数来控制的,如printk("<6>Hello, world!\n");。内核中共提供了八种不同的日志级别,在 linux/kernel.h 中有相应的宏对应。
首先,printk有8个loglevel,定义在<linux/kernel.h>中,其中数值范围从0到7,数值越小,优先级越高。
#define KERN_EMERG "<0>" 系统崩溃
#define KERN_ALERT "<1>"必须紧急处理
#define KERN_CRIT "<2>" 临界条件,严重的硬软件错误
#define KERN_ERR "<3>" 报告错误
#define KERN_WARNING "<4>" 警告
#define KERN_NOTICE "<5>" 普通但还是须注意
#define KERN_INFO "<6>" 信息
#define KERN_DEBUG "<7>" 调试信息
从这里也可以看出他们的优先级是数值越小,其紧急和严重程度就越高。
如果要想在内核启动过程中打印少的信息,就可以根据自己的需要在kernel/printk.c中修改以上数值,重新编译即可!
/* printk's without a loglevel use this.. */
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */
了解了上面的这些知识后,我们就应该知道如何手动控制printk打印了。例如,我想屏蔽掉所有的内核printk打印,那么我只需要把第一个数值调到最小值1或者0。
# echo 1 4 1 7 > /proc/sys/kernel/printk
或者
# echo 0 4 0 7 > /proc/sys/kernel/printk
关闭Linux内核打印信息方法相关推荐
- 去掉linux内核打印信息的一种方法
传送门:http://linux.chinaunix.net/techdoc/system/2006/08/07/937667.shtml
- linux磁盘信息文件,Linux查看硬盘信息方法总结归纳
Linux查看硬盘信息方法总结归纳 lsblk lsblk命令用来查看接入到系统中的块设备,默认输出分区.大小.挂载点等信息,一目了然: tlanyan@node1:~$ lsblk sda 8:0 ...
- Android获取Linux图像信息,Android系统信息获取 之十三:Linux内核版本信息获取
Android系统信息获取 之十三:Linux内核版本信息获取 Android系统是基于Linux的,各个Android版本对应的Linux版本不尽相同,我们这里不去追究各个Android对应的Lin ...
- Linux内核的编译方法及如何往内核中增加程序
2019独角兽企业重金招聘Python工程师标准>>> ARM Linux的系统调用实现原理是采用swi软中断从用户(usr)模式陷入管理模式(svc). 内核空间和用户空间这两个名 ...
- 分析arm linux启动打印信息
===================================================== arm linux系统启动相关文章列表: arm linux系统启动流程 http://bl ...
- Android系统信息获取 之十三:Linux内核版本信息获取
Android系统是基于Linux的,各个Android版本对应的Linux版本不尽相同,我们这里不去追究各个Android对应的Linux版本是什么,而是通过工具或者使用代码的方法去获取我们使用的A ...
- Linux内核源代码获取方法
Linux内核源代码获取方法 什么叫Linux 什么叫Linux内核 Linux内核源代码的获取 什么叫Linux? Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UN ...
- Android驱动(1)---Ubuntu中为Android系统上编写Linux内核驱动程序实现方法
Ubuntu中为Android系统上编写Linux内核驱动程序实现方法 本文主要介绍在Ubuntu 上为Android系统编写Linux内核驱动程序, 这里对编写驱动程序做了详细的说明,对研究Andr ...
- Linux内核多线程实现方法 —— kthread_create函数
Linux内核多线程实现方法 -- kthread_create函数 内核经常需要在后台执行一些操作,这种任务就可以通过内核线程(kernle thread)完成独立运行在内核空间的标准进 ...
最新文章
- dataTable 从服务器获取数据源的两种表现形式
- shell中的函数shell中的数组告警系统需求分析
- python语言编程环境-python3编程环境搭建
- 【ABAP】销售订单Billing Plan创建
- boost::hana::extract用法的测试程序
- 【燕郊】【2015-12-31】【知乎】
- 04-11 常见接口安全测试工具
- 机器学习—关联规则分析之Apriori算法及其python实现
- 牛客多校第六场G Is Today Friday?(吉姆拉尔森/蔡勒公式 + 思维)题解
- tensorflow两种padding方式
- 基于SSM框架的公交车调度管理系统
- 联想服务器 硬盘支架 st,联想服务器硬盘阵列离线怎么解决
- 微信扫一扫地标识别技术揭秘
- ecu根据什么信号对点火提前角_【科普】汽车ECU现状及发展趋势
- 1005:地球人口承载力估计(c++)
- SJTU 《综合英语一》备考题
- fastjson解析接口json格式数据
- Educational Codeforces Round 105 (Rated for Div. 2) 题解
- Adobe软件大全,你用过几个?
- 如何改变premiere pro的安装路径
热门文章
- Steam上不去商店和社区的方法 / SteamCommunity 443/80端口被占用报错解决办法
- Android实现平板的类股票列表联动
- 保研历程(经验分享、保研流程介绍)
- Python 爬取京东商品评论 + 词云展示
- Keepalived+LVS+MySQL双主复制实现读写负载均衡及高可用
- opengl 画椭圆_椭圆围城与圆型观光步道
- JS 图片压缩上传并在iOS中矫正方向
- 安卓一键清理内存_软件| 安卓系统最强悍微信清理软件,一键将所有垃圾文件搜索出来,还可预览删除...
- mysql 怎样解锁表_mysql一键解锁表
- Creo 4.0 软件安装教程