目录
?0.区别
1.WSL安装
1.1 简化安装
1.2 手动安装
1.3 问题总结
2.基本操作
3.环境配置
4.交互方式
4.1 UI交互
4.2 命令行交互
5.备份与还原
6.开发工具
6.1 vscode?
6.2 docker
6.3?vlc
6.4?编译环境
7.其他问题
?0.区别
适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。 将适用于 Linux 的 Windows 子系统从 WSL 1 升级到 WSL 2 的主要区别和优势是: 提高文件系统性能, 支持完全的系统调用兼容性。
1.WSL安装
1.1 简化安装
方法是;加入Windows 预览体验计划,并且更新系统到win11 wsl --install?
1.2 手动安装
这个过程比较复杂,但是通用 步骤 1 :启用适用于 Linux 的 Windows 子系统 第一种方法:需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。 第二种方法:以管理员身份打开 PowerShell 并运行: ? ? ? dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 步骤 2 :?检查运行 WSL 2 的要求
若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver" 若要更新到 WSL 2,需要运行 Windows 10。 ?对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。 ?低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。 步骤 3?:?启用虚拟机功能 以管理员身份打开 PowerShell 并运行: dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 重新启动 计算机,以完成 WSL 安装并更新到 WSL 2。 步骤 4 :下载 Linux 内核更新包 ?适用于 x64 计算机的 WSL2 Linux 内核更新包,运行上一步中下载的更新包 步骤 5 :?将 WSL 2 设置为默认版本 将 WSL 2 设置为默认版本: ?wsl --set-default-version 2 步骤 6:?安装所选的 Linux 分发 ?打开 Microsoft Store,并选择你偏好的 Linux 分发版。
1.3 问题总结
WslRegisterDistribution failed with error: 0x800701bc”内核需要升级
?Windows 更新后出现“错误:0x80370102 由于未安装所需功能,因此无法启动虚拟机。”请启用 Virtual Machine Platform Windows 功能,并确保在 BIOS 中启用了虚拟化。
2.基本操作
运行:wsl -d Ubuntu-20.04
查看运行:wsl -l --running
停止:wsl -t Ubuntu-20.04
备份:wsl --export Ubuntu-20.04 D:\Ubuntu-20.04.tar
还原; wsl --import Ubuntu-20.04 D:\WSL D:\Ubuntu-20.04.tar
删除: wsl --unregister Ubuntu-20.04
版本查看:wsl --list --verbose
3.环境配置
为了能在环境中使用nvidia卡,能够把智能卡透传进入WSL发行版,整理流程如下:
1.安装预览版驱动
下载地址:CUDA on WSL | NVIDIA Developer如下:
?这个驱动将同时安装window驱动和wsl内部驱动
2.WSL2中安装CUDA
如下:
$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
$ sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb
$ sudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get -y install cuda
3.运行CUDA容器包
安装docker
curl https://get.docker.com | sh
安装nvidia-docker
curl https://get.docker.com | sh
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
运行?Simple CUDA Containers?
docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
4.交互方式
4.1 UI交互
远程桌面登陆,基本步骤:
sudo apt-get update
sudo apt-get install xorg
sudo apt-get install xfce4
sudo apt-get install xrdp
sudo sed -i ‘s/port=3365/port=3365/g’ /etc/xrdp/xrdp.ini
sudo echo xfce4-session >~/.xsession
sudo service xrdp restart
4.2 命令行交互
cmd? ?推荐工具:window terminal
5.备份与还原
- 备份:wsl --export 发行版的名称???xx.tar
- 还原; wsl --import 发行版的名称?安装目录? ?xx.tar
- 删除: wsl --unregister 发行版的名称.
6.开发工具
6.1 vscode?
?服务端---wsl安装 ?客户端--window安装
6.2 docker
curl https://get.docker.com | sh
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list
6.3?vlc
? ? sudo ?apt ?install ?vlc
6.4?编译环境
? ? cmake,make,gcc,g++ ?
7.其他问题
设备透传比较难,比如USB摄像头接入wsl内部比较困难,目前可行的方案是usbip
参考:
1.适用于 Linux 的 Windows 子系统文档 | Microsoft Docs
2.https://snowstar.org/2020/06/14/wsl2-usb-via-usbip/
3.https://github.com/rpasek/usbip-wsl2-instructions
4.CUDA on WSL :: CUDA Toolkit Documentation
|