カーネル モードとユーザー空間で通信するために、この 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
た。
御時間ありがとうございます!