You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Buildroot构建过程中拒绝我的自定义设备树目录?

问题描述

我在使用自定义设备树时做了以下操作:

  • 为排除设备树语法错误,下载原始dts文件并重命名为custom-bananapro.dts(目的是掌握自定义设备树的完整流程)
  • 将custom-bananapro.dts保存到/home/oleg/Documents/buildroot/my_oleg目录
  • 在Buildroot的menuconfig中配置:
    • 树内设备树源文件名 = custom-bananapro
    • 树外设备树源文件路径 = /home/oleg/Documents/buildroot/my_oleg

Buildroot构建时出现错误:

cp -f /home/oleg/Documents/buildroot/my_oleg /home/oleg/Documents/buildroot/output/build/linux-5.4.7/arch/arm/boot/dts/
cp: -r not specified; omitting directory '/home/oleg/Documents/buildroot/my_oleg'
make[1]: *** [package/pkg-generic.mk:283: /home/oleg/Documents/buildroot/output/build/linux-5.4.7/.stamp_built] Error 1
make: *** [Makefile:82: _all] Error 2

后续尝试修改U-Boot设备树配置:

BR2_TARGET_UBOOT_CUSTOM_DTS_PATH=/home/oleg/Documents/buildroot/my_oleg

但Buildroot构建仍报类似错误:

cp -f /home/oleg/Documents/buildroot/my_oleg /home/oleg/Documents/buildroot/output/build/uboot-2022.04/arch/arm/dts/
cp: -r not specified; omitting directory '/home/oleg/Documents/buildroot/my_oleg'
make[1]: *** [package/pkg-generic.mk:283: /home/oleg/Documents/buildroot/output/build/uboot-2022.04/.stamp_built] Error 1
make: *** [Makefile:82: _all] Error 2

解决方案

问题核心是配置路径时指向了目录而非具体的dts文件,Buildroot执行cp命令时试图复制整个目录,但未添加-r参数导致失败。

修正步骤:

  1. Linux设备树配置:
    在menuconfig中,将「树外设备树源文件路径」改为具体的dts文件路径:
    /home/oleg/Documents/buildroot/my_oleg/custom-bananapro.dts
    「树内设备树源文件名」保持custom-bananapro即可。

  2. U-Boot设备树配置:
    将BR2_TARGET_UBOOT_CUSTOM_DTS_PATH的值修改为具体文件路径:
    /home/oleg/Documents/buildroot/my_oleg/custom-bananapro.dts

  3. 重新执行Buildroot构建命令:make clean && make

这样Buildroot会正确复制单个dts文件,而非尝试复制整个目录,即可解决cp命令报错问题。

内容的提问来源于stack exchange,提问作者kemal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:42:56