[Internal testing communication] deepin25 KVM显卡直通
Tofloor
poster avatar
菰城鸥鹭
deepin
2025-08-07 20:50
Author

引入

最近捣鼓KVM,做好了显卡直通,到了网卡桥接这一步卡住了,简单翻阅了WIKI以及大佬的帖子(未安装KVM可查考这篇文章),网卡桥接直通文末求助。

显卡直通

在安装好KVM的基础上 开启iommu

修改/etc/default/grub (vim命令: i插入 ESC切换 :wq 储存退出。也可用 nano 编辑,Ctrl+O回车储存,Ctrl+X退出)

sudo vim /etc/default/grub

添加“intel_iommu=on”到CRUB_CMDLINE_LINUX (下图的两种方法皆可)

image.png

GRUB_CMDLINE_LINUX="intel_iommu=on" #intel
GRUB_CMDLINE_LINUX="amd_iommu=on"#amd

更新grub

sudo update-grub

重启

sudo reboot

检查 iommu 是否处于开启状态

dmesg | grep -e DMAR -e IOMMU #intel
dmesg | grep AMD-Vi #amd用

image.png

注:没有卸载显卡驱动的,请执行 pkexec apt autoremove nvidia-*

pkexec apt autoremove nvidia-*

P.s. 进行此操作前做好快照备份以便不时之需

安装 VFIO 驱动

sudo modprobe vfio-pci

编辑 /etc/modules ,使 VFIO 驱动在系统启动时加载

sudo vim /etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

查找 NVIDIA 显卡的 PCI 设备 ID: lspci -nn | grep NVIDIA

lspci -nn | grep NVIDIA

image.png

以此为例 ID为 10de:1fb0

绑定到 VFIO 驱动

创建一个新的文件 /etc/modprobe.d/vfio.conf

添加 options vfio-pci ids=10de:1fb0 注:10de:1fb0自行替换

options vfio-pci ids=10de:1fb0

更新 initramfs

sudo update-initramfs -u

此时检验 nouveau 状态

lsmod | grep nouveau

目标:禁用,如果没有输出就是禁用好了

image.png

有输出创建 /etc/modprobe.d/blacklist.conf

将如下命令放入并保存

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

内核中直接禁用Nouveau

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

更新配置并重启

sudo update-initramfs -u
sudo reboot

有GUI的直接打开,添加PCI即可

image.png

恭喜你,现在可以愉快的玩耍了!

最后求助

各位大佬,大家有没有适合Deepin25 KVM网卡直通以及桥接的教程,看了大佬的帖子

桥接其中提到了
image.png

我在目录下创建了interfaces文件, ifconfig 获取的信息如下

image.png

执行了

sudo brctl addbr br0
sudo brctl addif br0 eno4

通过 sudo systemctl restart NetworkManager 重启了网络服务

另外也参考了 WIKI

任然没能桥接成功,各位大佬帮忙指点一下(桥接,直通我都要)sob

若使用NAT 提示虚拟网络‘default’NAT未激活

//查看是否开启
sudo virsh net-list --all
//开启网络
sudo virsh net-start --network default 

如果误删了默认NAT虚拟网络,可参考这篇文章 https://www.cnblogs.com/Undefined443/p/18822507

最后感谢 大佬 “忘记、过去”的回复,参考下方评论的方法即可实现桥接。

Reply Favorite View the author
All Replies
忘记、过去
deepin
2025-08-08 13:53
#1

创建一个网桥 br0 桥接物理网卡

看截图你的物理网卡是 eno4,MAC 地址 18:66:da:f2:be:67

nmcli connection add type bridge ifname br0 bridge.mac-address 18:66:da:f2:be:67
nmcli connection up bridge-br0
nmcli connection add type bridge-slave ifname eno4 master br0 con-name "Wired Connection"
nmcli connection up "Wired Connection"

然后就可以在 virt-manager 里面配置网卡桥接,网络源选择“桥接设备...”,设备名称写 br0 就行了

这样子虚拟机和主机就在一个网段了,如果没有 DHCP 在虚拟机里手动分配 IP 就好

Reply View the author
菰城鸥鹭
deepin
2025-08-08 19:09
#2
忘记、过去

创建一个网桥 br0 桥接物理网卡

看截图你的物理网卡是 eno4,MAC 地址 18:66:da:f2:be:67

nmcli connection add type bridge ifname br0 bridge.mac-address 18:66:da:f2:be:67
nmcli connection up bridge-br0
nmcli connection add type bridge-slave ifname eno4 master br0 con-name "Wired Connection"
nmcli connection up "Wired Connection"

然后就可以在 virt-manager 里面配置网卡桥接,网络源选择“桥接设备...”,设备名称写 br0 就行了

这样子虚拟机和主机就在一个网段了,如果没有 DHCP 在虚拟机里手动分配 IP 就好

感谢,成功连上了tail

Reply View the author