1. 为什么选择WSL2来玩转RK3588的NPU?
最近手头正好有两台闲置的RK3588开发板,看着它标称的6TOPS NPU算力,我琢磨着能不能把它当成一个轻量级的AI推理服务器来用,跑跑自己训练的小模型,或者玩玩开源的大模型。但问题来了,我的主力开发机是Windows系统,而瑞芯微官方的RKNN-Toolkit2开发套件,主要支持的是Linux环境(比如Ubuntu)。难道为了这个,我得专门装个双系统,或者开个虚拟机?那也太折腾了。
这时候,WSL2(Windows Subsystem for Linux 2) 就成了我的“救命稻草”。它不是什么笨重的虚拟机,而是Windows系统内核原生支持的Linux子系统,性能损耗极低,文件系统互通也做得非常好。简单来说,我可以在Windows里无缝运行一个完整的Ubuntu,直接在这个Ubuntu环境里安装RKNN-Toolkit2,进行模型转换、量化等所有操作。更妙的是,通过WSL2的网络桥接,我可以直接用网线或者USB线,让这个“Ubuntu”直接连接到我的RK3588开发板,进行实时的连板调试和性能评估。
这套组合拳打下来,相当于我拥有了一套“Windows的舒适界面 + Linux的原生开发环境 + 直连硬件的调试能力”,对于像我这样需要在Windows下工作,但又离不开Linux开发工具的嵌入式AI工程师来说,简直是量身定做。踩过一些坑之后,我把整个搭建和实战流程梳理出来,希望能帮你省下不少摸索的时间。
2. 第一步:给你的Windows装上WSL2和Ubuntu
万事开头难,但WSL2的安装现在其实已经非常简单了。我强烈推荐使用Ubuntu 22.04 LTS这个版本,这是经过我和很多社区开发者验证,与RKNN-Toolkit2兼容性最好的一个版本。
2.1 启用WSL功能并安装Ubuntu
首先,我们需要以管理员身份打开Windows PowerShell(不是普通的命令提示符)。然后依次执行下面几个命令,整个过程可能需要重启一次电脑。
# 1. 启用适用于 Linux 的 Windows 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 2. 启用虚拟机平台功能(这是WSL2的核心)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
执行完这两个命令后,重启你的电脑。重启后,再次以管理员身份打开PowerShell,设置WSL2为默认版本:
# 3. 将WSL2设置为默认版本
wsl --set-default-version 2
接下来,打开微软应用商店(Microsoft Store),搜索“Ubuntu 22.04 LTS”,点击获取并安装。安装完成后,在开始菜单找到它并启动。第一次启动会需要你设置一个Linux用户名和密码,这个密码在后续使用sudo命令时会经常用到,请务必记住。
2.2 一个必做的优化:配置WSL2的内存和交换空间
默认情况下,WSL2会占用最多一半的物理内存。如果你电脑内存不大(比如16GB),在模型转换这种吃内存的操作时可能会卡顿。我们需要给它设个上限。在Windows用户目录(C:\Users\你的用户名\)下,创建一个名为.wslconfig的文件,用记事本编辑,加入以下内容:
[wsl2]
memory=8GB # 限制WSL2最大使用8GB内存,根据你的电脑配置调整
swap=4GB # 设置交换空间为4GB
localhostForwarding=true
保存后,在PowerShell中执行 wsl --shutdown 来完全关闭WSL,之后再重新打开Ubuntu终端,配置就生效了。完成这步,一个干净、高效的Linux开发环境就在你的Windows里准备就绪了。
3. 在WSL2中搭建RKNN-Toolkit2开发环境
现在,我们已经在WSL2里有了一个Ubuntu终端。接下来的操作,就全部在这个终端里进行,感觉就像在用一台真正的Linux电脑。
3.1 安装Python虚拟环境管理工具(Conda)
我强烈推荐使用Conda来管理Python环境,它能完美解决不同项目间库版本冲突的问题。我们安装轻量级的Miniconda。
#


715

被折叠的 条评论
为什么被折叠?



