Open unicornx opened 3 weeks ago
感觉是可以重用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
kernel: 使用 userapps README 中提供的 prebuild rootfs: 使用 userapps README 中提供的 prebuild,ext4.img 工作正常
\ | /
- 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
kernel: 使用 userapps README 中提供的 prebuild rootfs: 自己构建 userapp(main, commitid:9dcc7a2),ext4.img 显示文件系统初始化正常,但无法进入 msh
\ | /
- 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
kernel: 自己构建 RT-smart(master, commitid:f8ea6c6527,enable 了 RISCV_S_MODE) rootfs: 使用 userapps README 中提供的 prebuild 或者自己构建 userapp(main, commitid:9dcc7a2) , ext4.img 显示文件系统初始化失败,可以进入 msh
\ | /
- 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 />
kernel: 自己构建 RT-smart(master, commitid:f8ea6c6527,enable 了 RISCV_S_MODE) rootfs: 自己构建userapp(main, commitid:9dcc7a2),fat.img 显示文件系统初始化成功,可以进入 msh,但工作不太正常,报网络失败,可能是内核中网络驱动没有配置好。
\ | /
- 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 系列产品后,也需要一个类似的 SDK 方便用户能够快速地简短命令操作即可生成一个完整的系统 package(包括了 firmware,sbi,u-boot,os(RT-thread) 以及文件系统),快速烧写到开发板中即可启动。
P.S. 这个需求本身并不属于 RT-Thread 内核的一部分,先提在这里,后面如果找到合适的仓库(或者新建)后在移走。
Describe your preferred solution
在 RTT 生态中可能的参考系统譬如:https://github.com/RT-Thread/userapps.git ,是基于它开发还是新建一个(待定 FIXME)
这个问题或许可以顺带解决 #9060 ,因为如果有了 SDK,RT-Thread 本仓库只要负责生成 rtthread.elf,其他制作 image 的素材脚本都可以移到 SDK 中。
Describe possible alternatives
No response