Nvidia顯卡直通
centos最小化安裝。安裝好之后,檢查系統是否支持iommu
cat /proc/cmdline | grep iommu
如果沒有任何輸出,調整啟動項,有的話略過以下操作,跳到橫線以后
cd /etc/default #進入啟動選項主目錄 cp grub grub.bak #復制 vi grub
然后在grub中更改GRUB_CMDLINE_LINUX行,新加入以下內容
GRUB_CMDLINE_LINUX="intel_iommu=on pci-stub.ids=10de:xxx pci-stub.ids=10de:xxx" #忽略需要直通的顯卡總線的ID,并且啟動intel的內存管理單元
重新檢查啟動配置選項
grub2-mkconfig -o /boot/grub/grub.cfg
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg # uefi啟動用這個,不然無法啟動iommu
重啟電腦。
檢查
以上第一個階段結束。
檢查
cat /proc/cmdline | grep iommu #內核是否支持iommu
輸出結果:inter_iommu=on
dmesg |grep -e DMAR -e IOMMU # 驗證VT-D是否啟用
加載顯卡vfio驅動
modprobe vfio modprobe vfio-pci
記錄一下顯卡的地址,我是N卡。
lspci -nn | grep NVIDIA
3b:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:2204] (rev a1) 3b:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:1aef] (rev a1)
在服務器端卸載顯卡設備
find /sys/kernel/iommu_groups/ -type l #查出來之后將同一組的設備全部分離出去
virsh nodedev-detach pci_0000_3b_00_0 #通過上面的命令查出主線id virsh nodedev-detach pci_0000_3b_00_1
卸載顯卡驅動
lspci -vv -s 3b:00.0 | grep driver
#根據找到的驅動依次卸載
echo -n "0000:3b:00.1" > /sys/bus/pci/drivers/snd_hda_intel/unbind # 還有聲卡,他們是一組,我這里就偷懶了,方法一樣,只不過總線id不同
加載vfio
echo -n "10de 0fb9" > /sys/bus/pci/drivers/vfio-pci/new_id # 還有聲卡,他們是一組,我這里就偷懶了,方法一樣,只不過總線id不同
驗證顯卡設備是否加載vfio-pci驅動,加載成功
lspci -vv -s 3b:00.0 | grep driver # 還有聲卡,他們是一組,我這里就偷懶了,方法一樣,只不過總線id不同
#結果: Kernel driver in use: vfio-pci
下面開始虛擬機的操作
#在宿主機上編輯虛機的xml配置文件
virsh edit xxxx
#在設備標簽中添加如下內容:
<hostdev mode='subsystem' type='pci' managed='yes'> <source>
# bus slot function 分別為:0000:3b:0.0 中的后三部分 <address domain='0x0000' bus='0x3b' slot='0x00' function='0x0'/> </source> </hostdev>
啟動虛擬主機
下面就是虛機安裝驅動環節
1.安裝依賴環境:
yum install kernel-devel gcc -y
2.屏蔽系統自帶的nouveau
lsmod | grep nouveau #檢查系統自帶的驅動模塊

vi /lib/modprobe.d/dist-blacklist.conf #修改dist-blacklist.conf文件: # 將nvidiafb注釋掉,注意#和后面內容中間有空格 # blacklist nvidiafb # 然后添加以下語句: blacklist nouveau options nouveau modeset=0
# 重建initramfs image步驟
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
reboot # 重啟電腦
再次輸入
lsmod | grep nouveau
顯示結果為空,屏蔽成功,若沒有,網上再搜索相關的資料,直到輸出結果為空。
3.安裝驅動
貼上官方驅動地址:https://www.nvidia.cn/Download/index.aspx?lang=cn
下載好對應的顯卡驅動,我通過win11上傳到服務器端,找到對應的文件添加權限
chmod +x NVIDIA-Linux-x86_64-525.105.17.run
安裝
./NVIDIA-Linux-x86_64-525.105.17.run
激動人心的時候出現了
./NVIDIA-Linux-x86_64-525.105.17.run Verifying archive integrity... OK Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 525.105.17...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
最后貼一張圖
nvidia-smi


浙公網安備 33010602011771號