当前位置:AIGC资讯 > AIGC > 正文

AIGC 实战(环境篇) - EXSI 8.0 Debian安装RTX3060显卡驱动

文章目录

RTX 3060 显卡驱动安装 主要过程 解决方案 RTX 3060 CUDA、CUDNN 安装 CUDA 安装 CUDNN 安装 参考文章


近期,尝试在家里服务中搭建一个用来跑 AI 的服务器,尝试使用 EXSI8.0 + ubuntu 搭建,因 exsi + ubuntu 无法安装最新版本 N 卡驱动,原因:安装上后,nvidia-smi 找不到设备,exsi+ubuntu 的方式行不通,所以改为 exsi+debian 的方式搭建。
虚拟机配置如下: EPYC 7302 * 48 基于 ESXi-8.0U2 平台 NVIDIA GeForce RTX 3060(12G) 128G 内存 Debian GNU/Linux 12 (bookworm) x86_64

RTX 3060 显卡驱动安装

主要过程

首先配置虚拟机,按设置:

锁定全部内存 设置 hypervisor.cpuid.v0=FALSE 设置 pciPassthru0.msiEnabled=FALSE 设置 pciPassthru.use64bitMMIO=TRUE 设置 pciPassthru.64bitMMIOSizeGB=24(这个数字填写 2*GPU 显存总量。例如我的 3060 显存 12G,这里填写 24 即可)

在虚拟机内,首先配置 apt 源,使之包含 non-free-firmware。在 /etc/apt/source.list 中,添加 non-free-firmware,完成后应该形如:

deb https://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

然后,

sudo apt update
apt search nvidia-driver

直接使用 apt 安装驱动,会出现如下错误:

Detected NVIDIA GPUs:
1b:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3090] [10de:2204] (rev a1)

Checking card:  NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)
Uh oh. Your card is not supported by any driver version up to 545.23.06.
A newer driver may add support for your card.
Newer driver releases may be available in backports, unstable or experimental.

解决方案

简单来说,需要安装开放版本的 NVIDIA 驱动而不是默认的。论坛中的回答表示应该使用 .run 文件安装,并附加参数 -m=kernel-open,我不清楚是否有可以解决这个问题的 deb 包。
在应用这个方案之前,首先需要清理之前的安装。

sudo nvidia-uninstall
sudo apt purge -y '^nvidia-*' '^libnvidia-*'
sudo rm -r /var/lib/dkms/nvidia
sudo apt -y autoremove
sudo update-initramfs -c -k `uname -r`
sudo update-grub2
sudo reboot
检查显卡是否被系统识别
lspci | grep -i nvidia
检查操作系统是否开启 nouveau
lsmod | grep nouveau
禁用内核模块 nouveau
vim /etc/modprobe.d/blacklist-nvidia-nouveau.conf

添加:
blacklist nouveau
options nouveau modeset=0
新增显卡参数
vim /etc/modprobe.d/nvidia.conf

添加:

options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
更新 initramfs
sudo update-initramfs -u
重启后,检测。没任何输出,则禁用成功
systemctl reboot
lsmod | grep nouveau  
# 没有输出说明操作成功
然后,从 NVIDIA 驱动下载站下载 .run 格式的驱动。并执行
sudo apt-get install gcc make g++  #安装依赖
sudo chmod u+x NVIDIA-Linux-x86_64-535.154.05.run #赋予可执行权限
sudo ./NVIDIA-Linux-x86_64-535.154.05.run -m=kernel-open
sudo update-initramfs -u
systemctl reboot
nvidia-smi
1.The distribution-provided pre-install script failed! Are you sure you want to continue? 

“Yes”

2.Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?

“No”

3.Nvidia’s 32-bit compatibility libraries?

“No”

4.Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 

“Yes”

如果遇到 nvidia driver 遇到 kernel source tree missing 的解决方法:

sudo apt-get install linux-headers-$(uname -r)
结果告诉我没有这个包。

然后我运行

sudo apt-cache search linux-headers-$(uname -r)

显示的头文件版本是4.19.0-6-amd64

而我的核心

cat /proc/version

是4.19.0-5

因此只能升级核心

sudo apt-get install linux-image-4.19.0-6-amd64

然后卸载原来的,这时候会有警告,只要选No即可

sudo apt-get remove linux-image-4.19.0-5-amd64

卸载完了重启即可

重启问题解决

RTX 3060 CUDA、CUDNN 安装

CUDA 安装

按照 NVIDIA CUDA安装文档,安装 CUDA:

wget https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda-repo-debian12-12-3-local_12.3.2-545.23.08-1_amd64.deb

sudo dpkg -i cuda-repo-debian12-12-3-local_12.3.2-545.23.08-1_amd64.deb

sudo cp /var/cuda-repo-debian12-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/

sudo add-apt-repository contrib
如果command not found
执行:apt-get install software-properties-common

sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-3

执行完上述代码后,执行 nvcc --version 显示 command not found,则下面步骤解决:
首先,查看 cuda 的 bin 目录下是否有 nvcc:

cd /usr/local/cuda/bin

如果存在,直接将 cuda 路径加入系统路径即可:

vim ~/.bashrc
进入配置文件;
添加以下两行:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

然后更新配置文件:

source ~/.bashrc

再次执行 nvcc –version 就可以看到相应 cuda 版本了,如下:

CUDNN 安装

​在 NVIDIA CUDNN, 这里下载 deb 格式 (本文是 debian 系统),安装:

sudo dpkg -i cudnn-local-repo-debian11-8.9.7.29_1.0-1_amd64.deb  
sudo cp /var/cudnn-local-repo-ubuntu2204-8.6.0.163/cudnn-local-FAED14DD-keyring.gpg /usr/share/keyrings/  
sudo apt-get update  
sudo apt-get install libcudnn8=8.9.7.29-1+cuda12.2 # 这里输入到=按tab补全即可,安装运行库  
sudo apt-get install libcudnn8-dev=8.9.7.29-1+cuda12.2 # 通过tab自动补全,安装developer 库  
sudo apt-get install libcudnn8-samples=8.9.7.29-1+cuda12.2 # 通过tab自动补全,安装示例和文档

测试:

cp -r /usr/src/cudnn_samples_v8/ $HOME  
cd ~/cudnn_samples_v8/mnistCUDNN/  
make clean && make  
# 如果提示下面截图中的错误,就执行下面语句安装freeimage3库  
sudo apt-get install libfreeimage3 libfreeimage-dev


运行测试:

./mnistCUDNN

参考文章

ESXi6.7实现直通独显(RTX 3060)给Ubuntu炼丹 Ubuntu22.04+Nvidia驱动+Cuda11.8+cudnn8.6 一份保姆级的 Stable Diffusion 部署教程,开启你的炼丹之路 | 京东云技术团队 ESXi 中的 Debian 虚拟机安装 NVIDIA 显卡驱动

总结

### 文章总结
本文详细记录了在使用VMware ESXi 8.0和Debian GNU/Linux 12(bookworm)x86_64虚拟机环境中,安装NVIDIA GeForce RTX 3060显卡驱动、CUDA及CUDNN的完整过程。由于ESXi与Ubuntu的组合无法成功安装最新N卡驱动,作者转而采用ESXi与Debian的组合,并成功解决了驱动安装问题。
#### RTX 3060 显卡驱动安装
**主要过程**:
1. **虚拟机配置**:
- 锁定全部内存。
- 设置`hypervisor.cpuid.v0=FALSE`、`pciPassthru0.msiEnabled=FALSE`、`pciPassthru.use64bitMMIO=TRUE`及`pciPassthru.64bitMMIOSizeGB=24`(根据GPU显存调整)。
2. **Debian系统配置**:
- 添加`non-free-firmware`到apt源。
- 使用`apt`搜索并尝试安装NVIDIA驱动,但发现不支持RTX 3060。
**解决方案**:
1. **清理旧驱动**:使用`nvidia-uninstall`和`apt purge`命令清理旧驱动和配置。
2. **禁用nouveau驱动**:编辑`/etc/modprobe.d/blacklist-nvidia-nouveau.conf`和`/etc/modprobe.d/nvidia.conf`文件,禁用nouveau并启用NVIDIA驱动对不支持GPU的支持。
3. **下载并安装NVIDIA驱动**:从NVIDIA官网下载`.run`格式的驱动,并使用`-m=kernel-open`参数安装。
4. **解决kernel source tree missing问题**:通过安装匹配的`linux-headers`和`linux-image`解决。
#### RTX 3060 CUDA、CUDNN 安装
**CUDA安装**:
1. **下载并安装CUDA deb包**:从NVIDIA官网下载CUDA deb包,并使用`dpkg`和`apt`命令安装。
2. **配置环境变量**:将CUDA的bin和lib64目录添加到PATH和LD_LIBRARY_PATH环境变量中。
**CUDNN安装**:
1. **下载并安装CUDNN deb包**:从NVIDIA官网下载CUDNN deb包,并使用`dpkg`和`apt`命令安装运行库、开发库和示例。
2. **测试CUDNN**:编译并运行CUDNN示例程序以验证安装。
#### 参考文章
文章还提供了多篇参考文章链接,这些文章涵盖了ESXi中实现显卡直通、Ubuntu下NVIDIA驱动及CUDA/CUDNN的安装等相关内容,为读者提供了更全面的背景知识和解决方案。
### 总结
本文通过详细的步骤和解决方案,成功在ESXi 8.0和Debian 12虚拟机环境中安装了NVIDIA GeForce RTX 3060显卡驱动、CUDA及CUDNN,为在虚拟机中运行AI应用提供了有力支持。

更新时间 2024-09-06