1 安装WSL2子系统#
1.1 下载安装#
进入windows Store
,搜索Ubuntu,下载:
1.2 开启依赖#
右键windows左下角->应用和功能->相关设置-程序和功能->启用或关闭windows功能。勾选适用于Linux的windows子系统和虚拟机平台(WSL2
需要)选项:
也可以直接在powershell中输入如下两条指令开启:
1 | dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart |
1.3 启动WSL Ubuntu#
wsl是windows控制Ubuntu镜像的工具。
1.3.1 查看版本为WSL2#
安装完成后,启动Ubuntu
,会提示创建用户。在powerShell中输入:
1 | wsl -l --all -v |
可以看到版本为wsl2
。如果不是wsl2,请按照下面方式升级:
1 | wsl --set-version Ubuntu-20.04 2 |
提示需要更新内核组件,我们这里直接下载linux内核包进行安装:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
使WSL 2成为你的默认体系结构:
1 | wsl --set-default-version 2 |
1.4 导出Ubuntu到D盘#
默认会安装到c盘:C:\Users\robin.lee\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc
1 | wsl --shutdown //关闭虚拟机 |
导出完成后,在相应磁盘路径下即可看到文件夹:
可以删除tar文件,也可保留,方便损坏后重新导入tar文件。
1.5 wsl2与windows相互访问#
1.5.1 wsl2访问windows#
直接在ubuntu
中访问/mnt/
下磁盘挂载目录即可:
1.5.2 windows访问wsl2#
直接在资源管理器中输入\\wsl$
即可:
1 | \\wsl.localhost\Ubuntu |
为了方便,固定到快速访问。注意这是不能再透过/mnt
目录访问自己,如c,d盘:
1.6 vhdx虚拟磁盘瘦身#
由于WSL2
使用虚拟硬盘(VHD)
存储linux下的文件,随着Linux下文件越来越多,占用空间也会不断增长。但是,在Linux中减少文件占用,WSL却没有相应的自动减少硬盘空间的占用。如下可以看到vhdx虚拟磁盘文件很大。
1.6.1 diskpart#
执行diskpart,会弹出一个cmd窗口:输入如下命令即可完成瘦身。
1 | select vdisk file="D:\WSL\Ubuntu2004\ext4.vhdx" |
1.7 连接USB设备#
https://learn.microsoft.com/zh-cn/windows/wsl/connect-usb
1.8 美化终端#
1.8.1 windows terminal#
原生的Ubuntu窗口还是low了点,字体和字符编码支持得都不是很好。可以进入windows的应用商店下载windows terminal
:
启动后界面如下,可自定义配色和语言字体等个性化设置。
2 winnfsd-windows搭建nfs服务#
2.1 下载运行winnfsd#
下载windows nfs服务Release 2.4.0 · winnfsd/winnfsd · GitHub,直接运行,选择要导出的目录:
1 | .\WinNFSd.exe D:\code\ |
wsl子系统默认是通过虚拟网卡NAT模式转接到笔记本的网卡上的,所以wsl是可以上网的:
目前wsl只支持一张虚拟网卡,也就是说wsl系统要上网和要和板子通信两者只能取其一,但是wsl系统中可以随意访问windows文件系统,所以可以在windows上搭建NFS服务,然后直接在wsl系统中访问windows导出的共享文件夹,这样就能同步更改到板子上了。
比如我们把D:\code
作为开发目录,windows和wls都能访问,又能挂载到板子上。
2.2 配置Windows网卡和开发板互通#
windows电脑的WIFI网卡上网, 以太网卡作为局域网和板端互通。
配置网卡ip;(网络适配器中找到对应网口的以太网卡,配置静态ip和网关)
2.3 挂载windows目录到板子#
1 | mount -t nfs -o nolock 192.168.1.100:/D/code /mnt/nfs |
这里挂载d盘的code
文件夹,注意D一定要大写。
这样D/code
就挂载到了板端。同样D/code
下可以在wsl下进行代码编辑编译浏览,编译好之后直接可以切到板端去运行测试。