跳到主要内容

RuyiSDK 双周报

每两周获得最新开发进展

第 036 期·2024 年 12 月 31 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理

卷首语

今天是2024年度的最后一天,在这个辞旧迎新的时刻,我谨代表RuyiSDK项目团队,向所有项目的贡献者、参与者表示最诚挚的感谢!衷心感谢大家的关注和支持,祝愿各位元旦快乐,万事如意!

这一期,RuyiSDK包管理器 V0.25 、RuyiSDK IDE V0.0.2 版本已发布。

RuyiSDK包管理器重点完善遥测配置、软件源包版本规范化,并修复了一些已知的问题; RuyiSDK IDE 目前针对 milkv duo 开发板进行了应用示例环境搭建和开发运行,并将相关文档产出集成定制到 IDE Welcome 中;

支持矩阵项目一如既往的发现镜像的更新情况并进行验证,本期支持矩阵有3类设备有镜像添加或更新; gcc在Zilsd/Zclsd扩展支持和Profiles命名规范上取得很大进展;V8 增加了对 Embedded Object 的 reloc 支持,减少加载此类对象的指令数量,同时合入 Syntacore 对浮点数四舍五入的指令生成的优化。

面向 TH1520 的 RuyiSDK 操作系统发了新版本,内核从 5.10 升级到了 6.6,meles 和 lpi4a 升级后的系统镜像已发布

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。RuyiSDK 在2024年度一直保持着双周滚动的频率,在2025年度我们将持续按照这个频率快速迭代,下一个开发版本将在 2025 年 1 月 14 日发布。

包管理器

RuyiSDK 0.25 对应的包管理器版本也为 0.25.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 新增了 ruyi config 子命令,方便用户通过命令行或脚本方式查询、修改 RuyiSDK 包管理器配置。该命令用法受到了 git config 的启发,详见 ruyi config --help 输出。
  • 新增了 ruyi telemetry 子命令,方便用户通过命令行或脚本方式查询、变更遥测偏好。详见 ruyi telemetry --help 输出。
    • 特别地:在您表明遥测偏好前,每次运行 ruyi 您都会收到提醒。您现在可以通过 ruyi telemetry off 关闭遥测数据收集,或通过 ruyi telemetry consent 明确接受遥测数据收集与上传了。
  • 修复了搭配 arpy 1.x 使用时,无法解压 Debian 格式软件包的问题。
  • 新增了两篇规范文档:RuyiSDK 官方软件源的包版本规范,以及 RuyiSDK 中的板卡型号、系统镜像命名规范。您可移步 RuyiSDK 包管理器的仓库 docs/ 目录阅读。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与 RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

IDE

RuyiSDK IDE V0.0.2 版本发布,下载地址为:https://mirror.iscas.ac.cn/ruyisdk/ide/0.0.2/ 请按照设备环境选择合适的安装包。V0.0.2 主要进展如下:

  • 针对 Milk-V Duo example 示例在 RuyiSDK IDE 中的编译器安装配置、构建、目标程序传输、运行等进行验证并创建使用文档。
  • 在 RuyiSDK IDE 的 Welcome 中定制了 RuyiSDK 和 Milk-V Duo 的文档链接。

GCC

提交了Zilsd/Zclsd扩展支持的patch,补充了相应的测试用例。开始更新Profiles命名规范,同步LLVM已有的实现方式。

V8

  1. 增加对 Embedded Object 的 reloc 支持,减少加载此类对象的指令数量。
  2. 审阅并合入 Syntacore 对浮点数四舍五入的指令生成的优化。

操作系统支持矩阵

PRContentStatus
https://github.com/ruyisdk/support-matrix/pull/120CI: Add CI for package index syncMerged
https://github.com/ruyisdk/support-matrix/pull/121fix typo in Duo_S linkMerged
https://github.com/ruyisdk/support-matrix/pull/123visionfive2: Add NixOSMerged
https://github.com/ruyisdk/support-matrix/pull/125m0sense: Add RT-ThreadMerged
https://github.com/ruyisdk/support-matrix/pull/126BPI-F3: bianbu update to 2.0.4Merged

第 035 期·2024 年 12 月 17 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理

卷首语

RuyiSDK包管理器 V0.24 版本已于今日发布。RuyiSDK IDE V0.0.1版本发布,本版本面向RuyiSDK测试人员,提供Linux系统 x86_64、riscv64、aarch64 三架构的安装程序,欢迎下载试用和反馈建议。

RuyiSDK包管理器针对兼容性进一步优化更新了依赖版本。RuyiSDK 软件源近期针对开发板镜像进行了更新,用户可以通过系统安装器安装新版本镜像。此外为了让操作系统支持矩阵项目验证的可用镜像能够及时的同步到系统安装器(package-index),支持矩阵小队成员自研发的同步工具已经完成并部署可用,后续镜像数据从调研到集成到包管理器将更加及时高效。

GCC向上游重新发送了Profiles支持,目前正在讨论实现的规范细节中,并开始支持Zilsd/Zclsd扩展。v8部分也有较多性能优化、安全性优化相关的更新。

此外,PLCT实验室分别与矽速科技、群芯闪耀达成合作,将LicheePi 4A和Milk-V Meles的软件生态并入RuyiSDK项目,共同推动RISC-V开发者生态的建设。相关新闻如下:

  1. 矽速科技与PLCT实验室联合宣布:LicheePi 4A 软件生态并入 RuyiSDK 项目,共建 RISC-V 开发者生态
  2. 群芯闪耀与PLCT实验室联合宣布:Milk-V Meles 软件生态并入 RuyiSDK 项目,共建 RISC-V 开发者生态

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.25 版本将在 12 月 31 日发布。

包管理器

RuyiSDK 0.24 对应的包管理器版本也为 0.24.0,已于昨日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 更新了依赖版本。

本次 RuyiSDK 软件源的更新主要包括了以下内容:

  • 更新了以下软件到最新版本:
    • board-image/armbian-pine64-star64
    • board-image/buildroot-sdk-milkv-duo
    • board-image/buildroot-sdk-milkv-duos-sd
    • board-image/buildroot-sdk-sipeed-licheervnano
    • board-image/debian-fishwaldo-sg200x-sipeed-licheervnano
    • board-image/revyos-sipeed-lpi4a
    • board-image/uboot-revyos-sipeed-lpi4a-16g
    • board-image/uboot-revyos-sipeed-lpi4a-8g
    • extra/wps-office

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与 RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

IDE

RuyiSDK IDE V0.0.1版本发布,本版本面向RuyiSDK测试人员,提供Linux系统 x86_64、riscv64、aarch64三架构的安装程序。本版本在Eclipse开源IDE基础上进行定制开发,目前除了继承了项目管理、编辑器、构建、调试等常用功能,能够支持创建、构建、调试 RISC-V 项目等。

RuyiSDK IDE V0.0.1 下载地址为:https://mirror.iscas.ac.cn/ruyisdk/ide/0.0.1/ 请按照设备环境选择合适的安装包。

GCC

向GCC上游重新发送了Profiles支持,目前正在讨论实现的规范细节中,开始支持Zilsd/Zclsd扩展

V8

  1. 移植Growable stack到RISC-V的Wasm liftoff baseline compiler和turbofan compiler
  2. 修复ICache flush在多核芯片上的bug,将flush范围从local harts改为包括remo特harts
  3. 移植和实现MutableInt32 to ScriptContext slots优化
  4. 在正则表达式编译器中添加压栈后栈内存边界检测,加强安全性
  5. 继续实现Leap tiering功能

操作系统支持矩阵

  1. 继续推进 packages-index 元数据同步 CI #107
  2. 分离 LicheeRV 和 Nezha 测试报告 #115
  3. 添加 BPI-F3 Alpine 测试报告 #116
  4. 添加 BeagleV-Ahead RevyOS 和 openSUSE 测试报告 #117
  5. 添加/更新 LicheeRV Nano Alpine/Buildroot/Fedora 测试报告 #119

SDK

基于之前的验证和测试整理 Milkv Duo 重构需求:

Milkv Duo SDK todo(缺陷)持续更新:

第 034 期·2024 年 12 月 03 日

· 阅读需 8 分钟
xijing21
RuyiSDK 项目经理

卷首语

RuyiSDK包管理器 V0.23 版本已于今日发布。包管理器遥测功能正式上线了,我们秉持最小化收集信息的原则,当前采用匿名化的方式收集一些与个人身份无关的设备信息和使用数据用于统计和优化产品服务,收集的数据与方式等详细信息详见隐私政策)。请您放心,目前的数据是匿名化的,并不会有任何您的个人身份信息,因此也诚挚的希望您可以参与到数据上传反馈已助力我们改进服务,如果您拒绝上传,那么可以在使用前修改数据采集模式。如果您对当前的数据采集和隐私政策有任何疑问,可以通过 contact@ruyisdk.cn 联系我们。

此外,包管理器还针对兼容性支持、ruyi自动化打包,自动化测试等方面的支持上做了进一步的完善和优化,操作系统支持矩阵近期针对 milkv duo/duo256M/duoS也有不少更新,RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.24 版本将在 12 月 17 日发布。

包管理器

RuyiSDK 0.23 对应的包管理器版本也为 0.23.0,已于昨日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 出于项目验收要求,调整了默认遥测模式为 on。后续会随着 RuyiSDK 软件源的更新,周期性上传匿名化的使用统计数据。遥测服务端位于中国大陆境内,由 RuyiSDK 团队管理。
  • 修复了与外部依赖 semver 2.x 版本的兼容性。
  • 允许了在 CI 环境以 root 身份运行 ruyi
  • 每次发版会同时附带可重现(reproducible)的源码包了,有助于发行版打包工作等。

注意:由于活跃用户数等指标是项目 KPI,RuyiSDK 0.23 版本增加了遥测数据的上传功能,并在所有环境默认开启,不仅限于 CI。您可自行决定是否主动上传这部分匿名统计信息,以便 RuyiSDK 团队改进产品;您也可以选择删除先前的遥测数据,以及是否禁用遥测。您可用 ruyi self clean --telemetry 删除所有的遥测信息,包括设备信息。详情请见 RuyiSDK 0.19 的发布说明:《RuyiSDK 双周进展汇报 第 030 期·2024年09月30日》

在遥测模式为 on 时,每次 ruyi 被调用时都会告知您您的遥测数据将在何时上传。您可以做以下操作之一以屏蔽该提示。

  • 设置遥测模式为 localoff
  • 对数据上传行为给予同意。

具体的 ruyi 配置文件写法示例如下。该配置文件一般位于 ~/.config/ruyi/config.toml 位置,如不存在,创建即可。

# 在 [telemetry] 一节体现以下内容之一。如不存在此节,创建即可:
[telemetry]

# 您可以变更遥测模式为 local 或 off:
mode = "local"

# 或告知 ruyi 您在当前日期时间给予了同意:
upload_consent = 2024-12-32T25:61:00+08:00
# 此日期格式并不合法,这是有意为之,请您自行填入您操作的当前时刻。例如执行以下命令:
#
# echo "upload_consent = $(date -Iseconds)"
#
# 输出内容即可用于上述用途。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与 RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

IDE

"探路 Eclipse RISC-V 插件开发”系列学习日志更新了Embeded CDT 插件的本地构建等实践说明。详见 eclipse-myplugins视频,欢迎更多的人加入到 Eclipse RISC-V 插件的学习和开发。

GCC

Multiversion function的支持已合入gcc上游,继续完善P扩展的支持,重新提交了RISC-V Profiles的支持patch,正在沟通RV64ILP32规范格式问题。

V8

  1. 为Wasm构建一个写保护的代码指针表,后续会基于这个特性来继续实现向前跳转控制流完整性。
  2. 为Builtin的AOT过程打开RISC-V扩展指令集选项,使builtin也可以使用各类扩展指令集,实现代码尺寸优化。优化效果:打开B扩展后,内置函数MathClz32的指令条数,优化之前 468,优化之后 308,静态代码减少了34%。

操作系统支持矩阵

本周进行了如下测试报告的更新:

PRContentStatus
https://github.com/ruyisdk/support-matrix/pull/105Metadata: add some version varMerged
https://github.com/ruyisdk/support-matrix/pull/106duo/duo256m: Add YoctoMerged
https://github.com/ruyisdk/support-matrix/pull/108DuoS/RT-Thread,RT-Smart: Add resultsMerged
https://github.com/ruyisdk/support-matrix/pull/109duo256m: Update Alpine & RT-Thread SmartMerged
https://github.com/ruyisdk/support-matrix/pull/110Updated OS support for DuoS and MarsMerged

应用软件生态观测

丁丑小队本周对 OceanBase、openGauss 和 TiDB 在 TH1520 和 SG2042 平台的运行情况进行了观测。

测试报告现已公开在:https://github.com/QA-Team-lo/dbtest

本次测试仍存在一些问题,如有建议也欢迎各位直接在 issue 区提出。

SDK

基于之前的验证和测试整理 Milkv Duo 重构需求:

第 033 期·2024 年 11 月 19 日

· 阅读需 5 分钟
xijing21
RuyiSDK 项目经理

卷首语

RuyiSDK包管理器 V0.22 版本已于今日发布。包管理器近期主要针对 Linux发行版的兼容性支持进行了核心依赖的调研和调整,以满足 Debian、RevyOS、RuyiOS(开展中)、Ubuntu、Fedora、deepin、Arch Linux等发行版的兼容性需求。并新增了 RuyiSDK 的平台支持文档 告知用户RuyiSDK的兼容性支持计划。

此外支持矩阵和 SDK验证都重点针对 Milkv Duo 进行测试和更新;Eclipse插件目前通过公开学习日志等方式希望更多人能够了解并加入到Eclipse插件开发,欢迎有兴趣的开发者们加入。

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.23 版本将在 12 月 3 日发布。

包管理器

RuyiSDK 0.22 对应的包管理器版本也为 0.22.0,已于昨日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 新增了 RuyiSDK 的平台支持文档,基于此完善了 RuyiSDK 包管理器的平台兼容性:
    • 将 Python 版本的最低要求降至 3.10,以与 Ubuntu 22.04 LTS 系统默认 Python 版本保持兼容。
    • 降低了各种 Python 依赖关系的版本要求,以支持与 Ubuntu 22.04 LTS 系统提供软件包配合工作。
    • 按照 Python 打包标准,新增声明 ruyi 入口点,以便发行版打包机制自动识别、处理。

**注意:**我们将于 RuyiSDK 0.23 版本增加 RuyiSDK 遥测数据的上传功能,并可能在 CI 环境将其默认开启。届时,您可自行决定是否主动上传这部分匿名统计信息,以便 RuyiSDK 团队改进产品;您也可以选择删除先前的遥测数据,以及是否禁用遥测。您可用 ruyi self clean --telemetry 删除所有的遥测信息,包括设备信息。详情请见 RuyiSDK 0.19 的发布说明:《RuyiSDK 双周进展汇报 第 030 期·2024年09月30日》

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与 RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

IDE

"探路 Eclipse RISC-V 插件开发”系列学习日志已将前期学习总结梳理后通过 eclipse-myplugins 公开分享,配套的视频后续也可访问 B站 ,欢迎更多的人加入到 Eclipse RISC-V 插件的学习和开发。

GCC

添加了TARGET_CLONE特性的支持,目前已合入gcc上游,继续添加P扩展的草案支持,开始进行svvptc扩展的工具链支持工作

V8

  1. 适配上游 硬编码实现JumpTableAssembler的 jit 功能。
  2. 在 v8 模拟器中实现 js 堆栈切换。
  3. 适配turboshaf中word32cmpare的指令选择并修复 turboshaf相关的错误。

操作系统支持矩阵

丁丑小队本周完成了对 LPi4A & Pioneer Box Firefox 的可用性观测,以及 Milk-V Duo 系列的 RT-Thread / Smart 测试,计划后续一同加入支持矩阵中。

测试报告现已公开。

SDK

完成 Milkv Duo 官方SDK 的验证及缺陷总结,为后续SDK优化做准备。

第 032 期·2024 年 11 月 05 日

· 阅读需 8 分钟
xijing21
RuyiSDK 项目经理

卷首语

RuyiSDK包管理器 V0.21 版本已于今日发布。包管理器近期主要修复了一些测试出的缺陷,并增加兼容性支持和一些小功能的实现,进一步完善了包管理器工具;

Milkv Duo SDK建设计划已经完成第一阶段的验证和缺陷整理,后续可以有针对性的进行SDK的优化了。

《从零开始开发VSCode插件与Ruyi IDE插件》 第3课已经上线B站。Eclipse 插件开发当前成功的搭建并解决了依赖项的问题,eclipse-embed-cdt/eclipse-plugins下的所有插件已经可以在Eclipse IDE中以插件工程方式成功运行和调试,后续可以基于现有的嵌入式插件学习并开展相关开发工作了。

操作系统支持矩阵本期有大量更新,包括了测试报告元数据、首页表格 CI、issue 模板、测试报告更新等。

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.22 版本将在 11 月 19 日发布。

包管理器

RuyiSDK 0.21 对应的包管理器版本也为 0.21.0,已于昨日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 将 RuyiSDK 软件源打包辅助命令 ruyi admin manifest 重命名为 ruyi admin checksum 了。如果您在为 RuyiSDK 打包,您可能需要更新您的脚本。
  • ruyi self clean 支持删除新闻(ruyi news)的阅读状态了:ruyi self clean --news-read-status
  • ruyi self clean 也支持一次性删除 ruyi 产生的所有可变状态文件了:ruyi self clean --all
  • 修复了 ruyi 测试用例与 Python 3.11 的兼容性。我们现在以 CI 形式确保 ruyi 能够在 Python 3.11、3.12、3.13 这三个版本通过测试,这将有助于保障后续 ruyi 在多种 Linux 发行版上的兼容性。
  • 新增声明了遗漏的 typing_extensions 依赖,以修复第三方打包。
  • 重构了 ruyi 子命令的声明与实现方式,后续扩展 ruyi 命令行功能更加方便了。

注意:我们可能在今后的一到两个版本期间,实装 RuyiSDK 遥测机制。届时,您可自行决定是否主动上传这部分匿名统计信息,以便 RuyiSDK 团队改进产品;您也可以选择删除先前的遥测数据,以及是否禁用遥测。您可用 ruyi self clean --telemetry 删除所有的遥测信息,包括设备信息。详情请见 RuyiSDK 0.19 的发布说明:《RuyiSDK 双周进展汇报 第 030 期·2024年09月30日》

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与 RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

IDE

从零开始开发VSCode插件与Ruyi IDE插件 第3课已经上线B站。视频可以在观看。欢迎点赞关注一键三连!

Eclipse 插件开发当前成功的搭建并解决了依赖项的问题,[eclipse-embed-cdt/eclipse-plugins](https://github.com/eclipse-embed-cdt/eclipse-plugins下的所有插件已经可以在Eclipse IDE中以插件工程方式成功运行和调试,后续可以开展相关开发工作了。

GCC

继续推进P扩展在binutils上的草案支持,尝试更新新32位在glibc上的支持工作

LLVM

本期暂无ruyisdk相关更新。

V8

  1. 修复和完善TurboShaft IR、Maglev JIT 的RISC-V架构相关部分。
  2. 继续移植LeapTiering特性。
  3. 实现wasm JSPI特性。

官网

RuyiSDK官网博客板块中新增文章:Eclipse 上游初步支持 RISC-V,每日构建镜像已经可以下载试用

操作系统支持矩阵

本期支持矩阵有大量更新,包括:测试报告元数据、首页表格 CI、issue 模板、测试报告更新等等。

  • CI Table gen PR #49
  • VisionFive2/Ubuntu Ubuntu 24.10 & Ubuntu 24.04.1 LTS PR #50
  • VisionFive2/Openkylin Openkylin 2.0,VisionFive2/Alpine PR #51
  • PIC64GX/Ubuntu Ubuntu 24.10 PR #52
  • CI Push Error fix PR #53
  • BPI-F3 Bianbu v2.0:PR #54
  • NeZha-D1s/Ubuntu: update test report for Ubuntu 24.10 and Ubuntu 24.04.1 LTS PR #55
  • Metadata: Refactor and add sys variant PR #56
  • VisionFive/Alpine: add test report, VisionFive2/Alpine: fix typo PR #57
  • Icicle/Ubuntu: update test report for Ubuntu 24.10 and Ubuntu 24.04.1 LTS:PR #58
  • Mars/Ubuntu: update test report for Ubuntu 24.10 and Ubuntu 24.04.1 LTS:PR #59
  • Unmatched/Ubuntu: update test report for Ubuntu 24.10 and Ubuntu 24.04.1 LTS:PR #60
  • D1_LicheeRV/Ubuntu: update test report for Ubuntu 24.10 and Ubuntu 24.04.1 LTS:PR #61
  • LPi4a: Update RevyOS to 20240720:PR #62
  • LPi4a/openKylin: Update to 2.0:PR #63
  • CI: Modify table to pages:PR #64
  • README: Remove all svgs and use pages from ci:PR #65
  • VisionFive2/Archlinux: update archlinux to cwt23:PR #66
  • VisionFive2/DietPi: add test report:PR #67
  • VisionFive2/openSUSE: update openSUSE test report:PR #68
  • PIC64GX/Ubuntu: fix typo:PR #69
  • duo: Add uniproton basic support:PR #70
  • README: Add desc for tools:PR #71
  • CI: Tables gen CI redesign:PR #72
  • Template: Add new templates:PR #74
  • CI: Add debug mode and pr target:PR #76
  • Metadata: fix and tweaks:PR #89
  • BPI-F3: Added Fedora test report:PR #90
  • duo256m/openeuler: Add openEuler support for duo256:PR #91
  • BPI-F3: Added OpenWrt test report:PR #93
  • Metadata: sync metadata and test report:PR #94
  • LPi4a/deepin: Update to 20240815 PR #95
  • Metadata: Add multi-language support PR #96
  • Duo/BuildRoot: Update to v1.1.3 PR #98

SDK

完成 Milkv Duo 官方SDK 的验证及缺陷总结,为后续SDK优化做准备。

第 031 期·2024 年 10 月 22 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理

卷首语

RuyiSDK V0.20 版本已于今日发布。为了简化打包和供应链安全的考虑,包管理器工具移除了插件机制的 Starlark 沙箱,同时完善了遥测功能,增加了禁用遥测选项、清除本地已收集的信息等功能;并修复了一些已知bug。

LLVM新增了rv64ilp32 ABI的支持,目前可以成功编译 rv64ilp32 Linux kernel(bf63582b08)并进入用户态了,这项成果已在玄铁团队的宣传材料中得到展示。LLVM 对 XTHeadVector 拓展的支持正在逐渐 rebase 到 LLVM 19.1.1 上,目前已经完成了大部分的 rebase 工作,进入测试阶段。

操作系统支持矩阵部分新增和更新了数十项信息,并且建设CI生成SVG格式的统计表格,使得展示和浏览效果更佳。并为所有测试报告都添加了元数据,方便后续与 packages-index 同步更新。

《从零开始开发VSCode插件与Ruyi IDE插件》 第2课已经上线B站。

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.21 版本将在 11 月 5 日发布。

包管理器

RuyiSDK 0.20 对应的包管理器版本也为 0.20.0,已于昨日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • ruyi self uninstall --purge 不会遗留遥测数据了。
  • 修复了 ruyi admin 子命令无法被调用的问题。
  • 修复了 Ruyi 虚拟环境中,向无 target tuple 前缀的命令(如一系列 LLVM 工具)的转发。
  • 应 RuyiSDK 项目需求方要求,移除了插件机制的 Starlark 沙箱。这有助于简化打包与降低开发门槛:按照 RuyiSDK 当前的威胁模型(threat model),沙箱机制不会带来额外的安全性。

注意:由于 Starlark 与 Python 存在细微的语义差异,在升级到 ruyi 0.20.0 之后,您必须将软件源 ruyi update 到最新,才能继续使用 ruyi 的部分功能(如 ruyi venv 等)。除此之外,我们预计插件机制的技术细节变更不会对实际使用造成影响。

注意:我们可能在今后的一到两个版本期间,实装 RuyiSDK 遥测机制。届时,您可自行决定是否主动上传这部分匿名统计信息,以便 RuyiSDK 团队改进产品;您也可以选择删除先前的遥测数据,以及是否禁用遥测。您可用 ruyi self clean --telemetry 删除所有的遥测信息,包括设备信息。详情请见 RuyiSDK 0.19 的发布说明:《RuyiSDK 双周进展汇报 第 030 期·2024年09月30日》

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与 RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

IDE

从零开始开发VSCode插件与Ruyi IDE插件 第2课已经上线B站。视频可以在观看。欢迎点赞关注一键三连!

GCC

支持了ssqosid扩展,正在添加P扩展的新草案支持中(p-dev分支),提交了target_clone功能的patch支持

LLVM

  • 支持 rv64ilp32 ABI,目前可以成功编译 rv64ilp32 Linux kernel(bf63582b08)并进入用户态了(需要使用 rv64ilp32 分支下的代码),还有部分小问题正在修复中
  • XTHeadVector 拓展正在逐渐 rebase 到 LLVM 19.1.1 上,目前已经完成了大部分的 rebase 工作,正在进行测试

V8

  1. 修复若干Maglev相关的CI bug。
  2. 继续完善leaptiering特性。

官网

本期暂无更新。

操作系统支持矩阵

新增:

  • VisionFive 2 / NetBSD
  • Duo 256M / Alpine, Arch Linux
  • Mango MQ Pro / NetBSD
  • Duo S / Arch Linux
  • Huashan Pi / buildroot
  • Milk-V Jupiter / Bianbu 1.0
  • CI 生成首页表格 SVG

更新:

  • VisionFive 2 / Ubuntu: 24.04 LTS -> 24.04.1 LTS, 24.10
  • BPI-F3: typo fix
  • VisionFive 2 / openKylin: 2.0
  • PIC64GX / Ubuntu: 24.10

此外,我们为所有测试报告都添加了元数据,方便后续与 packages-index 同步更新。

第 030 期·2024 年 09 月 30 日

· 阅读需 10 分钟
xijing21
RuyiSDK 项目经理

卷首语

RuyiSDK V0.19 版本已于今日发布。包管理器工具为 ruyi venv 新增了多工具链支持,目前可以为一个虚拟环境配置多个 target tuple 互不相同的工具链包,满足sdk构建时多工具链的需求。同时,RuyiSDK 开始了基础的遥测功能采集用户数据,目前完成了基础数据的采集(当前存储在用户本地),后续上传功能会在用户隐私协议、后端服务器就绪后正式启用。收集的 ruyi 安装信息、ruyi install 执行信息将帮助我们了解 RuyiSDK 的装机情况、编译器等工具的安装情况等。

此外,ruyi 工具基于主流的Linux发行版的打包工作基本完成,已经基于Debian、Ubuntu、Fedora、openEuler、Arch Linux等多个Linux发行版的流行版本完成了 ruyi v0.18 的打包,目前初步开放供用户尝鲜。

Eclipse 上游初步支持 RISC-V每日构建镜像已经可以下载试用。 Visual Studio Code IDE插件也正式开启开发,并输出视频教程以吸引更多开发者参与,第一课将于十月一日零点推送,欢迎关注

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.20 版本将在 10 月 22 日发布。

包管理器

RuyiSDK 0.19 对应的包管理器版本也为 0.19.0,已于昨日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 修复了当环境 locale 配置在本机上无效时,ruyi news list 在官方软件源上崩溃的问题。这也是 RuyiSDK 包管理器的首个来自外部贡献者的贡献。感谢 RekiDunois
  • 为打包工作者新增了 ruyi admin format-manifest 命令,用来自动格式化软件包描述文件,确保符合标准格式。
  • ruyi venv 新增了多工具链支持:可以为一个虚拟环境配置多个 target tuple 互不相同的工具链包了。
  • 新增了 ruyi self clean 命令,用来清理 Ruyi 产生的各种数据,释放存储空间。
  • 对于发行版直接再次分发 RuyiSDK 官方编译 ruyi 二进制的情况,为发行版打包工作者提供了手段来阻止用户不慎 ruyi self uninstall
  • 基础的遥测功能,目前不支持数据上传。详见“遥测”一节。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与 RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

遥测

为帮助 RuyiSDK 团队更好了解用户使用习惯以改进体验,我们为 RuyiSDK 包管理器增加了基础的遥测功能。有以下 3 种遥测模式:

  • local: 仅收集数据,不主动上报。这是默认模式。
  • on: 收集数据并周期性上报。目前未实现。
  • off: 完全禁用遥测。

目前我们将收集以下的数据:

  • 首次运行 ruyi 时,将一次性收集少量设备信息。
    • 仅从系统随机数生成唯一的安装 ID,与任何系统配置、本地数据均无关;
    • 当前运行环境是否为几种知名 CI 服务之一,如 GitHub Actions、GitLab CI、Travis CI 等;
    • 操作系统内核种类与处理器架构;
    • C 运行库种类与版本(形如 glibc 2.40);
    • Linux 发行版代号与版本;
    • 如处理器架构为 RISC-V,还将收集由设备树指定的系统型号与 /proc/cpuinfo 所暴露的 CPU 核数、微架构、ISA 字符串等 RISC-V 特定信息。
  • 每次运行 ruyi,将记录调用的命令种类,不含参数。
  • 每次运行 Ruyi 虚拟环境中的工具链代理,将记录被调用的命令名。

如果您不希望参与遥测,请在运行新版 ruyi 之前做以下两种操作之一即可。要么确保环境变量中存在 RUYI_TELEMETRY_OPTOUT=1(请注意:不是 OUTPUT),要么在配置文件 ~/.config/ruyi/config.toml 加入以下内容:

[telemetry]
mode = "off"

在 RuyiSDK 完全支持遥测数据上传之前的一个版本,我们将会告知您此事,您可自行决定是否删除先前的遥测数据,以及是否禁用遥测。您可用 ruyi self clean --telemetry 删除所有的遥测信息,包括设备信息。

Linux 发行版打包

一直以来,RuyiSDK 包管理器都是在 GitHub Release 或 ISCAS 镜像源渠道分发二进制。用户需要自行下载、调整文件权限、重命名、安排进 $PATH 才能使用,些许不便,且打包后的二进制每次使用都要校验解压文件完整性,性能欠佳。为此,RuyiSDK 团队计划为主流 Linux 发行版打包 ruyi。目前,已经为如下的发行版完成了 ruyi v0.18.0 的实验性打包:

  • Debian 13 ("trixie")
  • Fedora 39, 40, 41
  • openEuler 24.03
  • Ubuntu 22.04 ("jammy"), 24.04 ("noble")

其中除 Fedora 39、Fedora 41 未有 riscv64 架构包之外,均提供三种官方支持架构即 amd64arm64riscv64 的二进制包。

目前,您可根据实际情况找到适合您的安装方式与尝鲜软件源:

后续我们将会在 RuyiSDK 新版本发布时同步完成二进制软件包的打包,并为各大主流发行版搭建正式的第三方软件源,敬请期待。

IDE

Visual Studio Code IDE插件正式开启开发,并输出视频教程。第一课将于十月一日零点准时推送!为国庆献礼~ 视频可以在观看。欢迎点赞关注一键三连!

Eclipse 上游初步支持 RISC-V,每日构建镜像已经可以下载试用:https://riscv.org/blog-chinese/2024/09/eclipse-riscv64-support-upstreamed/ RevyOS 小队的工程师联合其他开源社区开发者,成功为 Eclipse 上游代码仓库引入了对 riscv64 架构的初步支持。期间创建了二十余个 Issue/PR,涵盖了包括 SWT、Equinox 在内的关键组件。目前,Eclipse 已支持在 riscv64 平台上基于 OpenJDK 开发 Java 项目。

GCC

添加了Smrnmi扩展的支持,将riscv-gnu-toolchain仓库中的GCC版本同步更新至14.2,更新了allowlist中的测试列表

LLVM

本期暂无进展。

V8

  1. 合入Maglev JIT,正式在RISCV64架构上支持Tier-2的优化编译器。
  2. 实施了若干分支优化,包括将jalr优化到jal,zicond优化,jump to table优化,call address优化。
  3. 开始支持wasm deopt特性。

官网

为了了解 RuyiSDK 的安装和使用情况,提出了用户数据收集的需求,目前已经在 ruyi 工具中完成了初步的数据收集。

操作系统支持矩阵

我们对支持矩阵日渐膨胀的主文档进行了一定的重写,按照 Linux 发行版、RTOS、BSD 和其他类型进行了分类,并且新增&修改了一些测试报告。

第 029 期·2024 年 09 月 14 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理

卷首语

RuyiSDK V0.18 版本已于今日发布。本期 RuyiSDK 重点针对 Milk-V Duo 开发板进行支持,调研并集成了演示示例 milkv-duo-examples,并集成了由 Milk-V 提供的、在 x86_64 平台上交叉编译 milkv-duo-examples 所需的自定义工具链,提供了一套 Milk-V Duo 的配套开发资源。同时软件源对 WPS Office、RV64ILP32 裸机工具链等软件进行了升级维护。

操作系统支持矩阵项目新增了 Microchip PIC64GX Curiosity Kit 开发板的调研,但是我们没有开发板所以还未能完成相关测试验证,我们欢迎有该开发板的热心朋友参与进来协助完成验证。 同时,支持矩阵项目通过一段时间的自动化工具研发,已经产生了第一个使用自动化工具完成的测试报告。

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.19 版本将在 9 月 30 日发布。

包管理器

RuyiSDK 0.18 对应的包管理器版本也为 0.18.0,已于昨日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 进一步完善了 issue #181 的修复:先前虽然修复了代码块的折行缺字问题,但不经意间也让长度超过一行的 Markdown 列表项、块状引用等内容被截断了。
  • 完成了 issue #193: 为方便发行版的打包工作,移除了对 python-frontmatter 这一第三方库的依赖。

本次 RuyiSDK 软件源的更新主要包含了以下内容:

  • 更新了 WPS Office 到上游最新版本。
  • 更新了 RV64ILP32 裸机工具链 toolchain/gnu-plct-rv64ilp32-elf 到当前最新版本。
  • 更新了 Milk-V Duo 的支持:
    • 新增打包了 Milk-V Duo 官方实例代码库 source/milkv-duo-examples。您可在一个新的目录下,用 ruyi extract 命令解压它。
    • 新增打包了 Milk-V 官方提供的 Milk-V Duo 宿主工具链如下。请注意:它们是 RuyiSDK 受权对上游 https://github.com/milkv-duo/host-tools 仓库进行的重新打包;且上游仅提供了 x86_64 架构的二进制。
      • toolchain/gnu-milkv-milkv-duo-bin:适用于 Linux glibc 环境。
      • toolchain/gnu-milkv-milkv-duo-elf-bin:适用于裸机环境。
      • toolchain/gnu-milkv-milkv-duo-musl-bin:适用于 Linux musl 环境。
    • 更新了 Milk-V Duo 官方系统镜像包到上游最新版本。RuyiSDK 受权对这些镜像进行了重新打包,以便后续所有通过 RuyiSDK 渠道分发的系统镜像都能以 ruyisdk 用户名与密码登录,方便您的评估。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与 RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

IDE

开始启动 RuyiSDK VSCode IDE 插件开发和 RuyiSDK Eclispe IDE 开发。计划在开发的同时输出短视频吸引新人加入。

GCC

更新了Zcmt的实现,修复了gcc14.2回归测试中发现的一些问题,正在进行Smrnmi扩展的支持中。

LLVM

本期暂无进展。

V8

  1. 在 RISC-V 平台适配 leaptier 特性,提高 JIT 编译器 tier-up 和 tier-down 的安全性和性能。

  2. 对 jalr 进行优化:

    (1)将编译时跳转偏移可以满足 jal 立即数域编码要求的 jalr 指令,替换为 jal 指令。

    (2)对必须进行寄存器间接地址+编译时额外跳转偏移的情况,将能够满足 jalr 立即数编码域条件的跳转编译编码至jalr 指令,不再适用额外指令进行跳转目标寄存器的计算。

  3. 使用 zicond 指令集扩展对 codegen 进行优化。

官网

梳理了用户数据收集需求,计划在用户允许的情况下通过数据收集的方式了解 ruyi 包管理器的安装和使用情况,协助我们提升和改进产品。

操作系统支持矩阵

第 028 期·2024 年 09 月 03 日

· 阅读需 5 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.17 版本已于今日发布。RuyiSDK 包管理器修复了一些已知的缺陷,RuyiSDK 软件源更新了 Box64 和 WPS Office;RuyiSDK 官网也新增 algolia search,现在可以搜索网站上的任何内容了。

此外,RuyiSDK 在第四届 RISC-V 中国峰会(RISC-V Summit China 2024)上,进行了包括 RuyiSDK 介绍、Ruyi 包管理器的自动化测试、RISC-V 操作系统支持矩阵 等报告;RuyiSDK 还亮相 elexcon 2024深圳国际电子展,展示了近期的工作成果。

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.18 版本将在 9 月 14 日发布。

包管理器

RuyiSDK 0.17 对应的包管理器版本也为 0.17.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 修复了 issue #181: 现在在宽度较短的终端窗口中使用 ruyi news read 等功能时,Markdown 代码块中的长行不会缺字了,行首、行尾也不再存在影响复制粘贴的空格。代价是覆盖整行宽度的漂亮的背景色无法实现了。

本次 RuyiSDK 软件源的更新主要包含了以下内容:

  • 更新了 Box64 到上游最新开发版本。
  • 更新了 WPS Office 到上游最新版本。请注意:上游移除了 AArch64 架构的原生支持。这部分用户也将需要依赖二进制翻译方案来运行 WPS Office 了。
  • 明确了软件源内容的开源许可证:Apache 2.0 许可证,与 Ruyi 包管理器本体一致。

此外,我们已经着手设计、实现 ruyi 包管理器分发渠道与 RuyiSDK 软件源的服务端组件。未来,这将使得 RuyiSDK 能够更加频繁地、自动化地更新软件源中的包;也能在取得用户明确授权的前提下,使 RuyiSDK 用户与测试人员能够向 RuyiSDK 团队反馈一定的使用信息,有助于未来的设计与维护工作。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与 RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

IDE

本期暂无进展。

GCC

  • 支持了Zimop扩展
  • 修复了部分回归测试中发现的错误

LLVM

  • 支持了对 tuple type 的 vget/vset/vcreate 操作。
  • 修复在指定 XTHeadVector 拓展时,编译器未定义 __riscv_vector 的问题,现在编译器行为与 GCC 一致。

V8

  1. 提交patch,使V8 for Android RISCV64在 NDK r27 版本获得标准构建支持(无需在手工配置NDK toolchain)。
  2. 继续实现TurboShaft SIMD IR 到RVV的指令选择。
  3. 移植central stack switches特性。

官网

截止今日9月3日,RuyiSDK 网站访问人数986人,新增152人,访问页面7622次,新增2755次。RuyiSDK 微信交流群132人,新增49人。

官网新增 algolia search,现在可以搜索网站上的任何内容啦!

RuyiSDK 亮相 elexcon 2024深圳国际电子展

操作系统支持矩阵

  • 修正了部分 typo 和 i18n / 英文翻译。
  • lintestor 应用软件可用性测试项目继续更新中
    • 重写了测试调度相关的代码
    • 添加了全局前置环境配置
    • 改进了测试结果报告
    • 新增了更多软件包的测试用例

第 027 期·2024 年 08 月 13 日

· 阅读需 5 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.16 版本已于今日发布。包管理器完成了设备安装器(ruyi device provision)的插件化改造,后续升级程序将更加方便。此外,RuyiSDK 完善了Canaan Kendryte K230D 开发板的支持,对 K230D SDK 源码进行了更新和完善,同时建立了SDK自动构建CI,并联合玄铁团队和嘉楠科技进行了标题为“嘉楠勘智 K230D: 首款基于新 32 位 RuyiSDK 的 AIoT 量产芯片”的宣发,展示了基于 K230D RuyiSDK 源码的性能对比结果和其它合作成果。

操作系统支持矩阵持续更新中,同时开始启动操作系统中语言运行时环境、语言虚拟机等运行支持软件在不同Linux发行版中的支持情况(应用软件支持矩阵),如系统包管理器是否提供安装,以及软件版本信息。目前已经完成了 Debian 的部分测试用例。

RuyiSDK更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议 ,下一个开发版本 RuyiSDK V0.17 版本将在 9 月 3 日发布。此外RuyiSDK报名了2024年8月27日-29日在深圳会展中心举办的深圳国际电子展,欢迎关注。

包管理器

RuyiSDK 0.16 对应的包管理器版本也为 0.16.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 完成了设备安装器(ruyi device provision)的插件化改造。今后对不常见刷写步骤的支持将更加方便了:不一定需要更新 ruyi 本体了。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。您也可以亲自参与 RuyiSDK 软件的打包与分发工作:目前您可以直接在 GitHub 上查看、修改我们的部分打包脚本软件源仓库。今后,按照本年度的开发计划,我们也将支持有权的第三方贡献者通过程序化的方式上传软件包、系统镜像等分发文件,以便利打包工作。

IDE

本期暂无进展。

GCC

RUYISDK-GNU-Toolchain发布了基于GCC14.2与Binutils2.43的linux工具链,修复了回归测试中发现的一些问题。

LLVM

本期暂无进展。

V8

审核新一代基线编译器maglev的riscv支持框架。

官网

截止今日 8 月 13 日,订阅人数一共 40 人(增加 2 人)。RuyiSDK 网站访问人数 834 人(增加 266 人),访问页面 4907 次(增加 2197 次)。RuyiSDK 微信交流群 83 人。

嘉楠勘智 K230D: 首款基于新 32 位 RuyiSDK 的 AIoT 量产芯片,详情阅读官网博客 https://ruyisdk.org/blog/2024/07/30/k230d/

操作系统支持矩阵

本期更新:

  • Milk-V Duo S / NuttX RTOS: 同步最新主线版本
  • Milk-V Pioneer : 新增 Deepin RISC-V
  • StarFive VisionFive 2: 重测了 Deepin RISC-V CI build,已确认可用
  • 主表格:同步 Deepin 测试结果

自动化测试/应用软件支持矩阵准备:lintestor

  • 目前已完成了 Debian 的部分测试用例,结果见此处