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

news2024/11/27 14:44:34

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

最近在搞小主机,之前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: 1
  2 args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on
  3 balloon: 0
  4 bios: ovmf
  5 boot: order=sata0
  6 cores: 4
  7 cpu: host
  8 hostpci0: 0000:00:02.0,legacy-igd=1,romfile=intel.rom
  9 ide2: local:iso/virtio-win-0.1.248.iso,media=cdrom,size=715188K
 10 machine: pc-i440fx-8.1
 11 memory: 5000
 12 meta: creation-qemu=8.0.2,ctime=1711402563
 13 name: win10intelNUC9
 14 net0: virtio=32:AB:FA:FF:FF:A4,bridge=vmbr0,firewall=1
 15 numa: 1
 16 ostype: win10
 17 sata0: local:101/vm-101-disk-0.qcow2,size=64G,ssd=1
 18 scsihw: virtio-scsi-single
 19 smbios1: uuid=fd552288-cbaf-4abf-9da8-9000b26a336e
 20 sockets: 1
 21 startup: up=30
 22 usb0: host=17ef:6054,usb3=1
 23 usb1: host=320f:5088,usb3=1
 24 vga: none
 25 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.coloradmin.cn/o/1848649.html

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

相关文章

多路h265监控录放开发-(8)完成摄像机管理的修改和删除功能

xviewer.h public:XViewer(QWidget* parent Q_NULLPTR);//编辑摄像机void SetCam(int index);//121 public slots:void AddCam(); //新增摄像机配置120void SetCam(); //121void DelCam(); //121 private:Ui::XViewerClass ui;QMenu left_menu_; xviewer.cpp void XView…

2024最新1小时零基础编写uniapp和小程序管理后台,基于uniadmin和vue3实现uniapp小程序的网页管理后台

一,创建uniAdmin项目 打开开发者工具Hbuilder,然后点击左上角的文件,点新建,点项目。如下图。 选择uniadmin,编写项目名,然后使用vue3 记得选用阿里云服务器,因为最便宜 点击创建,等待项目创…

Postman 接口测试 安装使用教程

1 下载官网:https://www.postman.com/downloads/ 2 方便下载,特提供百度云网盘: 链接:Postman 3 windows10 安装,点击安装包 #自动安装,并打开 4 举例,比如豆瓣,get 查询时间,图片登 5 举例&#xff0…

Android网络编程之Http通信

//使用HttpURLConnection打开连接 2.HttpURLConnection urlConn (HttpURLConnection) url.openConnection(); //得到读取的内容(流) 4.InputStreamReader in new InputStreamReader(urlConn.getInputStream()); // 为输出创建BufferedReader BufferedReader buffer new …

小米测开二面—80min中核

小米测开二面—80min中核 3.28 无自我介绍直接开问!你的第一份实习是一个开发工作你的第二实习为什么又跑到测试了你的第一份实习遇到了哪些挑战你的逆向开发的开发目标是什么,使用了什么工具你最终开发落地是用在了什么方面上,比如机器人路…

【FPGA + Nvidia/算能GPU+AI】自动驾驶多核异构实现 16路车载摄像头实时AI分析解决方案

基于 Xilinx 公司ZYNQ Ultrascale MPSoC系列 FPGA 芯片设计,应用于无人驾驶、慢速特种车及数据采集车、车载仿真测试系统等自动驾驶领域 自动驾驶:16通道车载摄像头PCIE采集卡方案。 16 通道摄像头 最多支持 16 通道 GMSL1/2 摄像头输入 8MP 摄像头 最…

[火灾警报系统]yolov5_7.0-pyside6火焰烟雾识别源码

国内每年都会发生大大小小的火灾,造成生命、财产的损失。但是很多火灾如果能够早期发现,并及时提供灭火措施,将会大大较小损失。本套源码采用yolov5-7.0目标检测算法结合pyside6可视化界面源码,当检测到火灾时,能否发出…

BGP路由反射器实验

实验内容: 通过本实验验证bgp路由反射器的规则 1. 从client收到的路由更新,反射到non-client和client,同时发送给EBGP邻居 2. 从non-client收到的路由更新,只反射到client,同时发送给EBGP邻居 3. 从EBGP邻居收到的路…

多路h265监控录放开发-(8)通过XCameraWIget类拖拽实现指定播放rtsp和窗口

首先修改xviewer的构造函数&#xff0c;把创建QWiget对象改为XCameraWiget对象&#xff0c;执行XCameraWiget类的构造函数 xcamera_widget.h #pragma once #include <QWidget> class XCameraWidget :public QWidget {Q_OBJECTpublic:XCameraWidget(QWidget* p nullptr)…

【六】【QT开发应用】信号和信号槽的五种写法

第一种写法 第二种写法 第三种写法 第四种写法 第五种写法 完整代码 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow …

【STM32--Cortex-M3】

STM32-Cortex-M3 ■ Cortex-M3 处理器内核到基于Cortex-M3的MCU■ ARM的各种架构版本■ 指令集■ Cortex-M3简介■ Cortex-M3寄存器组■ Cortex-M3■ Cortex-M3■ Cortex-M3 ■ Cortex-M3 处理器内核到基于Cortex-M3的MCU Cortex-M3处理器内核是单片机的中央处理单元&#xff…

Linux系统开机自启动脚本(案例:Raspberry Pi 4B脚本)

前言&#xff1a;本篇博客为手把手教学的 Linux 系统开机自启动脚本教程&#xff0c;且额外包含有 Raspberry Pi 4B 的开机自启动案例。日常工程项目中往往需要 Linux 系统能够自启动一些代码程序&#xff0c;本篇博客利用虚拟机下的 Ubuntu 自启动脚本来进行教学&#xff0c;且…

React的State和setState

如何确地使用 State 不要直接修改 State.修改State应该使用 setState():构造函数是唯一可以给 this.state 赋值的地方 State 与 props 类似&#xff0c;但是 state 是私有的&#xff0c;并且完全受控于当前组件 我们可以在我们的自定义组件中添加私有的State jcode class C…

mac怎么压缩pdf文件,苹果电脑怎么压缩pdf文件大小

在当今数字化时代&#xff0c;PDF文件已成为广泛使用的文档格式之一。然而&#xff0c;PDF 文件可能会因其包含的图像、图形和其他元素而导致文件较大&#xff0c;这可能会影响文件的传输、存储和共享。因此&#xff0c;对 PDF 文件进行压缩以减小其文件大小是很有必要的。今天…

【详细】一步一步实现一个BP神经网络-逐行代码解说

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ ​ 要如何使用代码实现一个BP神经网络呢&#xff1f; 下面跟随笔者&#xff0c;一步一步详细来实现&#xff0c;再对代码进行详细解说。 通过本文可以详细掌握怎么使用matlab来实现一个BP神经网络。 一、一步一步实…

MFC GDI绘制卡通人物

文章目录 主要代码完整visual studio工程下载主要代码 // DrawFrogView.cpp : implementation of the CDrawFrogView class //#include "stdafx.h" #include "DrawFrog.h"#include "DrawFrogDoc.h" #include "DrawFrogView.h"#includ…

路由器基础配置以及静态路由配置

1、搭建网络 搭建网络拓扑、分配IP地址、划分网段、连接端口 2、配置路由器 路由器基础配置 //进入全局配置模式 Router#enable Router#conf t Enter configuration commands, one per line. End with CNTL/Z.//配置高速同步串口serial2/0 Router(config)#int ser2/0 Route…

html侧导航栏客服栏

ico 替换 ICO <html xmlns"http://www.w3.org/1999/xhtml"><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><title>返回顶部</title><script src"js/jquery-2.0.3.min.js"…

gitlab升级16.11.3-ee

背景 这是事后一段时间补充记录的博客。 升级目的&#xff1a;修补漏洞CVE-2024-4835 未经认证的威胁攻击者能够利用该漏洞在跨站脚本 (XSS) 攻击中&#xff0c;轻松接管受害者账户。 gitlab版本为14.6.2-ee升级至16.11.3-ee 思路 翻阅文档找升级方法及升级版本路径。使用…

HarmonyOS父子组件传递参数

HarmonyOS父子组件传递参数 1. 使用State和Prop进行父子组件传递———注意是单向同步 Prop装饰器&#xff1a;父子单向同步 注意&#xff1a;只支持单向同步&#xff0c;同时也只能支持string\number\boolean\enum比较简单的类型。 代码 // 使用 props 进行父子组件传值…