Для связи в режиме ядра и пользовательском пространстве я использую эту программу на 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
соответственно.
Спасибо за ваше время!