【教程】PVE下uhd630核显直通HDMI输出 以NUC9为例村雨Murasame

大家好,村雨本雨又来发教程了

最近在搞小主机,之前hp400g3仅仅200多元成功核显直通HDMI,作为简单NAS、解码机、伺服机、中控都非常棒,待机仅9w

村雨Murasame:【教程】7代核显直通HDMI成功输出画面 PVE下7代intel核显直通14 赞同 · 4 评论文章​编辑

最近又搞了个NUC9i5版本,准备弄个双系统同时用,这是核显直通并输出HDMI的教程。

这个方法和之前惠普小主机方案还不太一样,折腾了好久,拿出来做个图文教程吧


核显直通

笔记本核显跟台式机不一样,不能学hp400g3这种用seabios+q35的方式,要用ovmf+i440的形式

基于PVE8新的8.2.2,差别不大就行

换源

执行

apt install apt-transport-https ca-certificates

先更改

vi /etc/apt/sources.list

原来的注释或全部删除,用下面的代替

# 8.0清华源
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
​
# security updates
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

更改

vi /etc/apt/sources.list.d/pve-enterprise.list

用下面的代替

# 8.0
deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription

PVE8还需要改一下ceph

vi /etc/apt/sources.list.d/ceph.list

修改:

deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription

最后更新一下:

apt-get update

pvetools

先删除企业源:

rm /etc/apt/sources.list.d/pve-enterprise.list

可以采用下面的命令:

export LC_ALL=en_US.UTF-8
apt update && apt -y install git && git clone https://gitee.com/fanjinhong/pvetools8.git && chmod -R 777 ~/pvetools8

启动工具(cd到目录,启动工具)

cd ~/pvetools
​
./pvetools.sh

这个工具自己进行一下基本设置就行了,不再赘述

开启IOMMU

此步骤几乎为必须,启动内核IOMMU支持

vi /etc/default/grub

修改/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream video=efifb:off,vesafb:off video=simplefb:off vfio-pci.ids=8086:3e9b"

更新以生效

update-grub

屏蔽驱动

编辑

vi /etc/modprobe.d/blacklist.conf

添加内容

# block AMD driver
blacklist radeon
blacklist amdgpu
​
# block NVIDIA driver
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
​
# block INTEL driver
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
​
options vfio_iommu_type1 allow_unsafe_interrupts=1
​

加载相应的内核模块

vi /etc/modules

追加,有了就不需要了

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

将设备加入进vfio

找到id

lspci -D -nnk | grep VGA

得到

0000:00:02.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-H GT2 [UHD Graphics 630] [8086:3e9b]
​

id就是

​
uhd630 8086:3e9b
​

用于添加直通组

vi /etc/modprobe.d/vfio.conf

我的是:

options vfio-pci ids=8086:3e9b
​

防止在win10中显卡代码43

添加options防止VM死机

vi /etc/modprobe.d/kvm.conf

追加

options kvm ignore_msrs=1

信任设备 允许不安全中断

echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf

更新配置

更新内核并重启PVE

update-initramfs -u -k all

reboot

虚拟机win10的安装配置

基本的安装配置就省略了,说一下关键点:

修改虚拟机配置

vim /etc/pve/qemu-server/101.conf

仅供参考

  1 agent: 12 args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on3 balloon: 04 bios: ovmf5 boot: order=sata06 cores: 47 cpu: host8 hostpci0: 0000:00:02.0,legacy-igd=1,romfile=intel.rom9 ide2: local:iso/virtio-win-0.1.248.iso,media=cdrom,size=715188K10 machine: pc-i440fx-8.111 memory: 500012 meta: creation-qemu=8.0.2,ctime=171140256313 name: win10intelNUC914 net0: virtio=32:AB:FA:FF:FF:A4,bridge=vmbr0,firewall=115 numa: 116 ostype: win1017 sata0: local:101/vm-101-disk-0.qcow2,size=64G,ssd=118 scsihw: virtio-scsi-single19 smbios1: uuid=fd552288-cbaf-4abf-9da8-9000b26a336e20 sockets: 121 startup: up=3022 usb0: host=17ef:6054,usb3=123 usb1: host=320f:5088,usb3=124 vga: none25 vmgenid: 23cba06d-5792-40bd-a334-0c8482e2ab7a

主要注意几个点:

1、args参数这一行

args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on

2、hostpci0这一行

hostpci0: 0000:00:02.0,legacy-igd=1,romfile=intel.rom

注意,romfile这个文件要自己下载,下载地址是:

https://www.123pan.com/s/20P0Vv-d2A6H.html

3、vga,记得设置为none,因为已经设置了“legacy-igd=1”,因此必须为none

遗留问题

1、直通雷电口,发现并不能使用

2、找不到声卡,无法通过HDMI输出声音

先到这里吧,后续又机会再补充,我是村雨,下期见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/31770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对象引用和对象赋值的区别

这两段代码的输出不同是因为对象引用和对象赋值的区别。 第一段代码: var controlPoints [{ x: 100, y: 200 }]; let obj null;controlPoints.forEach(item > {obj item; });obj.x 300; obj.y 500;controlPoints[0];第二段代码: var controlP…

数仓中数据分层的标准流向解读

在大数据开发中,数据分层是一个至关重要的概念。合理的数据分层可以有效地提升数据处理的效率和质量。本文将详细介绍数据分层的标准流向和相关注意事项,并结合实际应用进行说明。 数据分层的标准流向 根据行业标准,数据分层的标准流向如下…

IOS开发学习日记(十五)

目录 App启动过程及生命周期 App的启动 UIApplication UIApplicationDelegate 通过App生命周期回调实现启动页 闪屏的实现 简单实现闪屏功能 App启动过程及生命周期 App的启动 main函数前 动态链接 / 二进制文件加载 / runtime / 类的加载 ...... main函数 int main(int…

数据结构-线性表的顺序表示

目录 前言一、线性表1.1 线性表的概念1.2 线性表的逻辑特征 二、线性表的抽象数据类型三、线性表的顺序表示和实现3.1 线性表的顺序表示3.2 基本操作的实现 总结 前言 本篇文章介绍线性表的基本概念,并使用顺序存储结构实现线性表。 本篇文章使用的程序设计语言为C…

使用ANSI转义序列设置终端文本颜色

在使用ANSI转义序列设置终端文本颜色时,背景颜色和文本(前景)颜色的区分主要通过不同的ANSI代码来实现。ANSI转义序列使用格式为\033[代码m的结构,其中\033是转义字符(等同于\e),m指示颜色设置的…

Python with MATLAB

Python with MATLAB 原文:Python with MATLAB - 知乎 (zhihu.com) 我问来自俄罗斯的实习生,你对网上争辩MATLAB和Python谁好谁坏有什么看法。实习生表示他不会Python,但是只要能完成老板布置的工作,哪个语言都无所谓。再说了&am…

c#调用c++生成的dll,c++端使用opencv, c#端使用OpenCvSharp, 返回一张图像

c代码&#xff1a; // OpenCVImageLibrary.cpp #include <opencv2/opencv.hpp> #include <vector> extern "C" { __declspec(dllexport) unsigned char* ReadImageToBGR(const char* filePath, int* width, int* height, int* step) { cv::Mat i…

事件驱动架构详解:触发与响应构建高效系统

目录 前言1. 事件驱动架构概述1.1 什么是事件1.2 事件驱动架构的核心概念 2. 事件驱动架构的实现2.1 基于消息队列的实现2.2 基于发布-订阅模式的实现2.3 基于流处理的实现 3. 事件驱动架构的优势3.1 松耦合性3.2 可扩展性3.3 异步处理3.4 灵活性 4. 事件驱动架构的应用场景4.1…

【深度学习】记录为什么没有调用GPU

排查CLIP为什么评测推理没有调用GPU&#xff0c;主要是这个代码&#xff1a;https://github.com/OFA-Sys/Chinese-CLIP/blob/master/cn_clip/eval/extract_features.py 第一次认为&#xff1a;因为model并没有to.cuda()。 但是又发现&#xff0c;model.cuda(args.gpu) # 已经加…

机器学习常见知识点 3:Boosting集成学习技术和XGB、LGB

文章目录 1、Boosting 的工作原理常见的 Boosting 算法优点和缺点如何进行加权投票 2、XGB1. XGBoost中的梯度提升2. 目标函数3. 树的构建与优化4. 处理缺失值与特征重要性 3、LGB核心特征1. 基于直方图的决策树学习2. 叶子优先策略3. 处理类别特征4. 缺失值处理 工作原理数据预…

镜像发布至dockerHub

1、login 没有账号的话去注册一个 https://hub.docker.com docker login 输入账号密码和账号2、修改镜像名格式 可以直接招我的修改 格式为你的 hub名/镜像名 3、推送

svm和决策树基本知识以及模型评价以及模型保存

svm和决策树基本知识以及模型评价以及模型保存 文章目录 一、SVM1.1&#xff0c;常用属性函数 二、决策树2.1&#xff0c;常用属性函数2.2&#xff0c;决策树可视化2.3&#xff0c;决策树解释 3&#xff0c;模型评价3.1&#xff0c;方面一&#xff08;评价指标&#xff09;3.2&…

DockerHub 镜像加速

Docker Hub 作为目前全球最大的容器镜像仓库&#xff0c;为开发者提供了丰富的资源。Docker Hub 是目前最大的容器镜像社区&#xff0c;DokcerHub的不能使用,导致在docker下pull镜像无法下载,安装kubernetes镜像也受到影响,下面请看解决方式。 1.加速原理 Docker下载加速的原理…

Android基于MediaBroswerService的App实现概述

mSession.setPlaybackState(mStateBuilder.build()); // 5. 关联 SessionToken setSessionToken(mSession.getSessionToken()); } } 根据包名做权限判断之后&#xff0c;返回根路径 Override public BrowserRoot onGetRoot(String clientPackageName, int clientUid, Bundl…

如何生成protobuf文件

背景 protobuf是一种用于序列化结构数据的工具&#xff0c;实现数据的存储与交换&#xff0c;与编程语言和开发平台无关。 序列化&#xff1a;将结构数据或者对象转换成能够用于存储和传输的格式。 反序列化&#xff1a;在其他的计算环境中&#xff0c;将序列化后的数据还原为…

FreeBSD通过CBSD管理低资源容器jail 网络NAT配置

jail容器里的系统有时候并不需要公开的地址&#xff0c;所以给它们配置内网地址即可。但是这些系统一般都有上网的需求&#xff0c;这时候可以使用nat进行解决。 CBSD可以配置NAT规则&#xff0c;只需要命令cbsd natcfg&#xff0c;配置好后cbsd naton启动即可&#xff1a; % …

Vue3.4新增的defineModel的使用

define-model的作用 在3.3及之前的版本&#xff0c;父子组件之间的通讯&#xff0c;一直都是靠props&#xff08;父传子&#xff09;和emit&#xff08;子传父&#xff09;来实现。而define-model整合了这两种方法&#xff0c;只需要在父组件中定义define-model的方法&#xf…

Spring容器中的Bean作用域

在Spring框架中&#xff0c;开发者确实主要关注两件事&#xff1a;开发Bean和配置Bean。Spring容器负责根据配置文件或注解来创建Bean实例&#xff0c;并通过依赖注入&#xff08;DI&#xff09;来管理Bean之间的依赖关系&#xff0c;这体现了控制反转&#xff08;IoC&#xff…

GIT回滚

1. 使用 git revert git revert 命令会创建一个新的提交&#xff0c;这个提交会撤销指定提交的更改。这通常用于公共分支&#xff08;如 main 或 master&#xff09;&#xff0c;因为它不会重写历史。 git revert HEAD # 撤销最近的提交 # 或者指定一个特定的提交哈希值 …

实际中应对网络丢包故障的方法

1.网络数据包发送时通时断&#xff0c;丢包严重 故障现象&#xff1a;通常故障发生时&#xff0c;该方向网络出现震荡性中断。使用Ping命令测试&#xff0c;发现在一段时间内数据包发送延时比正常值略高&#xff0c;间隔一小段时间数据包又全部丢失&#xff0c;丢包率超过60%&a…