Newsletter RuyiSDK
Get the latest development progress every two weeks
2024 年 RuyiSDK 项目将切换为更加敏捷的开发迭代模式,预期每 2 周发布一个开发版本,提供一些新功能,如包管理器能力迭代、RuyiSDK 软件源提供新的软件包或者软件包版本升级、或工具链、板卡的新增适配等等,这些更新将以 release note 的方式公开。下次更新的 RuyiSDK V0.3 版本将在 1 月 16 日发布。
在 Ruyi 包管理器方面,近 2 周的 工作主要是制定本里程碑的开发计划,以及与包管理器功能开发相关的技术设计,如包管理器对自我更新的支持(涉及软件源结构的新增),以及更容易感知的 Ruyi 软件源数据整体版本等。
此外,2024 年我们将切换为更加敏捷的开发迭代模式:预期每 2 周都将提供一些新功能,如包管理器能力迭代,或工具链、板卡的新增适配等等。
更新大致与双周报的节奏同步:下次更新会发生在 1 月 16 日前后。
IDE 开发者还在招聘中,开发进度暂无进展。
开始更新 GCC11/12 分支上的 RISC-V 扩展支持,修复了 Zca option 的冲突问题,添加了 Profiles 支持所需的一些新扩展
RuyiSDK V0.2 版本发布,为大家提供了一个基础的以编译工具链和模拟器运行环境为主的包管理器,并在 12 月 15 日举办的 PLCT Lab OpenDay 2023 线上会议上分享了 RuyiSDK V0.2 的建设成果和未来计划,希望这个版本能够给大家带来不一样的编译环境搭建体验,从文档开始,欢迎大家关注和试用。
项目地址:https://github.com/ruyisdk/ruyi
Ruyi 0.2 在上周五成功发布了,可移步 GitHub Releases 或 ISCAS 镜像源下载体验。发布前做了以下的修复与功能改进:
- Issue #12 的进一步用户体验优化:在需要用到某个命令如
tar
或 zstd
而当前环境内却未提供的时候,提前报错退出,而不仅仅只是警告然后在实际调用时向用户展示满屏的 Python backtrace。
- Issue #24:GNU 工具链包中的 GDB 先前非预期地动态链接到了构建环境中的 Python 3.8,导致这些
gdb
二进制在 Python 版本不是 3.8.x 的系统上无法工作。考虑到 Python 版本的多样性,以及目前 Ruyi 所计划支持的宿主发行版均已提供 gdb
包,目前暂时先禁用了软件源中三种 GNU 工具链包的 GDB Python 支持。后续将调研以静态链接的方式恢复支持。
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。
本期暂无进展。
Bitmanip/Scalar Crypto 的 intrinsic patch 收到了 review 意见,开发过程中发现了 gcc upstream 的模板错误,已反馈社区进行了修复。RISC-V Profiles 根据 review 意见重新提交了 patch,目前收到新的反馈意见,等待修改后重新发送。修复了 OpenHW 社区发现的 Zca .option 段冲突问题,目前已被 OpenHW 社区合并。Gprofng/libmvec RISC-V 后端 porting 工作持续推进中。
2023 年即将结束,小伙伴们都开始盘点和总结今年的工作,RuyiSDK 团队则在紧锣密鼓地准备 V0.2 版本的发布。RuyiSDKV0.2 版本很快就将与大家见面,希望能成为 2023 年底的一份小礼物,为大家在寒冬中带来一丝温暖。
项目 地址:https://github.com/ruyisdk/ruyi
Ruyi 0.2.x 分支的功能开发已完成,代码已冻结,进入测试阶段。
目前已经支持了以下功能:
- 源代码包的解压式安装。
- 带或不带 sysroot 的虚拟环境创建。
- 虚拟环境内自带 CMake、Meson 交叉编译定义文件。
- LLVM/Clang 工具链的集成;需要搭配 GCC 工具链的 sysroot 以及 gcc 支持库使用。
- QEMU linux-user 静态模拟器的集成,可以通过
ruyi-qemu
wrapper 方便地调用,也在虚拟环境中自带了适用 systemd-binfmt
的配置文件。
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。
IDE 开发者还在招聘中,本期暂无开发进展。
针对 Eclipse 对 RISC-V 的现有支持插件进行了一些试用尝试:
-
【完成 & 支持】为 Hello World 工程指定 RISC-V Cross Toolchain 并成功完成交叉编译;
-
【进行中 & 暂未走通】为 Hello World 工程配置 Run Configurations,在 Eclipse 中集成 qemu 环境,并完成可执行程序传递、程序执行、执行结果查看;
通过串口设置可以在 Eclipse Console 中显示 qemu 加载 oerv 23.09 镜像的过程:成功显示了 qemu 启动 oerv23.09 系统过程并显示系统登录提示信息。后续操作需要手动(或者说还未找到更加便捷的方式打通)。
qemu user 模式设置配置项可能存在问题,未成功在 Console 中显示打印信息,呈现出预期想要的效果;
-
【进行中 & 暂未走通】为 Hello World 工程配置 Debug Configurations,在 qemu 中执行交叉调试;
完成了 Zcmt 扩展的 Rebase 工作,并已向 Binutils 上游提交。完成了 K 扩展的 intrinsics 支持工作,向上游提交了 patch, B 扩展的 intrinsics 工作仍在进行测试中,预计本周内提交支持。RUYISDK 工具链方面提交了 RUYISDK 工具链的介绍文档,包含常用的 RISC-V GNU 工具介绍及支持扩展,常用选项说明,持续更新工具链仓库中。
即将进入年底,各类技术会议密集召开,各种新产品和新动态不断发布,各类社区的技术氛围空前浓厚。RuyiSDK 将在下个月按计划发布 V0.2 版本,欢迎大家关注和试用。
需求变更:ruyi v0.2 新增了 sysroot、QEMU 的支持需求,该版本的代码冻结因而未在上周完成。
目前仍然在做 QEMU、LLVM 的打包工作。
完成了从上游源码、平头哥源码构建的 GCC 工具链的打包,期间修复了上游 crosstool-ng 的 multilib 构建问题一处,待提交上游。
为方便未及时升级系统的同学们测试、使用,现已将工具链、ruyi
二进制的构建容器系统版本降低到了 Ubuntu 20.04。
但 ruyi
官方支持的系统版本基线维持不变:仍然为 Ubuntu 22.04、openEuler 23.09。
此外,对 RuyiSDK 软件源结构做了一些更新,详见文档:
- 为使 repo 内的软件包信息有条理,新增了软件包分类的概念,将原先扁平的目录结构加深 1 层;
- 为方便后续迭代、表达特殊语义等需要,预留了下划线开头的包名,后续再行 case-by-case 定义。
IDE 部分 10 日提交了一版基于 Eclipse 已有插件集成的 x86_64 的可执行程序,界面定制部分仅完成可执行程序 LOGO 定制和加载界面定制,未按照预期完成所需的定制任务。后因为 IDE 开发人员变动,开发进度再无推进。
现处于 IDE 开发人员招聘中。
完成了 Profiles 的 gcc 支持,重构了 zcmp 扩展的 binutils 实现,已向上游提交 patch,等待社区审核中。继续进行 B/K 扩展的 intrinsic 开发工作,预计本月完成支持后向上游提交工作。RUYISDK 工具链方面正在重构工具链分支以 RVV 扩展的最新特性,准备补充基础的 riscv-gcc 使用说明,包括支持扩展及常用选项参数等,预计 0.2 版本发布前完成。
天气渐冷,RuyiSDK 双周进展已经来到了第 9 期。从本期开始,RuyiSDK 双周进展将采用全新的内容组织形式,期望能给您带来更好的体验,成为您冬日里的一缕暖阳。
项目地址:https://github.com/ruyisdk/ruyi
相比两周前,调整了一部分软件源的元数据格式,联网包管理器的功能也实现了大部分。
目前实现了以下的功能点:
- 二进制分发:可以打包为单个二进制可执行文件了。
平台适配方面,我们为 amd64 架构适配了 Ubuntu 22.04、openEuler 23.09 两个发行版,
为 riscv64 架构适配了 Debian 的 20231109 快照版本(预期在 Fedora 等发行版上也能正常运行)。
- 软件源相关:实现了软件源的同步、软件包的安装。
- 已安装包的管理:可以初步建立类似 Python virtualenv 用法的虚拟环境了:
此做法可广泛兼容多种构建系统的现有集成方式,从而方便开发者使用。
(目前虚拟环境内的命令符号链接仍待完善。)
除此之外,在 ruyi
的软件源相关功能基本完成后,也同步开始了测试工作。
目前与测试同学初步对接了 user story 的前半部分,待虚拟环境的符号链接功能完成后将继续下一步工作。
前期 RuyiIDE 方面完成了基于 Eclipse 插件开发的技术学习。目前正在开展 Eclipse 定制发行版的制作和安装程序打包工作,具体要求如下:
对标 Eclipse IDE for Embedded C/C++ Developers 包含的主要插件,基于 Eclipse 生成一个自定义的 Eclipse Distribution,形成 RuyiSDK IDE 的初始打包过程/程序。要求首先能够产出功能等同于 Eclipse IDE for Embedded C/C++ Developers 的 Linux 环境下 IDE 安装程序,并在此基础上完成定制界面定制。
继续开发 RISC-V Profiles,Bitmanip/Scalar crypto intrinsic 在工具链上的支持,开始准备向上游提交 RVV 0.7&1.0 的兼容性 patch。完成了 RVP 向 gcc13 的 porting 工作,目前仍在 review 修改中。