v3中有一个jprobe_example.c
。但是v4中缺少它。我尝试编译具有内核v4的v3示例,并且可以给我jprobe_example.ko
,但是当我尝试insmod
时,它会失败
insmod: ERROR: could not insert module jprobe_example.ko: Operation not permitted.
/var/log/syslog
说register_jprobe failed, returned -38
另外两个示例是insmod
版。因此,问题是,是否从内核v4中删除了jprobes?为什么我可以编译模块而不编译insmod
?
答案 0 :(得分:2)
在Linux内核中不推荐使用jprobes,并且在提交9be95bd
中删除了示例文件:
commit 9be95bdc53c12ada23e39027237fd05e1393d893
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date: Fri Oct 6 08:15:57 2017 +0900
kprobes: Remove the jprobes sample code
Remove the jprobes sample module because jprobes are deprecated.
[...]
该提交已合并到4.15-rc1中。
-38 is -ENOSYS
,无效的系统调用号码的错误代码。