Buildroot编译提示无法找到自定义Linux内核tar.gz压缩包如何解决?
问题原因分析
- 路径展开问题:
~是Shell专属的家目录展开语法,Buildroot读取.config配置时不会执行Shell展开操作,会直接将~作为路径的字面量去查找文件,因此无法匹配到你家目录下的tar包。 - 可能存在配置项拼写错误:你填写的配置项
BR2_LINUX_KERNEL_CUSTOMER_TARBALL_LOCATION不符合Buildroot官方定义,正确的配置项名称应为BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION(少了末尾的ER)。
解决方案
你可以选择以下任意一种方案修改配置:
- 使用绝对路径填写tar包位置
替换路径中的~为你实际的家目录绝对路径,示例(将your_username替换为你的系统用户名):
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="file:///home/your_username/linux....tar.gz" BR2_LINUX_KERNEL_VERSION="custom"
- 使用Buildroot默认缓存目录存放tar包
将你的内核tar包移动到Buildroot源码根目录下的dl文件夹中,直接填写文件名即可,无需加file://前缀:
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="linux....tar.gz" BR2_LINUX_KERNEL_VERSION="custom"
生效步骤
配置修改完成后,先执行以下命令清理之前失败的内核构建缓存,再重新编译即可:make linux-dirclean && make
内容的提问来源于stack exchange,提问作者David Clark
相关产品推荐
相关产品推荐

