【问题标题】:Minimalistic Linux Kernel not compiling简约的 Linux 内核无法编译
【发布时间】:2020-04-10 03:52:24
【问题描述】:

我想用make tinyconfig 编译一个自己的简约Linux 内核,并在完成所有步骤之后(如here:

我收到此错误消息:

arch/x86/kernel/apic/apic.c:2282:6: error: redefinition of ‘apic_id_disabled’
 bool apic_id_disabled(unsigned int id)
      ^~~~~~~~~~~~~~~~
In file included from arch/x86/kernel/apic/apic.c:47:0:
./arch/x86/include/asm/apic.h:529:20: note: previous definition of ‘apic_id_disabled’ was here
 static inline bool apic_id_disabled(unsigned int id) { return false; }
                    ^~~~~~~~~~~~~~~~
scripts/Makefile.build:330: recipe for target 'arch/x86/kernel/apic/apic.o' failed
make[6]: *** [arch/x86/kernel/apic/apic.o] Error 1
scripts/Makefile.build:604: recipe for target 'arch/x86/kernel/apic' failed
make[5]: *** [arch/x86/kernel/apic] Error 2
scripts/Makefile.build:604: recipe for target 'arch/x86/kernel' failed
make[4]: *** [arch/x86/kernel] Error 2
Makefile:1077: recipe for target 'arch/x86' failed
make[3]: *** [arch/x86] Error 2
make[3]: Verzeichnis „/home/lukas/kernel/linux-source-4.15.0“ wird verlassen
debian/ruleset/targets/common.mk:295: recipe for target 'debian/stamp/build/kernel' failed
make[2]: *** [debian/stamp/build/kernel] Error 2
make[2]: Verzeichnis „/home/lukas/kernel/linux-source-4.15.0“ wird verlassen
debian/ruleset/common/targets.mk:242: recipe for target 'debian/stamp/do-build-arch' failed
make[1]: *** [debian/stamp/do-build-arch] Error 2
make[1]: Verzeichnis „/home/lukas/kernel/linux-source-4.15.0“ wird verlassen
dpkg-buildpackage: Fehler: debian/rules build Unterprozess gibt Abbruchstatus 2 zurück
debian/ruleset/targets/common.mk:401: recipe for target 'debian/stamp/build/buildpackage' failed
make: *** [debian/stamp/build/buildpackage] Error 2

提前谢谢你

【问题讨论】:

  • 在运行make之前是否导出了ARCH

标签: linux compilation linux-kernel kernel apic


【解决方案1】:

#ifdef CONFIG_SMP
第535章 第536章 第537章 538 静态内联 bool apic_id_is_primary_thread(unsigned int id) { return false; }
539 静态内联 bool apic_id_disabled(unsigned int id) { return false; }
第540章

其实你可以在/arch/x86/include/asm/apic.h中看到冲突代码 从这些代码中,在您的配置中启用 SMP 是解决此问题的最简单方法。

过程:

 make menuconfig 
 -> Processor type and features

在此处启用 [Symmetric multi-processing support] 那么

make -j8 # will compile successfully now

【讨论】:

    猜你喜欢
    • 2017-03-13
    • 2017-03-09
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 2011-05-03
    • 2018-04-19
    • 1970-01-01
    相关资源
    最近更新 更多