一、运行环境
本次实操环境:
- 系统:Windows WSL-Ubuntu 24.04
- 架构:x86_64
- 用途:完成 RuyiSDK 安装、环境排错、工具链部署、简单程序编译与运行全流程记录
二、WSL2 网络 DNS 问题排查与解决
问题现象
刚开始使用 RuyiSDK 官方源下载安装时,出现域名解析失败、连接超时、无法下载。
问题原因
WSL2 会自动刷新、重置 DNS 服务器,导致域名解析异常,访问外部官方源不稳定。
解决操作步骤
1. 在 WSL 终端编辑配置文件:
sudo vim /ect/wsl.conf
2. 写入以下配置,关闭自动 DNS 生成:
[network]
generateResolvConf = false
3. 保存退出,关闭整个 WSL 终端,重新打开。
4. 手动配置公共固定 DNS,刷新网络后,域名解析恢复正常,可正常下载官方资源。
三、RuyiSDK 包管理器安装过程
1. 优先使用中科院镜像源替换官方源,下载速度更快、更稳定。
2. 按照官方文档步骤,依次执行下载、授权、安装命令,顺利完成安装。
3. 首次终端输入 ruyi 启动时,弹出遥测数据收集提示。
4. 等待初始化更新完成,进入正常 RuyiSDK 命令交互状态,无报错。
四、RuyiSDK 基础功能实操
- 查看可用软件包
ruyi list
查看当前支持的工具链、开发板镜像、可用软件包列表。
- 安装 GNU 上游工具链
ruyi install gnu-upstream
等待自动下载、解压、部署工具链,安装完成可正常调用。
- 编写简单测试程序
新建 hello.c 文件,写入基础测试代码:
#include <stdio.h>
int main()
{
printf(“Hello RuyiSDK\n”);
return 0;
}
- 动态编译遇到的问题
默认直接动态编译后,用 QEMU 模拟运行时,提示:
找不到 RISC-V 动态链接器
原因:
WSL2 本地环境没有适配 RISC-V 架构的动态运行库,无法解析动态链接文件。
- 改用静态编译解决问题
编译时加上 -static 参数,进行静态编译:
# 示例编译命令
riscv64-linux-gnu-gcc hello.c -o hello -static
编译生成纯静态可执行文件,不依赖外部动态库。
- QEMU 模拟器正常运行
静态编译后的程序,可在 QEMU 中正常运行,成功打印:
Hello RuyiSDK
五、整体使用总结
1. WSL2 使用 RuyiSDK 前,一定要先处理 DNS 自动重置问题,否则容易解析失败、下载超时;
2. 切换国内中科院镜像源,安装速度快、稳定性高,适合国内网络环境;
3. 首次启动建议关闭遥测数据上传,保护本地使用隐私;
4. 在 WSL 环境下编译 RISC-V 程序,新手优先用静态编译,避免缺少动态链接库导致运行报错;
5. 整体安装流程清晰,解决网络 DNS 后,后续工具链安装、程序编译运行都很顺畅。