Ubuntu 20.04编译安装Linux内核5.14.14时缺失bzImage文件如何解决
问题原因与解决方案
核心原因
没有生成bzImage的直接诱因是报错首行提到的CONFIG_X86_X32 enabled but no binutils support:X32 ABI配置项被开启,但Ubuntu 20.04默认的binutils不提供X32支持,导致架构相关代码编译提前终止。你以为make -j12没有报错,是因为多线程编译的输出刷新速度快,遗漏了中途的终止提示,实际上完整编译流程根本没有跑完,自然不会生成最终的bzImage文件。
具体解决步骤
- 关闭CONFIG_X86_X32配置项
回到内核源码根目录,运行make menuconfig,按路径找到对应选项:Processor type and features->Kernel support for x32 ABI,按N取消勾选,保存退出后确认.config文件中CONFIG_X86_X32已被设为n或者相关配置行消失。 - 清理残留编译中间文件
运行make clean清理之前编译失败生成的不完整中间文件,避免干扰后续编译流程。 - 重新编译内核
运行make -j12,编译结束后可以执行echo $?检查返回值,返回0代表编译成功,返回非0值说明还有编译问题需要排查。 - 确认bzImage生成后再执行安装
编译成功后先检查arch/x86/boot/bzImage文件是否存在,确认存在后先执行make modules_install安装内核模块,再运行make install完成内核安装。
额外注意事项
Ubuntu环境编译内核建议提前安装全依赖包,避免因依赖缺失导致编译中断,可先执行sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev安装所需依赖。
内容的提问来源于stack exchange,提问作者David Chidester
相关产品推荐
相关产品推荐

