看到论坛有大佬在 WSL 上开发,于是自己也稍微研究了一下。然后发现,开发调试原来在 WSL 上都可以实现,于是和大家分享一下具体的方式。如果大家有更好开发调试的方式,欢迎一起交流呀~
WSL 介绍
这里引用官方的介绍:
开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的费用。
系统要求必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。
安装步骤在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install 命令,然后重启计算机。 默认情况下,安装的 Linux 分发版为 Ubuntu。 可以使用 -d 标志进行更改。 在更改前我们先查看有哪些可以使用的发行版
例如安装Ubuntu-24.04,只需输入以下命令: - wsl --install -d Ubuntu-24.04
复制代码完成安装后可以在开始菜单中看到已经安装好的 WSL,点击 Ubuntu-24.04 LTS 就可以启动 WSL了
升级至 WSL 2
我在两台电脑上安装了 WSL ,但我发现一台电脑是 WSL1 一台是 WSL2。
WSL 1 和 WSL 2 之间的主要区别在于,在托管 VM 内使用实际的 Linux 内核、支持完整的系统调用兼容性以及跨 Linux 和 Windows 操作系统的性能。 这里放一张两者的对比图,便于大家理解: 从上面的比较表中可以看出,WSL 2 架构在几个方面优于 WSL 1,但跨 OS 文件系统的性能除外,对于这种情况,可通过将项目文件存储在与处理项目时运行的工具相同的操作系统上进行处理。 大家可以选择自己合适的WSL版本,接下来讲讲如何升级(降级) WSL 版本 - wsl --update
- wsl --set-version Ubuntu-24.04 2
复制代码
稍等片刻,然后再查询WSL版本,可以看到已经升级到 WSL2 了
环境安装安装依赖 - sudo apt install build-essential python3 python3-pip git screen
复制代码
拉取仓库 - git clone --recursive https://gitee.com/Ai-Thinker-Open/Ai-Thinker-WB2
复制代码
设置权限 进入Ai-Thinker-WB2/toolchain/riscv目录 - cd Ai-Thinker-WB2/toolchain/riscv
- chmod -R 777 Linux
复制代码
到此环境已经安装完毕,进入任意一个项目文件夹,运行make命令就可以编译了 使用串口
WSL 2 windows查看usb设备 找到对应设备的编号,共享设备: - usbipd bind --busid <BUSID>
- usbipd bind --busid 1-9
-
- usbipd attach --wsl --busid=<BUSID>
- usbipd attach --wsl --busid=1-9
复制代码查看设备
WSL 1 WSL1 来自网上的一个说法是电脑的串口会自动出现在WSL中,其名字的对应关系为:电脑COMx =WSL中 ttySx,若大家有WSL1可以尝试找一下是否对应 烧录通过usbipd,出现在WSL中的串口名称为ttyUSB0,使用以下命令烧录 - make flash p=/dev/ttyUSB0 b=115200
复制代码
代码编辑最重要的部分来了,在WSL中配置环境,自然是要编辑编辑代码的,这里我首先想到的是直接用电脑上的VS Code打开 WSL 中的仓库,不过很可惜 include 引入全部报错。 既然直接打开不行,我又尝试下载Linux版的VS Code,放到WSL中安装,可惜最后会弹出一个安装失败的警告。 经过一番探索,我终于发现了一个优雅的解决方案:只需在VS Code中搜索 WSL 插件并安装
在WSL SDK目录中输入 code .,第一次输入会安装server,然后自动弹出VS Code界面。此时搜索 C 插件并安装,你就会发现所有依赖都可以正常识别了,代码跳转也没问题。 串口调试在WSL和Windows之间切换还是比较麻烦的,这里找到了一个可以在WSL中调试窗口的项目,先下载源码: - git clone https://github.com/npat-efault/picocom.git
复制代码
然后使用 make 编译:
这足以为大多数现代类 Unix 系统编译 picocom。如果需要,您可以像这样剥离生成的二进制文件:
调试串口: - ./picocom -b 115200 -f h /dev/ttyUSB0
复制代码至此大功告成,可以在WSL愉快地开发和调试了。 |