问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

二手G4560变身高性能AIO:Proxmox核显直通攻略

创作时间:
2025-01-21 17:55:47
作者:
@小白创作中心

二手G4560变身高性能AIO:Proxmox核显直通攻略

在Proxmox VE(PVE)环境下实现Intel第七代核显的直通,并通过HDMI输出画面,可以让你在低成本硬件上获得高性能的虚拟化体验。本文将详细介绍具体步骤和配置方法。

为什么需要这篇教程?

因为可以低价体验AIO(All-In-One)!在不能直通HDMI的核显直通方案中,体验是不完美的。例如,目前7代的G4560已经从三年前的400元,降低到30元,1折!
为什么G4560这么香呢?直接上CPUZ跑分图,然后解释
下面是热门小NAS的CPU性能,都以CPUZ作为参考:

  • J1900与J3455差不多,但J3455是4核心,J1900是2核心,CPUZ单核100
  • N4000和J4125差不多,J4135略强,单核200
  • N5105在单核250这个区间;
  • N100则接近单核400,与G4560单核接近,区别只是N100制程、还有核显强大很多
    前不久群里有朋友刷N4000的机器,pdd好像准系统400元拿下,我笑而不语(PS:未必CPU越强越适合)
    于是,我掏出了我的惠普hp400G3,准系统价格如下:
hp400G3 190元
电源线90w配套的 25元
合计:215元  

体积大小大约比iPhone大一点点,准系统差不多200元冒个头。CPU性能大约是J4125两倍,价格只要一半不到,阁下要如何应对呢?
上图,其实我改装过了,改成了双网口。不过双网口不是必备的,单臂路由一样可用。
完整一套机器和成本如下:

  
hp400G3 190元
电源线90w配套的 25元
CPU是4560 30元
内存4G   25元,两条8G,共50元
固态硬盘1:sata口 256G致钛sc001 110元
固态硬盘2:nvme口 傲腾M10 16G  15元
无线网卡转有线网卡:M.2 A+E KEY 转 RTL8111 32元  

组一个玩AIO的机器最终成品,注意是成品,不是准系统,合计:大约450元
可以这么说,目前正常价格下,500元以内AIO,这个性价比就是最高的!
我AIO后的虚拟机如下:
对于一个双核4现成的CPU来说,极限应该也就是这样了,解释一下为什么?
1、ikuai
因为家里有跑pcdn赚个电费,这玩意太吃上行带宽,不QOS真搞不定,ikuai的流控是刚需。真不想折腾ROS
2线程+1G内存+4G存储即可
2、openwrt
自编译,作为旁路由使用,兼顾部分其它功能,负责留学,DNS,穿透等
1线程+500M内存+1G存储即可
3、Windows10 22H
直通核显,成功硬解的同时,外接键鼠,可以浏览网页,打网游,接电视可以看片。也是本期重点
可以看到这里还是捉襟见肘的,毕竟4个线程而已,最多再虚拟个homeassitant基本极限了。
如果绝对线程不够,往上直接就蹦到N100了,超过1000元就可能amd5500/12代i3会更适合,这里不谈了
总之,这套作为入门级AIO,性价比极高,无论作为伺服,还是小白刚入手玩AIO都非常合适
下面开始正式教程

核显直通,HDMI输出画面

前提:
PVE8系统
HP400G3的小主机,CPU采用G4560
这个小主机只有DP接口,我是DP口成功输出画面,未必非要HDMI

legacy方式seabios+q35(seabios+i440fx)

一般核显直通采用UPT方案的ovmf+q35,这种能直通,但hdmi无法输出画面,想hdmi输出画面,还得seabios+q35
下面开始教程

换源

执行

  
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  

这里pvetools的简单使用就不多提了,自行查询使用即可

开启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"  

更新以生效

  
update-grub
​
reboot  

屏蔽驱动

编辑

  
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 HD Graphics 610 [8086:5902] (rev 04)
​  

id就是

  
8086:5902  

用于添加直通组

  
vi /etc/modprobe.d/vfio.conf  

我的是:

  
options vfio-pci ids=8086:5902  

下面这个是错误的,没有=1

  
options vfio-pci ids=8086:5902 disable_vga=1  

防止在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  

启动文件修改(关键)

  
vi /etc/default/grub  

最后添加核显

  
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream video=efifb:off,vesafb:off vfio-pci.ids=8086:5902"  
  
update-grub
​
reboot  

新建虚拟机

注意几个点:
1、如标题说的,用seabios+q35机型
2、内存要大于等于4G
3、与win10版本无关,亲测1903、最新的22H都可以实现
4、无须设置显示为none,必须是std标准,会开不了机。表现为必须有以下参数:

  
vga: std  

5、cpu的hidden可以不设置
6、qemu代理必须有,表现为必须有以下参数:

  
agent: 1  

7、不需要romfile或者其他什么vbios

添加参数

编辑虚拟机,我的是102虚拟机,自己根据实际情况修改

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

虚拟机配置文件第一行,加入下面(一般这个就行,可以照抄):

  
args: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-opregion=on
​  

我的虚拟机配置文件参考

  
  1 agent: 1                                         
  2 args: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-opregion=on
  3 balloon: 0
  4 bios: seabios
  5 boot: order=ide2;sata0
  6 cores: 4
  7 cpu: host
  8 cpulimit: 3
  9 ide0: local:iso/virtio-win-0.1.229.iso,media=cdrom,size=522284K
 10 ide2: local:iso/cn_windows_10_business_editions_version_1903_updated_sept_2019_x64_dvd_2f5281e1.iso,media=cdrom,size=5108536K
 11 machine: pc-q35-8.0
 12 memory: 5096
 13 meta: creation-qemu=8.0.2,ctime=1710945742
 14 name: winintel
 15 net0: virtio=72:50:BC:F4:AF:C5,bridge=vmbr0,firewall=1
 16 numa: 1
 17 ostype: win10
 18 sata0: local-lvm:vm-102-disk-1,size=40G,ssd=1
 19 scsihw: virtio-scsi-single
 20 smbios1: uuid=7d0a1290-d191-4c92-b15f-0135cb220802
 21 sockets: 1
 22 tpmstate0: local-lvm:vm-102-disk-2,size=4M,version=v2.0
 23 vga: std
 24 vmgenid: 2a1e0fa8-b373-4947-a739-dea70e6beafd  

不成功怎么办?

核显安装过程还是可能会出现死机,可以尝试:

  • 安装完“VirtIO Balloon Driver”PCI设备的驱动后正常关闭虚拟机再启动安装核显驱动
  • 在主板BIOS把共享显存调到最大(建议64M),提高虚拟机的CPU内存等配置
    最后,祝各位玩的愉快!附上成功输出画面(画面都输出了,核显能不调用么?)
    平时硬解4K H265还是ok的,不建议解码码率过高的视频,压力太大

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号