如何修复错误:重新定义'__kstrtab_sched_setscheduler_nocheck'

时间:2017-12-07 14:15:24

标签: android c linux-kernel kernel-module

我正在编译android内核v3.10.108。我在defconfig中启用了内核模块,当我尝试编译时遇到了这个错误。这是整个登录hastebin。这是kernel source。我不是编程语言方面的专家,我需要帮助。还请指出错误发生的原因。

1 个答案:

答案 0 :(得分:1)

内核源实际上是here。发生错误是因为有两个提交都将行EXPORT(sched_setscheduler_nocheck);添加到文件“kernel / sched / core.c”,导致重新定义错误。提交是herehere

发生错误是因为提交更改的人没有检查以确保在启用模块时它仍然正确构建。

我建议在github上引发issue来报告错误。

您可以通过删除“kernel / sched / core.c”中有问题的EXPORT(sched_setscheduler_nocheck);行之一或在本地恢复这两个git提交中的第二行来解决本地问题。

编辑:

我从未注意到构建日志中有两个错误。另一个是由于两次提交应用于“fs / fs_struct.c”herehere

编辑2

后续的链接器错误是由于内核中的某些内容.config被配置为模块(或者可能根本没有配置),这些模块被配置为内置的其他内容链接。

配置CONFIG_HW_RANDOM_MSM=y(不是=m)以希望修复“sensors_ssc.c”链接器问题。

配置CONFIG_IPV6=y(不是=m)和CONFIG_NF_DEFRAG_IPV6=y(不是=m),希望能解决“ipc_router_security.c”链接器问题。

相关问题