Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TASK: 为 duo-pkgtool 制作 prebuild 实现自动化 #6

Open
unicornx opened this issue Nov 30, 2024 · 3 comments
Open

TASK: 为 duo-pkgtool 制作 prebuild 实现自动化 #6

unicornx opened this issue Nov 30, 2024 · 3 comments
Assignees

Comments

@unicornx
Copy link
Collaborator

unicornx commented Nov 30, 2024

Describe problem solved by the proposed feature

duo-pkgtool 的完整需求和设计请参考 :

duo-pkgtool 中的 prebuild 部分是执行 duo-buildroot-sdk 的脚本制作出来,预先放在 duo-pkgtool 中方便打包,好处是:

  • 避免用户每次都下载一个完整的 duo-buildroot-sdk 仓库(很大)并从头制作,耗时耗力。
  • duo-buildroot-sdk 是为 linux 环境制作用的,而 duo-pkgtool 是针对 RT-Thread 环境用的,所以我们只是借用了 duo-buildroot-sdk 中制作的一部分组件,譬如 fsbl/opensbi/u-boot 等,并不是全部

由于 duo-buildroot-sdk 可能升级,所以 prebuild 二进制文件也可能升级,所以为了支持统一升级,需要提供一个脚本,方便地 checkout 出 duo-buildroot-sdk 的某个版本并自动构建我们需要的 binary 文件以及自动将我们需要的 binary 文件提取到 duo-pkgtool 仓库的相应目录下。

每次升级后,对应的 checkout 的 duo-buildroot-sdk 的 commit 版本信息应该记录下来保存到 duo-pkgtool 仓库中以便回溯。

Describe your preferred solution

  • 在 duo-pkgtool 仓库中增加一个脚本 S
  • 在 duo-pkgtool 仓库中维护一个 prebuild 制作对应的 duo-buildroot-sdk 的版本信息 V。
  • 用户可以基于 S 和 V 快速构建出 duo 系列产品用于打包的 prebuild 二进制文件,并更新到 duo-pkgtool 的 prebuild 目录下。

采用 duo-buildroot-sdk 制作 prebuild 时还需要注意的一个问题是上游的 uboot 只保证了 uart0 可用,其他管脚会被复用,这可能会导致小核使用 uart1 时出问题。所以需要对 duo-buildroot-sdk 中的 u-boot 做一些微调。具体参考 https://gitee.com/flyingcys/cvitek_bootloader 的 commit:2aefc50dcd6d74d39ad7a90cb63798f41f5c8688 “Mask pinmux-related io in uboot's cvi_board_int function" 的做法(大致思路是在 uboot 中把原来 pinmux 的 signal 全部注释掉)。所以我们还需要在 duo-buildroot-sdk 的基础上对 u-boot 打一个类似补丁,然后再制作 prebuild 才可以。相关 patch 和 apply patch 的动作也需要作为 ”prebuild 制作“ 工作的一部分维护在 duo-pkgtool 中。参考相关 讨论记录

Describe possible alternatives

可能的改进方案。

参考 TASK:

@unicornx
Copy link
Collaborator Author

备忘:有关制作 prebuild 过程中需要基于 upstream 的 milkv-buildroot-sdk 应用相关补丁的讨论。

image

@jojoandgyc
Copy link

Accept

@unicornx
Copy link
Collaborator Author

I will take it over due to this issue is delayed too long time.

@unicornx unicornx assigned unicornx and unassigned jojoandgyc Jan 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants