linux内核最低等级打印信息如何打开?

1、近期在调试一个驱动,该驱动是直接编译在内核中加载的,因此,若想要看到驱动加载过程中的打印信息,需要在内核启动阶段将内核的打印信息的等级设为比较低等级的。

可以下kernel/printk.c中将控制台的缺省打印等级设为8,即做以下修改:

#define DEFAULT_CONSOLE_LOGLEVEL 8

这样以来,内核中所有打印信息等级小于8的打印信息都可以打印出来,这样驱动中到device add这个层次的信息也都可以打印出来。

2、如果驱动是以模块的形式加载进去的话,若想查看最低等级的打印信息,可以通过以下命令修改控制台的缺省打印等级:

echo 8 > /proc/sys/kernel/printk

查看当前控制台的打印等级时,可以使用以下命令:

cat /proc/sys/kernel/printk

使用上述命令后,会打印4个数字,第一个即是当前控制台的打印信息等级。假设当前控制台的打印信息等级为7,那么所有打印信息等级小于等于7的打印信息都可以在控制台打印出来。




### Linux 内核打印调试方法 在 Linux 中,添加内核打印信息是一种常见的调试手段。通过向内核代码中插入 `printk` 函数调用,可以将调试信息输出到控制台或日志文件中。以下是关于如何实现这一功能的具体说明: #### 使用 printk 进行内核打印 `printk` 是 Linux 内核提供的一种类似于标准 C 库函数 `printf` 的工具,用于记录内核运行状态的信息。它的基本语法如下所示[^1]: ```c printk(KERN_LEVEL "format-string", variable-list); ``` - **KERN_LEVEL**: 表示消息的日志级别,例如 KERN_INFO 或 KERN_ERR。 - **format-string**: 类似于 printf 的格式化字符串。 - **variable-list**: 可选参数列表。 #### 配置内核日志级别 为了确保能够看到由 `printk` 输出的消息,需要调整内核的动态日志级别。可以通过 `/proc/sys/kernel/printk` 文件来设置当前的日志优先级范围。该文件包含四个数值,分别表示默认控制台日志等级最低控制台日志等级、默认控制台日志等级以及当前控制台日志等级。例如,要使所有级别的消息都显示出来,可执行以下命令: ```bash echo 8 > /proc/sys/kernel/printk ``` 这会把控制台日志等级设为最高(即8),从而允许所有的 `printk` 调试信息被立即发送至终端设备。 #### 查看内核日志 除了直接观察屏幕上的即时反馈外,还可以利用专门设计用来读取环形缓冲区内容的应用程序 dmesg 来回顾这些记录下来的事件详情。dmesg 命令提供了多种选项帮助过滤和解析原始数据流。比如只查看最新的几条记录或者按照时间戳排序等操作都可以轻松完成。 另外值得注意的是,在某些情况下可能还需要挂载 debugfs 文件系统以便进一步分析复杂问题场景下的行为模式[^2]: ```bash mount -t debugfs none /sys/kernel/debug ``` 以上就是有关于怎样在Linux环境下运用内核打印技术来进行有效故障排查的一些基础知识介绍啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值