gpt4 book ai didi

linux - 内核中的 print 输出到哪里去了?

转载 作者:IT王子 更新时间:2023-10-29 00:18:03 24 4
gpt4 key购买 nike

我正在调试一个linux驱动(具体是ubuntu server 9.04),代码中有几个printf语句。

我在哪里可以查看这些语句的输出?

编辑 1:我正在尝试做的是使用 proc 文件系统写入内核。打印代码为

static int proc_fractel_config_write(struct file *file, const char *argbuf, unsigned long count, void *data)
{
printk(KERN_DEBUG "writing fractel config\n");
...

在 kern.log 中,当我尝试覆盖文件/proc/net/madwifi/ath1/fractel_config 时看到以下消息(当然时间不同)。

[ 8671.924873] proc write 
[ 8671.924919]

有什么解释吗?

最佳答案

很多时候 KERN_DEBUG 级别的消息会被过滤,您需要显式地提高日志记录级别。您可以通过检查 /proc/sys/kernel/printk 查看系统默认值。例如,在我的系统上:

# cat /proc/sys/kernel/printk
4 4 1 7

第一个数字显示控制台日志级别是 KERN_WARNING(有关更多信息,请参见 proc(5) 手册页)。这意味着 KERN_NOTICEKERN_INFOKERN_DEBUG 消息将从控制台过滤掉。要提高日志记录级别或详细程度,请使用 dmesg

$ sudo dmesg -n 7
$ cat /proc/sys/kernel/printk
7 4 1 7

在这里,将级别设置为 7 (KERN_DEBUG) 将允许所有级别的消息出现在控制台上。要自动执行此操作,请将 loglevel=N 添加到内核启动参数,其中 N 是您要转到控制台的日志级别或 ignore_loglevel 以打印所有内核消息到控制台。

关于linux - 内核中的 print 输出到哪里去了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com