Ubuntu+KVM显卡透传

好久没有更新微博了,最近有点忙,大家见谅啊!今天带来的是我前段时间做的东西,也就是在 Ubuntu下做KVM虚拟机显科透传。
(最近人有点懒,其实有几次是有时间更新的,但是就是懒得动,唉!得保持清醒不能这样。)


前言

在做之前其实我在网上查了好多资料的,但是我发现现在网上上传资料特别水,好多都是复制粘贴,或者啰里啰唆讲不清楚,所以我也是决定自己做一份清楚有效的资料给大家!
显卡透传本来是工作内容,我自己做完发现还不错挺方便的,物理机是Ubuntu,KVM下的虚拟机是WIN10,完成后一个主机两个显示屏上的内容分别是Ubuntu、Win10,用起来挺方便的。


一、环境配置确认

Vt-d VT-X支持(确认主板和CPU都支持虚拟化技术,在BIOS将VT-d、VT-x设置成为enable)

1.确认VT-D是否正常
dmesg | grep -e DMAR -e IOMMU

2.测试是否支持虚拟化
egrep -o ‘(vmx|svm)’ /proc/cpuinfo查看是否有输出,有输出则正常。

3.通过查询本机显卡信息
lspci | grep -i vga

二、部署步骤

<
### 配置 Ubuntu 上 GPU 直通 Hyper-V #### 准备工作 为了使 GPU 可以被虚拟机访问,在物理服务器上的 BIOS 中开启 IOMMU 支持是必要的[^1]。对于 AMD CPU 来说,这通常被称为“AMD-Vi”,而对于 Intel,则称为“VT-d”。确保该选项已启用。 #### 修改 GRUB 参数 编辑 `/etc/default/grub` 文件来修改内核参数以便支持 PCI 设备分配给 KVM/QEMU 使用。然而针对 Hyper-V 的情况,虽然主要是在 Windows 下操作,但在 Linux 主机下同样需要类似的准备: ```bash sudo nano /etc/default/grub ``` 找到 `GRUB_CMDLINE_LINUX_DEFAULT` 这一行并加入如下内容(如果使用的是 Intel 处理器): ```text intel_iommu=on ``` 如果是 AMD 处理器则应改为: ```text amd_iommu=on ``` 保存更改后更新 grub 并重启计算机: ```bash sudo update-grub sudo reboot ``` #### 安装必要工具和服务 安装 QEMU 和 libvirt 工具集以及 ovmf 固件包用于创建 UEFI 启动环境下的 VMs: ```bash sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager ovmf ``` #### 创建桥接网络接口 (可选) 为了让虚拟机能通过宿主机连接外网,可以建立一个桥接适配器: ```bash sudo brctl addbr virbr0 sudo ip link set dev virbr0 up ``` #### 设置 GPU 直通 由于 Hyper-V 更多应用于 Windows 系统作为宿主操作系统的情况,在 Ubuntu 或其他 Linux 发行版上实现 GPU 直通通常是借助于 KVM/QEMU 技术而不是原生的 Hyper-V 功能。因此这里提供基于 KVM/QEMU 实现的方法。 要让特定的 GPU 能够被递至虚拟机内部,首先得识别出目标设备 ID 。可以通过 lspci 命令查看所有 PCIe 设备列表及其对应的 Vendor:Device IDs : ```bash lspci -nnk | grep -A 3 VGA ``` 记录下想要给虚拟机使用的那张显卡的具体信息,比如 NVIDIA GeForce GTX XXXX, 其 vendor id/device id 形式为 `8086:abcd` (仅作示意)。接着利用 vfio-pci 加载模块加载此硬件资源,并将其排除在系统默认驱动之外: ```bash echo "options vfio-pci ids=<vendor>:<device>" | sudo tee /etc/modprobe.d/vfio.conf ``` 最后一步就是构建新的 XML 描述文件定义新创建出来的 Guest OS ,并将之前获取到的那个 GPU 对象添加进去成为它的专属独占资源之一;或者也可以直接用图形界面管理工具 Virt-Manager 来完成这项任务。 需要注意的是上述过程适用于大多数情况下基于 KVM/QEMU 架构搭建起来的服务端平台之上进行的操作指导,而并非严格意义上的 “Hyper-V on Ubuntu”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值