-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
[Feature] 实现一个打包工具,能够为 duo 快速制作 RT-smart 系统镜像 #9623
Comments
感觉是可以重用userapps那套的,那份是基于xmake的方式,可能缺的是一个比较好的包选择配置,以及支持到不同的分区及打包成一个可烧录的映像文件。 |
$ qemu-system-riscv64 --version
QEMU emulator version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.24)
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers TEST 1kernel: 使用 userapps README 中提供的 prebuild \ | /
- RT - Thread Smart Operating System
/ | \ 5.2.0 build Nov 8 2024 06:06:34
2006 - 2024 Copyright by RT-Thread team
lwIP-2.1.2 initialized!
file system initialization done!
Hello RISC-V
* Build: RT-Thread 5.2.0 Nov 8 2024 06:06:30
* Architecture: unknown TEST 2kernel: 使用 userapps README 中提供的 prebuild \ | /
- RT - Thread Smart Operating System
/ | \ 5.2.0 build Nov 8 2024 06:06:34
2006 - 2024 Copyright by RT-Thread team
lwIP-2.1.2 initialized!
file system initialization done!
Hello RISC-V TEST 3kernel: 自己构建 RT-smart(master, commitid:f8ea6c6527,enable 了 RISCV_S_MODE) \ | /
- RT - Thread Smart Operating System
/ | \ 5.2.0 build Nov 13 2024 10:15:45
2006 - 2024 Copyright by RT-Thread team
lwIP-2.0.3 initialized!
[I/sal.skt] Socket Abstraction Layer initialize success.
[I/utest] utest is initialize success.
[I/utest] total utest testcase num: (0)
[I/drivers.serial] Using /dev/ttyS0 as default console
[W/DFS.fs] mount / failed with file system type: elm
file system initialization fail!
Hello RISC-V
msh /> TEST 4kernel: 自己构建 RT-smart(master, commitid:f8ea6c6527,enable 了 RISCV_S_MODE) \ | /
- RT - Thread Smart Operating System
/ | \ 5.2.0 build Nov 13 2024 10:15:45
2006 - 2024 Copyright by RT-Thread team
lwIP-2.0.3 initialized!
[I/sal.skt] Socket Abstraction Layer initialize success.
[I/utest] utest is initialize success.
[I/utest] total utest testcase num: (0)
[I/drivers.serial] Using /dev/ttyS0 as default console
file system initialization done!
Hello RISC-V
msh />
[E/sal.skt] not find network interface device by protocol family(1).
[E/sal.skt] SAL socket protocol family input failed, return error -3. |
Describe problem solved by the proposed feature
参考 https://github.com/milkv-duo/duo-buildroot-sdk
当 RT-smart 支持了 duo 系列产品后,也需要一个简单易用的打包工具,方便用户能够快速地简短命令操作即可生成一个完整的系统 package(包括了 firmware,sbi,u-boot,os(RT-thread) 以及文件系统),快速烧写到开发板中即可启动。
P.S. 这个需求本身并不属于 RT-Thread 内核的一部分,先提在这里,后面如果找到合适的仓库(或者新建)后在移走。
Describe your preferred solution
duo 的 RT-smart 系统镜像(或者叫做“整体image”)我理解会由三部分组成:fip.bin + boot.sd + rootfs.img
其中 fip.bin 和 boot.sd 是 duo 自己格式要求的 对 loader + uboot+ kernel 的二次封装
而 fip.bin 和 boot.sd 的制作目前已经集成在 RTT 仓库中,只是实现上不太好,具体见 #9060 的描述
所以改进的计划如下:
首先
我们需要实现一个轻量级的 fip.bin 和 boot.sd 的打包工具,替换现有的 cvitek_bootloader, 解决 #9060 问题。目前这个工作分解为以下 3 个 task:
以上两个工作的产出是 https://github.com/plctlab/rttpkgtool
其次
在 fip.bin 和 boot.sd 生成的基础上再加上 rootfs.img 生成 “完整的 image”
在 RTT 生态中可能的参考系统是:https://github.com/RT-Thread/smart-build
如果把 duo 的 bsp 加入 smart-build 仓库看护的话整体流程是:
fip.bin
和boot.sd
(scons 会后台调用 rttpkgtool)fip.bin
,boot.sd
和 rootfs 打包成一个镜像,该镜像上电烧录至 sd 卡中可以直接使用注意对于 1,AARCH64 大核的构建行为稍有不同,已经提了另一个 issue
Describe possible alternatives
No response
The text was updated successfully, but these errors were encountered: