在WSL2中运行nvidia-smi时出现命令未找到的问题
我在服务器安装了WSL2,在WSL2中输入nvidia-smi命令之后得到下面的输出提示:
(mamba) qqxt@WIN-NUK633S47C8:~/object-detect/mamba-yolo$ nvidia-smi
Command 'nvidia-smi' not found, but can be installed with:
sudo apt install nvidia-utils-390 # version 390.157-0ubuntu0.22.04.2, or
sudo apt install nvidia-utils-418-server # version 418.226.00-0ubuntu5~0.22.04.1
sudo apt install nvidia-utils-450-server # version 450.248.02-0ubuntu0.22.04.1
sudo apt install nvidia-utils-470 # version 470.256.02-0ubuntu0.22.04.1
sudo apt install nvidia-utils-470-server # version 470.256.02-0ubuntu0.22.04.1
sudo apt install nvidia-utils-535 # version 535.183.01-0ubuntu0.22.04.1
sudo apt install nvidia-utils-535-server # version 535.230.02-0ubuntu0.22.04.3
sudo apt install nvidia-utils-545 # version 545.29.06-0ubuntu0.22.04.2
sudo apt install nvidia-utils-550 # version 550.120-0ubuntu0.22.04.1
sudo apt install nvidia-utils-550-server # version 550.144.03-0ubuntu0.22.04.1
sudo apt install nvidia-utils-565-server # version 565.57.01-0ubuntu0.22.04.4
sudo apt install nvidia-utils-570-server # version 570.86.15-0ubuntu0.22.04.4
sudo apt install nvidia-utils-510 # version 510.60.02-0ubuntu1
sudo apt install nvidia-utils-510-server # version 510.47.03-0ubuntu3
一、问题核心原因
-
WSL2与NVIDIA驱动的交互机制
WSL2的NVIDIA GPU支持依赖于Windows宿主机的NVIDIA驱动,而非在WSL2内安装Linux版驱动。若Windows驱动未正确安装或版本过低,WSL2无法调用GPU功能。 -
nvidia-smi的路径缺失
nvidia-smi
命令需要从/usr/bin/
等系统路径访问可执行文件。若WSL2未正确挂载Windows驱动组件(如/usr/lib/wsl/lib/nvidia-smi
),会导致该命令缺失。
二、解决方案
步骤1:检查Windows宿主机驱动
更新NVIDIA驱动
1. 打开Windows的NVIDIA GeForce Experience或访问官网下载最新驱动
2. 关键要求:驱动版本需支持WSL2(建议≥465.00)
3. 安装后重启电脑,并在PowerShell中验证:
nvidia-smi # Windows端执行,应显示GPU信息
步骤2:修复WSL2内的nvidia-smi路径
1. 手动复制可执行文件
在WSL2终端执行以下命令:
sudo cp /usr/lib/wsl/lib/nvidia-smi /usr/bin/nvidia-smi
sudo chmod +x /usr/bin/nvidia-smi
此操作将宿主机驱动的nvidia-smi
复制到WSL2的系统路径
2. 重启WSL2实例
关闭当前WSL2会话并重启:
wsl --shutdown # PowerShell执行
wsl # 重新进入WSL2