跳到主要内容

博客

随时看到来自 RuyiSDK 团队的重大消息

RuyiSDK 0.13 版本更新说明

· 阅读需 2 分钟
xen0n
RuyiSDK 技术主管

RuyiSDK 0.13 现已发布,对应的包管理器版本也为 0.13.0。您可前往以下位置之一下载 RuyiSDK 包管理器:

本次更新主要包含了以下内容,祝您使用愉快!

RuyiSDK 包管理器

  • 修复了 issue #158: coremark 包的两个版本,解压后的目录布局不统一。现在都会在当前工作目录下“摊开”了。
  • 修复了 issue #159: 对“预发布版本”判断方式的不统一。
  • 随着 Python 3.12 的正式发布,官方 ruyi 二进制也在 Python 3.12 环境构建了。
  • 为引入插件架构做好准备:引入了 Starlark 语言支持,并支持在 CI 自动化构建。Starlark 是一种极度简化的 Python 方言,被 Bazel、BUCK 等构建系统广泛采用;这是为了让所有了解 Python 语言的开发者都可使用熟悉的语法撰写 RuyiSDK 包管理器插件。

为了支持刷写方式复杂、需要夹杂人工干预、镜像文件需要手工下载等复杂情况下的设备初始化,我们正在将设备安装器重构为基于插件架构的形式,预计将于下个版本付诸测试。届时旧版 ruyi 的设备安装器功能将不可用,请先升级再进行体验。

RuyiSDK 0.12 版本更新说明

· 阅读需 2 分钟
xen0n
RuyiSDK 技术主管

RuyiSDK 0.12 现已发布,对应的包管理器版本也为 0.12.0。您可前往以下位置之一下载 RuyiSDK 包管理器:

本次更新主要包含了以下内容,祝您使用愉快!

RuyiSDK 包管理器

  • 修复了先前 Pine64 Star64 Armbian 镜像无法下载的问题。
  • 对于部分必须由用户手工下载的文件,支持了相应的用户体验:按照当前系统语言设置,渲染相应的提示语。
  • 升级了 pygit2 依赖库版本到 1.5.0,以支持 libgit2 的 1.8 版本。
  • 修复了 XDG_STATE_HOME 环境变量被无视的问题。

为了支持刷写方式复杂、需要夹杂人工干预、镜像文件需要手工下载等复杂情况下的设备初始化,我们正在对设备安装器进行重构,预计将于下个版本付诸测试。届时旧版 ruyi 的设备安装器功能将不可用,请先升级再进行体验。

RuyiSDK 0.11 版本更新说明

· 阅读需 2 分钟
xen0n
RuyiSDK 技术主管

RuyiSDK 0.11 现已发布,对应的包管理器版本也为 0.11.0。您可前往以下位置之一下载 RuyiSDK 包管理器:

本次更新主要包含了以下内容,祝您使用愉快!

RuyiSDK 包管理器

  • 去除了先前唯一的 LGPL 依赖。现在 RuyiSDK 包管理器及其所有依赖都采用宽松开源许可证了,方便下游用户在商业场景取用。

RuyiSDK 软件源

  • Ruyi 设备安装器(ruyi device provision)现已新增支持以下设备型号:
    • Pine64 Star64

请在升级 RuyiSDK 包管理器之后,执行 ruyi update 以拉取软件源更新。

我们注意到越来越多的设备型号,甚至如最新面世的 BananaPi BPI-F3 等等,其系统镜像仅以网盘(百度网盘、Google Drive、MEGA 等服务)方式分发。 对这些设备型号的妥善支持面临挑战;在接下来的版本迭代中,我们将尝试支持此场景,敬请期待或参与进来。

RuyiSDK 0.10 版本更新说明

· 阅读需 2 分钟
xen0n
RuyiSDK 技术主管

RuyiSDK 0.10 现已发布,对应的包管理器版本也为 0.10.0。您可前往以下位置之一下载 RuyiSDK 包管理器:

本次更新主要包含了以下内容,祝您使用愉快!

RuyiSDK 包管理器

  • 支持了全局选项 --porcelain 以方便外部程序与 ruyi 交互。初期为 ruyi listruyi news list 两种操作适配了 porcelain 输出格式。
  • ruyi news 在某条新闻存在当前系统语言翻译版本时,会优先展示此语言版本了。

RuyiSDK 软件源

RuyiSDK 自 0.10 版本开始支持沁恒微电子(WCH)RISC-V 产品。

  • 新增打包了 PLCT 维护的 LLVM 工具链 toolchain/llvm-plct。其主要特色是支持 XTHeadVector 扩展。
  • Ruyi 设备安装器(ruyi device provision)现已新增支持以下设备型号:
    • WCH CH32V103 评估板
    • WCH CH32V203 评估板
    • WCH CH32V208 评估板
    • WCH CH32V303 评估板
    • WCH CH32V305 评估板
    • WCH CH32V307 评估板
    • WCH CH582F 评估板
    • WCH CH592X 评估板

请在升级 RuyiSDK 包管理器之后,执行 ruyi update 以拉取软件源更新。

RuyiSDK 0.9 版本更新说明

· 阅读需 1 分钟
xen0n
RuyiSDK 技术主管

RuyiSDK 0.9 现已发布,对应的包管理器版本也为 0.9.0。您可前往以下位置之一下载 RuyiSDK 包管理器:

本次更新主要包含了以下内容,祝您使用愉快!

RuyiSDK 包管理器

  • 支持了 LZ4 格式压缩文件的解包。

RuyiSDK 软件源

RuyiSDK 自 0.9 版本开始支持矽速(Sipeed)全线 RISC-V 产品。

Ruyi 设备安装器(ruyi device provision)现已新增了以下设备型号:

  • Sipeed LicheeRV Nano
  • Sipeed Lichee Cluster 4A
  • Sipeed Lichee Console 4A
  • Sipeed Maix-I
  • Sipeed Tang Mega 138K Pro

以下设备型号先前已得到 Ruyi 设备安装器支持:

  • Sipeed LicheePi 4A
  • Sipeed LicheeRV

请在升级 RuyiSDK 包管理器之后,执行 ruyi update 以拉取软件源更新。

RV64ILP32 裸机工具链与 profile 现已可用

· 阅读需 2 分钟
xen0n
RuyiSDK 技术主管

为了您的跟踪前沿开发动态方便,RuyiSDK 团队现已打包了 RV64ILP32 这一实验性 ABI 的裸机工具链供您使用。 由于是裸机工具链,此工具链不自带 sysroot,且未开启 multilib:可用的 ABI 为 ilp32d

使用示例

给定如下的 C 程序:

// test.c
long long add(long long *a, long long b)
{
return *a + b; // Should be realized with `ld` and `add`
}

void check(int);

void check_sizes(void)
{
check(sizeof(int)); // a0 should be 4
check(sizeof(long)); // a0 should be 4
check(sizeof(long long)); // a0 should be 8
check(sizeof(void *)); // a0 should be 4
}

使用相应的工具链包与 profile,我们将可编译出符合 RV64ILP32 ABI 的目标代码:

$ ruyi update
$ ruyi install gnu-plct-rv64ilp32-elf
$ ruyi venv -t gnu-plct-rv64ilp32-elf --without-sysroot baremetal-rv64ilp32 /tmp/venv
$ source /tmp/venv/bin/ruyi-activate
$ /tmp/venv11/bin/riscv64-plct-elf-gcc -O2 -c -o test.o test.c

检查目标代码是否符合预期:

$ riscv64-plct-elf-readelf -h test.o | grep 32
Class: ELF32
Flags: 0x25, RVC, X32, double-float ABI
$ riscv64-plct-elf-objdump -dw test.o

test.o: file format elf32-littleriscv


Disassembly of section .text:

00000000 <add>:
0: 6108 ld a0,0(a0)
2: 952e add a0,a0,a1
4: 8082 ret

00000006 <check_sizes>:
6: 3141 addiw sp,sp,-16
8: 4511 li a0,4
a: e406 sd ra,8(sp)
c: 00000097 auipc ra,0x0
10: 000080e7 jalr ra # c <check_sizes+0x6>
14: 4511 li a0,4
16: 00000097 auipc ra,0x0
1a: 000080e7 jalr ra # 16 <check_sizes+0x10>
1e: 4521 li a0,8
20: 00000097 auipc ra,0x0
24: 000080e7 jalr ra # 20 <check_sizes+0x1a>
28: 60a2 ld ra,8(sp)
2a: 4511 li a0,4
2c: 2141 addiw sp,sp,16
2e: 00000317 auipc t1,0x0
32: 00030067 jr t1 # 2e <check_sizes+0x28>

可见,此工具链确实生成了指针宽度为 32 位,但利用了 RV64 能力的目标代码。

新增板卡支持 (2024-01-29)

· 阅读需 1 分钟
xen0n
RuyiSDK 技术主管

现已为以下板卡新增了镜像包。

您可用 RuyiSDK 设备安装向导 ruyi device provision 自动初始化您的设备,或通过 ruyi install 手动安装它们:镜像文件会被自动解压或符号链接到 ~/.local/share/ruyi/blobs/<包名>-<包版本号> 的位置。

感谢您对 RuyiSDK 的支持!

Sipeed LicheeRV & Allwinner 哪吒 D1

此两种型号在硬件层面大体兼容,但也有细微差别,仅体现在设备树层面。

  • board-image/oerv-awol-d1-base: openEuler RISC-V 系统镜像,基础系统
  • board-image/oerv-awol-d1-xfce: openEuler RISC-V 系统镜像,含 XFCE GUI

StarFive VisionFive

  • board-image/oerv-starfive-visionfive-base: openEuler RISC-V 系统镜像,基础系统
  • board-image/oerv-starfive-visionfive-xfce: openEuler RISC-V 系统镜像,含 XFCE GUI

StarFive VisionFive2

  • board-image/oerv-starfive-visionfive2-base: openEuler RISC-V 系统镜像,基础系统
  • board-image/oerv-starfive-visionfive2-xfce: openEuler RISC-V 系统镜像,含 XFCE GUI

RuyiSDK 0.4 版本更新说明

· 阅读需 2 分钟
xen0n
RuyiSDK 技术主管

RuyiSDK 0.4 现已发布,对应的包管理器版本也为 0.4.0。您可前往 RuyiSDK 包管理器的 GitHub Releases 页面: https://github.com/ruyisdk/ruyi/releases 下载。

本次更新主要包含了以下内容,祝您使用愉快!

RuyiSDK 包管理器

  • ruyi device provision 会将 fastboot 的调用以 sudo 包装了。
  • ruyi self uninstall --purge 不会忘记删除 ~/.local/state/ruyi 目录了。
  • 从软件源下载文件失败时,会提供一些有助于用户自助排查问题的提示讯息了。
  • 为提供更稳定的服务,RuyiSDK 软件源仓库现已搬迁至 GitHub。 视您所在地区或组织所可能设置的网络访问限制,您可能需要采取一些措施, 以便能继续与 RuyiSDK 软件源同步。

原先位置的 RuyiSDK 软件源仓库将在 2024-02-01 前后停止更新。请尽早更新您的 ruyi 版本以自动迁移到最新配置。

RuyiSDK 软件源

  • 为 RISC-V 架构的系统,新增提供了 DynamoRIO 套件 analyzer/dynamorio-riscv
  • 为 AMD64 架构的系统,新增提供了 QEMU 系统模拟器 emulator/qemu-system-riscv-upstream
  • 上游版的 QEMU 版本现已升级至 8.2.0。

新增板卡支持 (2024-01-15)

· 阅读需 2 分钟
xen0n
RuyiSDK 技术主管

现已为以下板卡新增了镜像包。

您可用 ruyi install 安装它们:镜像文件会被自动解压或符号链接到 ~/.local/share/ruyi/blobs/<包名>-<包版本号> 的位置。

感谢您对 RuyiSDK 的支持!

Milk-V Duo

64M RAM 版本

  • board-image/buildroot-sdk-milkv-duo: 官方 Buildroot SDK
  • board-image/buildroot-sdk-milkv-duo-python: 官方 Buildroot SDK,含 Python 环境

256M RAM 版本

  • board-image/buildroot-sdk-milkv-duo256m: 官方 Buildroot SDK
  • board-image/buildroot-sdk-milkv-duo256m-python: 官方 Buildroot SDK,含 Python 环境

Milk-V Pioneer

  • board-image/oerv-sg2042-milkv-pioneer-base: openEuler RISC-V 系统镜像,基础系统
  • board-image/oerv-sg2042-milkv-pioneer-xfce: openEuler RISC-V 系统镜像,含 XFCE GUI
  • board-image/revyos-sg2042-milkv-pioneer: RevyOS 系统镜像

Sipeed LicheePi 4A

系统镜像:

  • board-image/oerv-sipeed-lpi4a-headless: openEuler RISC-V 系统镜像,不含 GUI
  • board-image/oerv-sipeed-lpi4a-xfce: openEuler RISC-V 系统镜像,含 XFCE GUI
  • board-image/revyos-sipeed-lpi4a: RevyOS 系统镜像

引导器(U-Boot):

  • board-image/uboot-oerv-sipeed-lpi4a-16g: 适用 Sipeed LicheePi 4A (16G RAM) 的 openEuler 系统
  • board-image/uboot-oerv-sipeed-lpi4a-8g: 适用 Sipeed LicheePi 4A (8G RAM) 的 openEuler 系统
  • board-image/uboot-revyos-sipeed-lpi4a-16g: 适用 Sipeed LicheePi 4A (16G RAM) 的 RevyOS 系统
  • board-image/uboot-revyos-sipeed-lpi4a-8g: 适用 Sipeed LicheePi 4A (8G RAM) 的 RevyOS 系统

RuyiSDK 支持展示新闻了

· 阅读需 1 分钟
xen0n
RuyiSDK 技术主管

为方便您及时了解 RuyiSDK 的开发动态,我们为 ruyi 工具新增了新闻支持。

如果您使用 ruyi 0.3 或更高的版本,那么当您完成 ruyi update 之后, 如果软件源中有新增的新闻条目,将在命令输出中提示。 您可用 ruyi news list 列出它们,并用 ruyi news read 阅读它们。

感谢您对 RuyiSDK 的支持!