问题标签 [printk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3160 浏览

linux - Printk 内核中的浮点值

有没有办法记录/打印内核中的浮点值。它取决于内核运行的 FPU 吗?

编译printk(KERN_DEBUG "error = %f " ,floatvalue)时,我收到错误:

对 __aeabi_f2d 的未定义引用

0 投票
1 回答
1588 浏览

linux-kernel - 看到一些内核污染消息后 printk 将不再工作

全部

我正在使用 linux 内核 2.6.35 在 Fedora14 中开发一个模块。操作系统实际上是在虚拟框中运行的。

我观察到的是,在我对代码进行了一些更改并遇到污染内核警告后,即使我将代码恢复到以前的版本,printk 也将不再工作。然后,如果我只是复制以前的代码以创建另一个具有不同名称的模块,它将再次工作......我不确定它是否是一个错误,但它是可重现的。

以下是运行良好的基本代码。我可以在 /var/log/messages 中看到 printk 消息

嗅探器.c

生成文件

然后我进行了更改,这只是对多文件模块的测试

嗅探器.c

生成文件

proto_handler.c

proto_handler.h

然后,在我制作并运行 insmod 之后,我在 /var/log/messages 中看到了这些消息

嗅探器:模块许可证“未指定”污染内核

由于内核污染而禁用锁定调试

首先,我不知道为什么会显示这些消息,因为我指定了我的许可证。

其次,在看到这些消息后,我再也无法通过运行 insmod 或 rmmod 看到该模块的 printk 的结果,即使我恢复了我的代码。但正如我所说,我可以将以前的代码复制到具有其他名称的模块中,它会再次工作。Linux中有类似黑名单的东西吗?

谁能帮我?非常感谢!

0 投票
0 回答
463 浏览

linux - Printk 打印两次:如何抑制带有前缀信息的一次?

我正在尝试 linux 设备编程,但遇到了一个奇怪的问题。对于我所有的 printk 行,它总是会在控制台上显示两次。

例如,这是我的 helloworld 驱动程序:

这是我的制作文件:

当我加载驱动程序时,它会显示两次消息。第二次总是会给出一些我不需要的烦人的前缀信息!

我尝试更改 printk 配置,它只会抑制第一条消息(见下文)。和 'dmesg -n 1' 具有相同的结果。

谁能告诉我为什么这个前缀信息(时间戳+“gumstix user.alert kernel:”)总是出现?如果可能,如何删除它?非常感谢。

以下是我的环境的摘要:

0 投票
1 回答
2753 浏览

linux-kernel - 获取 linux 内核的 dump_stack 到 char 数组而不是控制台

所以,当我调用dump_stack() 时,它会打印到dmesg。但是,我需要它,比如说,将它“打印”到 char 数组,这样我就可以在很久很久以后,在不同的地方显示堆栈。

可能吗?调试我遇到的讨厌的错误对我有很大帮助!

0 投票
1 回答
1405 浏览

android - 在android中调试设备挂起时如何查看kmsg

我正在调试安卓手机的挂起/恢复过程。我在手机中使用 adb shell 并执行 cat /proc/kmsg 来查看调试消息。问题是每当手机挂起时,它会使 USB 进入睡眠状态,这将断开 adb 的连接,因此 kmsg 将终止。我可以拔下并重新插入 USB 并执行另一个 cat /proc/kmsg。但是重要的调试信息会丢失。

所以我的问题是如何在手机处于挂起和恢复周期时捕获 kmsg?

谢谢你。

0 投票
1 回答
94 浏览

printk - prink() 开头的数字是什么意思?

如果您使用 prink() 打印内核消息并在控制台中读取它,它看起来像这样:

每行开头的数字是什么意思?它是某种时间戳吗?我如何解释它?

0 投票
1 回答
356 浏览

mac-address - 使用 sk_buff 提取时从 IEEE802.11 数据包的 mac 头打印 MAC 地址

我正在编写一个模块,用于提取无线 802.11 数据包的以太网 Mac 标头的 MAC 地址。我将 ethernetmac 标头提取为

我想打印这些地址以查看它包含的值。我如何使用printkKERN_INFO

目前我正在使用这个语句,但它会导致内核处于恐慌模式

0 投票
0 回答
3256 浏览

linux-kernel - printk/pr_info 仍然没有打印到内核缓冲区

我正在尝试调试为什么我所做的更改无法正常工作。这很奇怪,因为这个驱动程序有两个不同的版本同时运行(mpt2sas 和 mpt3sas),而且变化是相同的。更改在 mpt2sas 中有效,但在 mpt3sas 中无效。我必须弄清楚为什么。我的第一个想法是:打印出驾驶员实际检查的内容。

为此,我从这里阅读了一些东西,并参考了 Stack Overflow 中关于类似问题的一些链接(例如这个答案这个问题)。我目前的 printk 级别:

然而,当我做这样的事情时,我看不到任何输出:

我发现另一个链接指出内核缓冲区可通过 /proc/kmsg 获得。所以我做了

...仍然没有骰子。我运行我的程序,没有看到 printks。我在上面提供的链接之一是这样说的,“......将 printk 更改为 pr_info 成功了......”。嗯,我也试过了。

不,那也没用。我通过将它们从 DEBUG 级别更改为 INFO 级别来提高优先级。不,那没有用。

问题很简单:我错过了什么?

编辑 我忘了提,甚至不确定它是否相关,但这是 CentOS 6.5。

谢谢,
安迪

0 投票
0 回答
272 浏览

linux - 如何更改 printk 写入的默认路径?

printk 写入/var/log/messages. 所以我想知道是否可以从某个地方更改此路径并printk写入 STDOUT 或文件。我搜索但没有在互联网或手册页上找到任何内容。谁能告诉我这是否可能以及如何?

0 投票
1 回答
3774 浏览

linux - Linux内核:记录到特定文件

我正在尝试编辑 linux 内核。作为调试过程的一部分,我希望将一些信息写入文件。我已阅读有关 printk 功能的信息。但我想将文本添加到特定文件(保留调试日志的默认文件中的其他文件)。简而言之:我有点想在 printk 函数中指定“目的地”(或者至少有一些解决方法)

我怎样才能做到这一点?使用 fwrite/fopen 会起作用吗(如果是的话,与 printk 相比,它会不会产生太多开销,因为它们的实现方式不同)?

我还有什么其他选择?