前言
很久没折腾过Hetzner的杜甫了,尤其在EX44投入生产环境之后,基本求稳定没怎么折腾了。就在前几天,Hetzner上架了i5-12500的拍卖机,月付仅30欧,站长随即购买了一台,发现这台拍卖机使用的还是两块全新的三星PM9A1硬盘,这下EX44可以退掉了,所有项目都可以转移到这台拍卖机上,毕竟这台拍卖机和EX44只是CPU不同一个12500一个13500,价格却差了14欧,太香了。
站长之前在EX44上安装PVE的时候,debian12还没发布,PVE也是7.4,所以在这台拍卖机上要安装debian12,并在debian12上安装PVE8.0。基本就是重装了,正好有时间折腾一下核显直通。
过程
bios设置
在开始折腾前,需要去Hetzner控制面板申请IPMI,然后修改部分bios设置。
1.bios里默认核显是关闭的,需要打开。
按F1(Delete)进bios--选择初始化IGPU--enbale
首选显卡选择 CPU graphics (一定要选这个)
-
打开vd-t以及IOMMU
-
打开bios里SR-IOV
安装PVE
安装debian12和检查IGPU
首先需要安装debian12,截至站长写文,Hetzner控制面板还没提供debian12镜像,需要去Hetzner的救援模式里用Installimage安装debian12.
Hetzner社区的Installimage使用教程:Installimage
在bios里打开核显之后,安装完debian12后默认就打开IGPU的,若IGPU没打开,需手动打开debian的IGPU,相关教程可以参考站长之前的教程:
检验IGPU是否开启:
shell输入:
ls -la /dev/dri
若返回类似下面即GPU已打开
drwxr-xr-x 3 root root 100 Mar 2 17:57 .
drwxr-xr-x 20 root root 4400 Mar 2 17:57 ..
drwxr-xr-x 2 root root 80 Mar 2 17:57 by-path
crw-rw---- 1 root video 226, 0 Mar 16 19:55 card0
crw-rw---- 1 root video 226, 128 Mar 16 19:55 renderD128
安装PVE
debian12安装PVE可以参考PVE官方教程:
Install Proxmox VE on Debian 12 Bookworm
也可以参考站长之前的文章:Hetzner独服折腾日记二—安装PVE
-
修改hosts和hostname
如果您的 IP 地址是192.168.15.77,您的主机名是prox4m1,那么您的/etc/hosts文件可能如下所示:
127.0.0.1 localhost.localdomain localhost 192.168.15.77 prox4m1.proxmox.com prox4m1 # 以下行适用于支持 IPv6 的主机 ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
重启后输入
hostname --ip-address 192.168.15.77 #
应该在这里返回你的IP地址
-
调整sources.list
添加 Proxmox VE 存储库
echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
将 Proxmox VE 存储库密钥添加为 root(或使用 sudo):
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
-
更新存储库和系统
apt update && apt full-upgrade
-
安装 Proxmox VE 内核
apt install pve-kernel-6.2 systemctl restart
-
安装 Proxmox VE 软件包
apt install proxmox-ve postfix open-iscsi chrony
-
删除 Debian 内核
apt remove linux-image-amd64 'linux-image-6.1*'
更新grub
update-grub
-
删除 os-prober 软件包
apt remove os-prober
到此PVE安装完成,关于网络配置可以参考站长之前的文章:
编译SR-IOV
开源项目:https://github.com/strongtz/i915-sriov-dkms
-
安装dmks
apt install build-* dkms
-
安装PVE headers 以及firmware
首先查看PVE内核
uname -r 6.2.16-14-pve
安装同内核headers
apt install pve-headers-6.2.16-14-pve -y
安装firmware
apt install -y pve-firmware
-
拉取项目
若没安装git,先安装git
apt install -y git
git clone https://github.com/strongtz/i915-sriov-dkms.git
编辑dkms.conf
PACKAGE_NAME="i915-sriov-dkms" PACKAGE_VERSION="6.2"
PACKAGE_VERSION和PVE内核版本一致
修改完后,将i915-sriov-dkms复制到/usr/src
cp -r /root/i915-sriov-dkms/ /usr/src/i915-sriov-dkms-6.2
进入i915-sriov-dkms-6.2目录
cd /usr/src/i915-sriov-dkms-6.2
编译
dkms install -m i915-sriov-dkms -v 6.2
编译后检查状态
dkms status i915-sriov-dkms/6.2, 6.2.16-14-pve, x86_64: installed
-
修改grub
编辑/etc/default/grub,修改为:
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on i915.enable_guc=3 i915.max_vfs=7"
更新grub
update-grub
-
编辑/etc/modules,添加:
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
更新:
update-initramfs -u
-
安装sysfsutils
apt install sysfsutils -y
检查pci设备
lspci | grep "VGA" 00:02.0 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 770] (rev 0c) VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 770] (rev 0c)
00:02.0 即你的显卡
-
修改sysfs来启用VF
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf
-
重启
reboot
-
检查是否成功:
lspci | grep "VGA" 00:02.0 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 770] (rev 0c) 00:02.1 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 770] (rev 0c) 00:02.2 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 770] (rev 0c) 00:02.3 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 770] (rev 0c) 00:02.4 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 770] (rev 0c) 00:02.5 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 770] (rev 0c) 00:02.6 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 770] (rev 0c) 00:02.7 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 770] (rev 0c)
‘若出现7个显卡设备,即成功。
安装Windows
-
添加Windows镜像
微软官网下载Windows11 iso镜像:
官网:https://www.microsoft.com/zh-cn/software-download/windows11
PVE里 local-iso镜像-从URL下载:
-
安装Windows VirtIO Drivers驱动
官方下载链接:https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers
驱动链接:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
-
创建虚拟机
选择下载的Windows镜像
-
机型选择q35 ,SCSI 选择VirtIO SCSI, Qemu代理打勾,BIOS选择OVEF,Windows还要添加TPM2.0。
-
硬盘--总线选择SCSI,缓存选择回写,丢弃打勾。
-
CPU要选择host 类别。
-
网络选择VirtIO(半虚拟化)
-
创建虚拟机之后添加cd/dvd驱动器,选择下载的Windows VirtIO Drivers驱动。
-
启动虚拟机要安装Windows VirtIO Drivers驱动,否则找不到硬盘,读不到网卡。
安装balloon、NETKVM、vioscsi三个驱动
-
安装过程中,若需要离线安装,在网络配置界面,按shift+F10,调出CMD,输入 OOBEBYPASSNRO,然后系统会自动重启。
-
系统安装完之后,配置完网络,开启远程连接(一定)
-
关机Windows虚拟机。
在Windows虚拟机--硬件--添加PCI设备--Raw Device-会看到7个显卡设备,随便选中一个,所有功能不要打勾--开机。
-
Windows开机--打开设备管理器--发现已经识别核显
等待系统自动更新安装英特尔核显驱动
-
确认远程连接开启之后,再次关闭Windows虚拟机。
在刚才添加的显卡设备里主GPU打勾
硬件--显示--修改为 无
Windows虚拟机开机之后,PVE的控制台已经无法连接上Windows虚拟机,只能通过RDP协议 3389端口连接上虚拟机。
通过远程桌面连接上Windows虚拟机后--打开任务管理器--性能栏里--若出现GPU0,并且工作,表示核显直通完成。
结尾
11代之后的核显直通还是有一丢丢麻烦的,杜甫的话,也可以直接使用Windows做宿主机系统的,对核显的支持也更好,不过玩机嘛,折腾最大啦。
文章版权归作者所有。发布者:白嫖怪,转转请注明出处:https://c7pai.com/1386/