gpt4 book ai didi

c - 内核模块加载导致错误

转载 作者:行者123 更新时间:2023-11-30 19:32:19 24 4
gpt4 key购买 nike

我是内核模块开发的新手,决定今天编写我的第一个内核模块。

我的模块应该接收 2 个数字作为输入,用空格分隔,并将这些数字相加。

内核模块通过名为 calc (/proc/calc) 的 proc 条目进行通信,因此从文件中读取将返回输出,而写入该文件将提供新的输入(由空格分隔的 2 个数字)

当加载模块(insmod)时,我的 shell 卡住了,当中断它并查看 dmesg 时,我看到一个内核 BUG 行, here is the trace .

我不确定这是否是我的代码中的错误,或者是 Linux 内核中的实际错误,并且很想了解我做错了什么以及如何开始使用给定的 dmesg 调试我的模块日志。

here is the source code of my module .

我的 makefile 是非常标准的,

obj-m += calc.o
KDIR := /lib/modules/$(shell uname -r)/build

all:
$(MAKE) -C $(KDIR) M=$(PWD) modules

clean:
$(MAKE) -C $(KDIR) M=$(PWD) clean

提前非常感谢!

编辑:我使用的是 ubuntu 16.04.02,版本 4.10.0-28,相当标准。

最佳答案

您创建了设备文件吗?

root@xyz-PC:~/s_flow/dd# ls -l /dev/my_device

如果没有,则首先使用以下命令创 build 备文件

root@achal:~/dd/char1# mknod /dev/my_device c  300  0

在我的系统(ubuntu 14.04)中一切都很好,如下所示。

root@xyz:~/s_flow/dd# dmesg
[ 519.751941] calc: module verification failed: signature and/or required key missing - tainting kernel
[ 519.752368] Calculator initializing
[ 519.752372] Initializing proc entry at /proc/calc
[ 519.752380] initialized calc proc entry
[ 519.752384] mallocing last_message for 128 bytes
[ 519.752386] malloc finished, resetting calc
[ 519.752389] calc reset, all good :

您能提供使用该模块的应用程序详细信息吗?

关于c - 内核模块加载导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47233265/

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