buildroot 添加本地 uboot

参照 《完全开发手册 - 从零移植篇》,使用 buildroot 进行构建,文中对 ubootkernel 使用云仓库进行的管理,我尝试换成使用本地代码。
make uboot-rebuild单独编译 uboot, 分别指定了uboot路径和要使用的分支版本,可是在编译时还是报错。(其中 uboot 和 kernel 在前期已经单独配置编译完成)
总结是:指定了本地仓库和分支版本,构建时为什么还要到网络下载呢?(网上下载的地方没有这个分支)

这样配置的是远程下载,毕竟用的是 URL;
可以参考如下操作来实现你的需求:

# 在 buildroot 顶层目录下创建 local.mk 文件,并写入需要本地编译的包
echo "UBOOT_OVERRIDE_SRCDIR=/home/tiansong/100ask_imx6ull_pro/uboot-imx" >> local.mk
# 单独编译 uboot
make uboot-rebuild

同理如果要编译本地 kernel

echo "LINUX_OVERRIDE_SRCDIR=/home/tiansong/100ask_imx6ull_pro/linux-imx" >> local.mk
make linux-rebuild

另:uboot 的 defconfig,就是上图配置的 U-Boot board name

参考博客 1:在家学习嵌入式5--buildroot的使用 | wowothink
参考博客 2:https://blog.csdn.net/nwpu053883/article/details/93379916

谢谢老师这么晚回复 :face_with_peeking_eye:

我又琢磨了琢磨,还是用最开始的方式实现了 buildroot 对本地代码的管理

  1. 单独适配调试 uboot 和 kernel 工程到可执行
  2. git add git commit, 更新本地仓储,然后 git log -1 拿到仓库最近的提交编号
  3. 将编号填写到 buildroot 的 menuconfig 里面再编译

1 个赞

:+1:
是我想当然了,你的方式是正确的;
我不是老师;只是一个学员;

翻了您主页回答的问题,都很专业有条理,是学员也更是老师水平了 :blush: