CC kernel/sched/debug.o
CC kernel/sched/tune.o
kernel/sched/tune.c:897:30: error: 'sched_boost_override_write_wrapper' undeclared here (not in a function); did you mean 'sched_boost_override_write'?
897 | .write_u64 = sched_boost_override_write_wrapper,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| sched_boost_override_write
kernel/sched/tune.c:902:30: error: 'sched_colocate_write_wrapper' undeclared here (not in a function); did you mean 'sched_colocate_write'?
902 | .write_u64 = sched_colocate_write_wrapper,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| sched_colocate_write
kernel/sched/tune.c:908:30: error: 'boost_write_wrapper' undeclared here (not in a function)
908 | .write_s64 = boost_write_wrapper,
| ^~~~~~~~~~~~~~~~~~~
kernel/sched/tune.c:913:30: error: 'prefer_idle_write_wrapper' undeclared here (not in a function); did you mean 'prefer_idle_write'?
913 | .write_u64 = prefer_idle_write_wrapper,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| prefer_idle_write
kernel/sched/tune.c:816:1: warning: 'boost_write' defined but not used [-Wunused-function]
816 | boost_write(struct cgroup_subsys_state *css, struct cftype *cft,
| ^~~~~~~~~~~
kernel/sched/tune.c:775:1: warning: 'prefer_idle_write' defined but not used [-Wunused-function]
775 | prefer_idle_write(struct cgroup_subsys_state *css, struct cftype *cft,
| ^~~~~~~~~~~~~~~~~
kernel/sched/tune.c:616:12: warning: 'sched_colocate_write' defined but not used [-Wunused-function]
616 | static int sched_colocate_write(struct cgroup_subsys_state *css,
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/tune.c:383:12: warning: 'sched_boost_override_write' defined but not used [-Wunused-function]
383 | static int sched_boost_override_write(struct cgroup_subsys_state *css,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:343:kernel/sched/tune.o] 错误 1
make[1]: *** [scripts/Makefile.build:656:kernel/sched] 错误 2
make: *** [Makefile:1160:kernel] 错误 2
┌──(root㉿yunyao)-[/home/qiyu/kernel-xiaomi-sdm845-master]
└─#
编译Android kernel错误
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
从你提供的错误信息来看,问题出现在
kernel/sched/tune.c文件中,涉及到几个未声明的函数指针,如sched_boost_override_write_wrapper、sched_colocate_write_wrapper和boost_write_wrapper等。同时,有警告指出一些函数被定义但没有被使用,例如boost_write、prefer_idle_write和sched_colocate_write。这些错误通常意味着在你的代码中引用了某些函数,但是这些函数的实际实现或者它们的声明(通常是通过宏或者结构体成员的形式)没有正确地包含或定义。为了解决这个问题,你可以尝试以下步骤:
步骤 1: 检查头文件
确保所有相关的头文件都被正确包含。通常,对于Linux内核模块,这可能意味着需要检查
include/linux/cgroup.h或其他相关头文件是否已经被正确包含在tune.c文件中。如果这些头文件包含了必要的函数声明或宏定义,那么它们应该在你的源文件顶部被包含。步骤 2: 定义函数指针
如果函数指针需要自定义实现,确保它们被正确声明并实现。例如,如果
sched_boost_override_write_wrapper需要一个自定义实现,你需要在代码中添加其声明和定义。通常,这些函数指针会被定义为如下格式:static int sched_boost_override_write_wrapper(struct cgroup_subsys_state *css, struct cftype *cft, u64 val);然后,在适当的位置提供其实现。
步骤 3: 更新内核配置
有时候,错误可能是由于内核配置不正确导致的。确保你的
.config文件包含了所有必要的选项,特别是与cgroup和调度器相关的配置项。步骤 4: 清理并重新构建
在尝试上述修改后,务必清理并重新构建内核。可以使用以下命令:
make clean make mrproper make menuconfig # 根据需要调整配置 make -j$(nproc) # 开始构建步骤 5: 检查官方文档或社区资源
如果问题仍然存在,查阅官方文档或社区资源可能会有所帮助。Linux内核的文档非常丰富,可以从
Documentation/目录下的文件开始,或者访问Linux内核邮件列表和GitHub上的相关项目页面,查找类似问题的解决方案。步骤 6: 回滚到已知稳定版本
如果所有方法都失败了,考虑回滚到一个已知稳定的内核版本,或者从官方仓库拉取最新的代码,因为有时候错误可能是由代码中的bug引起的,而这些问题可能已经在后续的版本中得到了修复。
希望以上步骤能帮助你解决编译过程中遇到的问题。如果还有其他具体疑问,欢迎继续询问。
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用