为了在内核模式和用户空间进行通信,我正在使用这个 C 程序。我正在使用以下 Makefile 创建.ko
要加载的文件。
bj-m := sysctl_test.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
成功执行并加载.ko
文件后,它应该具有创建/proc/sys/net/test
目录和value1
该value2
目录中的文件。
当我加载这个模块时,它不会创建任何文件或目录。我在这里做错了什么还是代码需要一些更改?
我尝试通过将结构中的值修改为:
static ctl_table test_net_table[] = {
{
...
.procname = "/proc/sys/net/test",
...
},
{ .ctl_name = 0 }
};
static ctl_table test_root_table[] = {
{
...
.procname = "/proc/sys/net/",
...
},
{ .ctl_name = 0 }
};
原始值分别是test
和net
。
谢谢你的时间!