在尝试将 SukiSU Ultra 集成到 5.9 版本以下的内核时,遇到了构建失败的问题。具体来说,在文件 pkg_observer.c 中,需要使用 handle_inode_event 函数,但是 5.9 版本以下的内核中不存在这个函数。这导致了构建过程中出现错误,并阻止了内核的构建成功。以下是详细的错误日志和相关信息。
错误日志:
../drivers/kernelsu/pkg_observer.c:41:3: error: field designator 'handle_inode_event' does not refer to any field in type 'const struct fsnotify_ops'; did you mean 'handle_event'?
.handle_inode_event = ksu_handle_inode_event,
^~~~~~~~~~~~~~~~~~
handle_event
../include/linux/fsnotify_backend.h:106:8: note: 'handle_event' declared here
int (*handle_event)(struct fsnotify_group *group,
^
../drivers/kernelsu/pkg_observer.c:41:24: error: incompatible function pointer types initializing 'int (*)(struct fsnotify_group *, struct inode *, u32, const void *, int, const unsigned char *, u32, struct fsnotify_iter_info *)' (aka 'int (*)(struct fsnotify_group *, struct inode *, unsigned int, const void *, int, const unsigned char *, unsigned int, struct fsnotify_iter_info *)') with an expression of type 'int (struct fsnotify_mark *, u32, struct inode *, struct inode *, const struct qstr *, u32)' (aka 'int (struct fsnotify_mark *, unsigned int, struct inode *, struct inode *, const struct qstr *, unsigned int)') [-Werror,-Wincompatible-function-pointer-types]
.handle_inode_event = ksu_handle_inode_event,
^~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
make[3]: *** [../scripts/Makefile.build:338: drivers/kernelsu/pkg_observer.o] Error 1
make[2]: *** [../scripts/Makefile.build:642: drivers/kernelsu] Error 2
make[1]: *** [/home/runner/work/kernel_xiaomi_sm8250_mod/kernel_xiaomi_sm8250_mod/Makefile:1212: drivers] Error 2
make[1]: *** Waiting for unfinished jobs....设备信息:
- 设备:Redmi K30 Pro
- 操作系统版本:16
- KernelSU 版本:最新
- 内核版本:4.19.325
复现步骤:
- 将 SukiSU Ultra 集成到 5.9 版本以下的内核
- 构建内核
- 构建失败,并看到错误信息
预期行为:
内核构建成功。
附加信息:
无。
这个问题可能是由于内核版本过低,不支持 handle_inode_event 函数导致的。建议升级内核版本或寻找其他解决方案。
评论已关闭