双周报
Erhalten Sie alle zwei Wochen die neuesten Entwicklungsupdates
近期,RISC-V 生态发展迎来了一系列重要活动——"RISC-V 中国峰会"、"RISC-V校园行·香港城市大学站"等活动相继举办。团队小伙伴积极参与其中,不仅展示了我们的成果,也与行业同仁进行了深入交流,共同探讨技术发展趋势。由于这段时间的精力部分投入在这些行业活动中,本期更新内容相对精简,还请大家理解。后续我们将持续带来更多精彩内容,敬请关注!
我们特别欣喜地发现,RuyiSDK 论坛 正变得越来越活跃,我们也收到了一些开发者在这里分享使用心得、提出宝贵建议。大家的每一条反馈我们都在认真对待,并已着手进行针对性优化——正是这些真诚的声音推动着我们不断进步,在此向所有支持者致以衷心感谢!也欢迎更多小伙伴加入,一起打造更好的 RuyiSDK。
如果您在使用过程中遇到任何问题,还可以通过以下方式获得支持:
根据当前规划,下一个开发版本将于 8月12日 发布,我们将持续优化功能体验,为大家带来更多惊喜。期待与您共同见证 RuyiSDK 的成长!
RuyiSDK 0.38 对应的包管理器版本也为 0.38.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
- 为 RuyiSDK 设备安装器新增了
ruyi device flash 这一别名,以便理解记忆。感谢 RuyiSDK 社区论坛的 @Sequel 同学反馈!
- 当
ruyi 需要调用某些外部命令但无法找到时,如果当前终端可以交互,会等待您安装以便重试了。您可以在另一个终端下安装所需命令,再回到 ruyi 所在终端按回车键继续。您也可以按 Ctrl+C 退出。感谢 RuyiSDK 社区论坛的 @Sequel 同学反馈!
本次 RuyiSDK 软件源的更新主要包含了以下内容:
- 完善了设备支持:
- 新增了 Sipeed LicheePi 4A 的 RevyOS 的历史版本。感谢 @Cyl18 的贡献!
- 新增了 Milk-V Duo 的 Arduino 的 1.1.2 与 1.1.4 两个版本。感谢 @Cyl18 的贡献!
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与
RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
RuyiSDK IDE 进展:
- 新增了自定义统一日志和Console管理功能:
- 统一日志管理:集成控制台输出、文件日志和Eclipse日志系统
- 多级日志输出:支持DEBUG/INFO/WARN/ERROR分级输出
- 日志存储:日志文件存储路径兼容XDG规范,默认存储于标准目录(~/.local/state/ruyisdkide/logs)
- 代码规范化管理 :对代码格式进行规范化调整,进行中
- 支持了P扩展 v015 版本与B扩展、K扩展的重复部分指令编码,添加了相关测试用例,已同步至RUYISDK仓库与社区
- 初步完成了P扩展 v015 版本的 intrinsic 草案,正在进行GCC开发支持
- Rebase了P扩展 v0911 版本的GCC支持到 GCC15
欢迎阅读第48期《RuyiSDK双周进展》!包管理器已更新新版本,欢迎下载试用。
为了让RISC-V开发者更方便的交流,https://ruyisdk.cn 新网站已经上线了!目前有PLCT实验室超过百名RISC-V开发人员和活跃爱好者帮助回答问题,欢迎注册并参与讨论分享。
如果您在 RuyiSDK 的使用中遇到问题,可以在 RuyiSDK讨论区 反馈,或者参加 7月17日(周四)下午 15:00 开展的 “第九次 RuyiSDK Office Hours” 获得在线答疑支持服务。
下个开发版本计划7月22日发布,我们将持续带来更多改进。
RuyiSDK 0.37 对应的包管理器版本也为 0.37.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
-
新增了基本的命令行自动补全支持,初期支持 Bash 与 Zsh 两种 shells。感谢 @wychlw 的贡献!
要使用命令行自动补全功能,请在您的 shell profile(如 .bashrc 或 .zshrc)的合适位置引入
ruyi 的自动补全脚本:
# zsh 用户请将 bash 字样替换为 zsh
eval "$(ruyi --output-completion-script=bash)"
目前支持 ruyi 子命令与 ruyi install 等命令的软件包参数的自动补全。
-
使用 ruyi self clean 清除本地数据时,如果新闻已读状态文件不存在,不会报错崩溃了。感谢 @weilinfox 报告问题!
-
拉取远端 Git 仓库失败时,不会将 Python 错误信息暴露给用户了。
-
只有在文件的下载 URL 协议为 FTP 时,才会为 curl 或 wget 启用 FTP 被动模式了。这修复了部分 RuyiSDK 用户由于cURL 8.14.1 的 bug 而无法下载任何文件的问题。感谢 @weilinfox 向 ruyi 项目报告问题!
-
重构了 ruyi 的捆绑资源处理方式,将其从虚拟环境机制中剥离了,以便后续捆绑其他非虚拟环境相关资源,如命令行自动补全脚本、多语言字符串文件等等。同时,也以 CI 方式确保了 ruyi 所含的压缩资源总与原始文件保持同步。
-
新增了对于 OpenCloudOS 9.4、openEuler 24.03 LTS SP2、openEuler 25.03、openKylin 2.0 的支持情况。ruyi 的 Python 依赖包在这些发行版上均有少量缺失,但其余依赖包的版本满足要求,我们预计将在 2025 年 10 月完成对它们的支持。
本次 RuyiSDK 软件源的更新主要包含了以下内容:
- 实体数据库更新:
- 新增了 SpacemiT X60 微架构。
- 新增了 SpacemiT K1 处理器型号。
- 新增了 BananaPi BPI-F3 的 eMMC 与 SD 存储两种设备变体。
- 完善了设备支持:
- 更新了 Milk-V Duo(64 & 256M RAM)、Duo S(SD 存储)的 Buildroot SDK。感谢 @Cyl18 的贡献!
- 支持了 BananaPi BPI-F3 的 SD 存储型号,有 SpacemiT 提供的 Bianbu Desktop 与 Bianbu Minimal 两种系统供使用。感谢 @wychlw 的贡献!
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与
RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
- 实验性新增:添加新的插件projectcreator来为特定的开发板导入示例演示,并自动配置工具链和定制编译配置。提供了新建项目向导,预置开发板项目模板和自定义构建器用于一键在ruyi虚拟环境内构建项目。
RuyiSDK GNU 工具链测试(GCC 16):https://github.com/QA-Team-lo/ruyisdk-gnu-tests
欢迎阅读第47期《RuyiSDK双周进展》!包管理器已更新新版本,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在7月3日),也可以在 RuyiSDK讨论区 反馈。
下个开发版本计划7月8日发布,我们将持续带来更多改进。
RuyiSDK 0.36 对应的包管理器版本也为 0.36.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
- 每次
ruyi update 完成后,会报告哪些已安装的软件包有更新版本可供安装了。考虑到具体项目对工具链版本的需求可能较为精确,您可自行 ruyi install 更新的版本,并自行重做相应的虚拟环境。
- 可以用
ruyi uninstall 卸载已安装的软件包了。另有更简短的别名 ruyi remove 或 ruyi rm 可用。
- 在
ruyi list 的输出中,可以看到软件包的安装文件是否完全下载了。
- 在同时启用机读模式(porcelain mode)与调试输出(
RUYI_DEBUG=y)时,最先输出的几条日志不会以错误格式输出了。
- 优化了
ruyi 工具的启动速度,现在每次运行 ruyi 都能省下 200-300ms 时间(视机器性能而定),有助于后续实现低延迟的命令行补全特性。并以 CI 检查的方式确保了后续代码变更不会影响本次优化效果。
本次 RuyiSDK 软件源的更新主要包含了以下内容:
- 更新了
toolchain/gnu-plct:由 PLCT 维护并构建的 GNU RISC-V 工具 链,包含 GNU binutils 2.45 的预览版、GCC 15.1.0 以及 glibc 2.40。
- 更新了实体数据库中的 RISC-V 微架构定义,新增以下微架构:
- 香山昆明湖
- 玄铁 C908、C908V、C910V2、C920、C920V2
- MIPS P8700
- 8-宽 Tenstorrent Ascalon
- 修正了玄铁 C910 的 RISC-V ISA 字符串为上游主线 GCC 接受的标准形式。
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与
RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
RuyiSDK IDE 插件版本 0.0.6 发布:https://github.com/ruyisdk/ruyisdk-eclipse-plugins/releases/tag/v0.0.6
- 软件包资源:
- 新增接入软件包资源管理器适配设备型号接口,支持显示Ruyi包管理器已集成的设备型号 ;
- 界面优化,优化设备展示窗口尺寸;
- 代码优化,修复存在安全漏洞的代码;
- 定制 Welcome 界面:
- 修复以插件方式运行时存在的 icon 等资源找不到的问题;
- 更新了-mcpu的默认参数,使用generic替代具体的rocket cpu模型
- 同步了-mtune的配置设置,将branch_cost更新为4,以便更好的适配Zicond扩展,生成对应的分支指令
- 实现struct/array.atomic.rmw.xchg的原子交换操作
- 将 suspender 对象迁移到可信空间
- 引入简单的截断优化pass
- 在release模式中在常量池前增加检查
- 避免在JSPI内置函数中进行可信写入
- 在Maglev中加入额外的peephole优化
欢迎阅读第46期《RuyiSDK双周进展》!包管理器已更新新版本,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在6月19日),也可以在 RuyiSDK讨论区 反馈。
下个开发版本计划6月24日发布,我们将持续带来更多改进。
RuyiSDK 0.35 对应的包管理器版本也为 0.35.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
- 现在会记录软件包的安装状态了。该信息在
ruyi list 输出中也会体现,并且支持在 ruyi list 时传入 --is-installed y/n 参数进行过滤。
ruyi entity list 可以带一个或多个 -t / --entity-type 参数,用来列举特定类型的实体了。
ruyi entity list 现在支持机读模式(porcelain mode)输出了。
本次 RuyiSDK 软件源的更新主要包含了以下内容:
- 新增了 Milk-V Duo (128M & 156M) 开发板镜像的历史版本。
- 修复了 Milk-V Duo (128M & 256M) 开发板镜像 2.0.0 版本的配置。
- 更新了多个 Milk-V Meles 的 RevyOS 镜像。
- 修复了 Milk-V Meles 的 RevyOS 镜像 1.20250123.0 版本的配置。
- 更新了一些文档链接的指向。
- 清理了已于 RuyiSDK 0.33 版本弃用的 RuyiSDK 设备安装器的旧版配置数据。
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与
RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
- RuyiSDK IDE 插件近期新增了自定义的 Welcome 欢迎页面的插件。通过自定义 Welcome,将产品简介 、官网、博客、联系我们等常用链接都挂到了页面中;此外还提供了 New Project、Open Project、Setting的快速入口;还有Support Matrix、Documents、Discussions 链接。功能目前已经就绪,但是在以插件方式运行时还存在icon资源找不到的问题,预计下个周期发布。可通过Draft链接下载尝鲜。
- 添加香山昆明湖CPU到gcc RISC-V后端,目前已合入gcc上游,添加时补充了一系列gcc缺失的特权模式扩展指令集。
- 修复了binutils中smnrmi缺失zicsr依赖的问题。
- 在turbofan RISC-V后端中支持非经典NAN
- 在wasm的liftoff编译器RISC-V后端中支持代码覆盖统计
- 在RISC-V架构上实现JS undefined value的floating nan boxing
- 指令选择优化compare zero
- 调整maglev中临时寄存器分配作用域,使临时寄存器能尽快被使用
- 审阅并合入syntacore的针对jalr和jal指令的RAS特性所做的优化
- 审阅并合入syntacore的代码生成优化
- 修复指针压缩模式下对tagged smi的加减法溢出处理
- 实现优化JITed代码中的diapatch handle正确性保证代码
- 删除InstructionSelectorAdapter,为删除turbofan的SON IR,全面使用turboshaft IR做好准备,
第45期《RuyiSDK双周进展》准时送达!包管理器已更新新版本,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在6月5日),也可以在 RuyiSDK讨论区 反馈。
下个开发版本计划6月10日发布,我们将持续带来更多改进。
RuyiSDK 0.34 对应的包管理器版本也为 0.34.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次更新的部分软件包需要最新版本的 RuyiSDK 包管理器才能正常解析、工作,因此强烈建议您在
ruyi update 之余,将您的 ruyi 也升级到最新版本。此外,已在 RuyiSDK 0.33
弃用的旧版设备安装器支持也将于 RuyiSDK 0.35(下个版本)移除。
本次 RuyiSDK 包管理器的更新主要包含了以下内 容:
- 支持了部分解包
tar 归档文件,以适应个别厂商在其官方渠道将多个软件打成一个包分发的做法。
- 允许用
ruyi venv --extra-commands-from 为虚拟环境提供额外的与目标元组(target tuple)无关的命令,如特定厂商的刷写工具等。
ruyi admin format-manifest 会保留文件头部和尾部的注释了。
- 遥测功能更新:
- 当用户在终端首次运行
ruyi 时,现在会一次性询问用户是否允许立即上传安装信息。
- 修复了
ruyi 的命令转发模式下遥测事件未被记录的问题。
- 支持在软件源级别记录软件包的安装动作,以便第一方或第三方软件源的维护者们了解其软件的使用情况。
- 重构了
ruyi 命令行工具的入口点和 ruyi 的日志处理方式,消除了大部分全局量的使用,以便后续 RuyiSDK 生态的其他 Python 组件复用 ruyi 的功能。
本次 RuyiSDK 软件源的更新主要包含了以下内容:
- 软件源格式更新:
- 明确了官方软件源的 ID 为
ruyisdk,以便后续与第三方源和谐共存。
- 术语更新:将那些指代非标准行为的“flavor”重命名为了“quirk”。
- 为支持软件包声明其含有的可执行命令,为
binary 元数据新增了 commands 可选字段。
- 为支持
tar 归档文件的部分解包,为 distfile 元数据新增了 prefixes_to_unpack 可选字段。
- 完善了设备支持:
board-image/revyos-sipeed-lpi4a: 更新了 Sipeed LicheePi 4A 的 RevyOS 镜像版本至 20250420,修复了 20250323 版本的信息。
- 将 Milk-V Duo 系列设备的 1.0.7 版本的 "Python" 镜像与非 "Python" 镜像调换了名称。
- 新增软件包:
board-util/wlink: 社区独立实现的 WCH-Link 刷写与调试工具。
source/wch-ch32v103-evt: WCH CH32V103 EVT 官方代码示例包。
source/wch-ch32v20x-evt: WCH CH32V20x EVT 官方代码示例包。
source/wch-ch32v307-evt: WCH CH32V30x & CH32V317 EVT 官方代码示例包。
toolchain/gnu-wch-mrs-toolchain-gcc12-bin: WCH MounRiver Studio (MRS) 工具链的官方 2.1.0 版本,其中的 GCC 12.x 工具链。仅支持 x86_64 架构。
toolchain/gnu-wch-mrs-toolchain-gcc8-bin: WCH MounRiver Studio (MRS) 工具链的官方 2.1.0 版本,其中的 GCC 8.x 工具链。仅支持 x86_64 架构。
- 更新软件包:
toolchain/gnu-plct-xthead: 采用玄铁官方源码、由 PLCT 构建的玄铁工具链的 3.0.1 版本,GCC 版本为 14.1.1。
- 实体数据库更新:
- 新增了 WCH 微架构、CPU 的实体定义。
- 修正了 WCH 开发板的 CPU 信息。
- 插件系统更新:
- 新增了初步的 RISC-V 32 位配置文件支持。
- 修复了一些软件包声明的格式错误。
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与
RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
RuyiSDK IDE 插件版本 0.0.5 发布:https://github.com/ruyisdk/ruyisdk-eclipse-plugins/releases/tag/v0.0.5
- ruyi 安装/更新:
- 针对 ruyi 安装向导中下载进度条不能达到100%的问题进行了修复;
- 删除 ruyi 安装向导中将 ruyi 加入到 path 路径的设定和步骤,改为使用 ruyi 绝对路径
- 软件包资源:
- 通过树状结构分类展示软件包资源,并通过 checkbox 状态表示软件包资源的下载状态
- 实现对软件包的下载
- 支持打开软件包资源的本地缓存等路径,方便查看缓存文件
- Binutils上游已合并Profiles RV20/22/23支持,更新了Smcdeleg,Ssccfg扩展支持
- 向FFmpeg上游提交了gcc构建时配置选项的修改,目前仍在讨论中
- wasm struct.atomic 特性在RISC-V平台上的实现
- 修复trampoline emit和scratch寄存器使用的bug
- 审阅和合入进迭时空comparisionOP 代码生成,load word unsigned op的0扩展优化
新实习生的加入,推动 ruyisdk.org 首页焕然一新。不过当前尚余一些小问题需要修复,具体见 issue #135。大家觉得新的首页怎么样呢,欢迎在该 issue 下添加评论!
欢迎阅读《RuyiSDK 双周进展汇报》第 44 期,包管理器 和 ide 都有版本更新,欢迎下载试用。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在5月22日),也可以在 RuyiSDK讨论区 反馈。
下个开发版本计划 5月27日发布,我们将持续带来更多改进。
RuyiSDK 0.33 对应的包管理器版本也 为 0.33.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
- 将设备安装器的数据源迁移到了实体数据库,以降低维护成本、避免频繁更新时潜在的合并冲突等。
本次 RuyiSDK 软件源的更新主要包含了以下内容:
- 完善了设备支持:
- 新增支持了 Milk-V Meles 的 16G RAM 型号,支持 RevyOS 系统。
- 实体数据库更新:
- 设备实体定义更新:设备型号变体现已被拆分为单独实体类型
device-variant 了。
- 新增了“设备适用系统信息”实体
image-combo。
- 现已弃用旧版设备安装器支持,请尽快更新您的 RuyiSDK 包管理器。该支持将于 RuyiSDK 0.35 移除。
本次 RuyiSDK 服务端组件的更新主要包含了以下内容:
- 新增了官方软件源的新闻条目阅读 API。
- 新增了按版本号查询 RuyiSDK 版本发行注记的 API。
- 将官方软件源当前目录结构下的所有子目录都纳入了下载量统计范围。
- 改进了服务容器的构建方式。
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与
RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本与软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。
- 更新了 RUYISDK 仓库中的 gcc 版本到 gcc15, binutils 版本到 binutils-2.45。支持了 Profiles 特性,包括 RV20/22/23A|B, 使用 -march=Profiles 可直接使能 Profiles 规定的强制支持扩展
- 支持了
Sha扩展组合,该扩展为 RVA23S64 中针对 RISC-V 虚拟化特性提出的最新扩展组合,用于高效实现虚拟化特性。修复回归测试中发现的 gcc 错误,限制了错误测试 case 中
-mgeneral-regs-only 选项对应的架构范围,已被上游接收
- 增加从 isolate 中加载 JS Dispatch Table 的机制
- 增加 riscv zfh 指令集支持
- 添加 wasm growble stack 的特性
近两周进展已呈上,欢迎阅读《RuyiSDK 双周进展汇报》第 43 期。如果您在 RuyiSDK 的使用中遇到问题,欢迎参加每双周四下午 15:00 开展的 “RuyiSDK Office Hours” 获得在线答疑支持服务(下一次在4月25日),也可以在 RuyiSDK讨论区 反馈。
受五一假期影响,下个开发版本将顺延至5月13日发布,我们将持续带来更多创新改进。
RuyiSDK 0.32 对应的包管理器版本也为 0.32.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
- 新增了贡献指南文档,使社区成员更容易参与项目贡献。
- 为流程合规,现在要求所有向 RuyiSDK 发起的拉取请求(Pull Requests)都包含开发者原创声明(Developer's Certificate of Origin, DCO)了。
本次 RuyiSDK 软件源的更新主要包含了以下内容:
- 完善了设备支持:
- 新增支持了适用于 SpacemiT K1 设备的特殊刷写策略。
- 修复了设备安装器调用
fastboot 失败的问题。