gpt4 book ai didi

linux - 尽管正确设置了日志级别,但 Printk 不打印

转载 作者:太空宇宙 更新时间:2023-11-04 09:50:49 25 4
gpt4 key购买 nike

我的问题是,我正在尝试将驱动程序构建到内核中。我决定用一个简单的 Hello World 程序来测试我的代码。代码如下:

#include <linux/kernel.h>
#include <linux/err.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/printk.h>

int __init my_init(void)
{
printk(KERN_ALERT "Hello world\n");
return 0;
}

device_initcall(my_init);
//subsys_initcall(my_init);

此外,cat/proc/sys/kernel/printk 显示 7 4 1 7从 .config 文件中,我找到“CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4”

我在 Makefile 中使用 obj-y += 制作文件。我发现“make”可以构建模块,但启动后 dmesg 或/var/log/下没有出现 printk 输出。

我想知道驱动程序是否根本没有内置到内核中。有什么方法可以检查吗?

谢谢,D.

最佳答案

你可以使用

lsmod command
OR
cat /proc/modules

用于检查您的驱动程序是否已加载的命令。

看着你的代码,我觉得 __init 应该替换为 module_init 或 __initcall。这些内核签名确保模块 init 在插入时被调用。

您可以使用 insmod 测试您的驱动程序,并通过调用 dmesg 检查它是否记录消息。

关于linux - 尽管正确设置了日志级别,但 Printk 不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11272617/

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