Zum Hauptinhalt springen

Blog

Bleiben Sie mit aktuellen Nachrichten vom RuyiSDK-Team auf dem Laufenden

RuyiSDK 0.13 版本更新说明

· 2 Minuten Lesezeit
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 Minuten Lesezeit
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 Minuten Lesezeit
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 Minuten Lesezeit
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 版本更新说明

· Eine Minute Lesezeit
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 Minuten Lesezeit
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)

· Eine Minute Lesezeit
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 Minuten Lesezeit
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 Minuten Lesezeit
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 支持展示新闻了

· Eine Minute Lesezeit
xen0n
RuyiSDK 技术主管

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

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

感谢您对 RuyiSDK 的支持!