ALL in one 记录二(PVE 初装设置&核显直通&HTPC相关设置)
因为新购入了主机,需要重新调试 PVE ,在这里做一些记录
PVE初装
1. BIOS设置
1)debian 默认 BIOS 时间为 UTC 时间,时间不对的情况下会造成主机开启关闭状态显示不正常,并造成令牌验证失败频繁退出登录,所以最好调整 BIOS 时间为 UTC 时间
PVE 安装时间同步软件也可以,但是初装电脑,开机网络不通的时候虚拟机开关会造成以上问题,所以推荐直接改 BIOS 时间
2)确认开启虚拟化
根据需要确认开启或关闭 CSM 、CPU 节能、板载声卡、来电自启动等选项(CPU C6/C7/C10 等节能请确认硬件支持再开启,以免造成低负载随机死机)
2. PVE安装
官网下载镜像:https://www.proxmox.com/en/downloads
使用 U盘刻录软件刻录即可,我这里使用的是 balenaEtcher
为了方便设置管理口,只插上一根自动分配IP的网线到要要设置的管理口上,IP 可以在安装界面上更改,主要是为了分辨网口编号
(尽量不要使用板载网卡,有些主板官方内核板载网卡、板载声卡等设备无法拆分,会导致后续声卡直通时出问题,我这里从 I340T4 里面选了一个口作为管理口使用)
3. PVE设置
1)删除 local-lvm 分区,只留下 local 分区
避免空间浪费,而且 PVE 首页上显示的空间剩余指的是 local 分区,我使用 J4125 的时候就发生过一次 local-lvm 塞满造成的 IO-err,推荐新装 PVE 时进行设置,不然还要备份还原虚拟机,比较麻烦
1 | lvremove pve/data |
数据中心-存储-删除local-lvm
选择local,编辑,在内容里添加磁盘映像和容器
如果需要还原之前的虚拟机,则需要使用如下命令(无法使用 WEB 页面还原,因为储存位置不一致)
1 | qmrestore /var/lib/vz/dump/vzdump-qemu-101-2022_05_19-19_07_41.vma.zst 101 -storage local |
2)换源、关闭订阅、首页温度提示等操作
参考:
https://github.com/xiangfeidexiaohuo/ProxmoxVE-7.0-DIY
http://songw.top/archives/748.html
https://zry.io/archives/285
3)主页显示温度
使用环境:
sensors 有风扇(fan:)、CPU温度(Package id 0:)、PCI温度(PECI Agent 0: )输出,一块 NVME、两块 SATA
恩山代码已做空值错误处理
详细说明:
https://www.right.com.cn/forum/thread-8236620-1-1.html
1 | 更新软件包列表: |
1 | 备份 |
1 | 制作补丁 |
4. 直通篇
大同小异,只说一些坑和一些配置说明
1)/etc/default/grub 文件
据说 video=vesafb:off,efifb:off 已经无法使用(大概在7.x版本)
需要改成 video=vesafb:off video=efifb:off
如果是 pve-kernel 5.15 可能还需要 video=simplefb:off
详见:
https://forum.proxmox.com/threads/pve7-failed-to-mmap-xxxx-xx-xx-x-bar-3-performance-may-be-slow.108129/
https://forum.proxmox.com/threads/gpu-passthrough-not-working-bar-3.60996/
2)直通分组
如果你的硬件分组像我这样子,即使在 /etc/default/grub 文件中添加了 pcie_acs_override=downstream 参数依然无法拆分
00:1f.3 9 Audio device: Intel Corporation Comet Lake PCH cAVS
00:1f.4 9 SMBus: Intel Corporation Comet Lake PCH SMBus Controller
00:1f.5 9 Serial bus controller [0c80]: Intel Corporation Comet Lake PCH SPI Controller
00:1f.6 9 Ethernet controller: Intel Corporation Ethernet Connection (11) I219-V
有以下解决方案
- 自行编译内核拆分设备
- 对这台虚拟机直通该分组下的所有设备(或者点击直通所有功能,如果这样做,该分组下所有设备都将不能被其他虚拟机使用,尤其要确认你的管理网口不在这个分组下)
3)直通设备数量
PVE 模拟了主板的真实工作状态,所以 PCI、SATA、USB 都是有直通上限的,如果使用了超过上限的直通设备(包括写在 /etc/pve/nodes/pve/qemu-server/xxx.conf 文件下的直通设备),开机会就会报 400 错误
Parameter verification failed. (400)
undefined: property is not defined in schema and the schema does not allow additional properties
有以下解决方案
- 编辑 /etc/pve/nodes/pve/qemu-server/xxx.conf 文件,使用这样的参数(可能需要这些设备在一个分组下)
hostpci1: 00:1f.3;00:1f.4;00:1f.5;00:1f.6
- 直通整个分组(修改文件或在 WEB 页面中选中 所有功能)
hostpci1: 00:1f
- 直通整个控制器,如 USB 控制器
00:14.0 USB controller: Intel Corporation Comet Lake USB 3.1 xHCI Host Controller
官方WIKI:https://pve.proxmox.com/wiki/Pci_passthrough
4)无法开机、驱动装上了也没有画面
- 尝试使用 romfile 选项
自行提取
参考:https://foxi.buduanwang.vip/virtualization/pve/1602.html/
请确定在传统模式下启动,否则会出现 -bash: rom: Permission denied 等报错
从 BIOS 中提取
参考:https://www.gitloc.com/archives/131.html
我这边 10400(UHD630) & 华擎 z490m pro4 可以用的 romfile
链接: https://pan.baidu.com/s/1FkrOBo2p1jaKUdnrXIZ1bA?pwd=8995 提取码: 8995
备注,从 BIOS 中提取的 romfile,修复 ROM 的设备通道 ID 有时会造成文件失效,原因不明(也许大概是加密问题) - 尝试使用其他视频接口
我现在使用的 华擎 z490m pro4 直通后 HDMI 无信号输出,只有 VGA 和 DP 接口使用正常,大概类似于黑苹果无法使用 HDMI 口(其实 romfile 应该还是有用,我懒得折腾了,反正能用了)
参考:https://apple.sqlsec.com/6-实用姿势/6-13.html
一些别的坑
因为开始的时候没有 DP 转接头,我也不确定 DP 接口有没有信号输出,想着干脆做 GVT-G 让群晖和 Windows 都能用上核显算了,于是买了 USB 转 HDMI ,然后手贱觉得 type-c 比较小巧还有弯头可选
买回来之后才知道台式机 type-c 不是全功能 C 口,根本无法传输视频信号,并且 type-c 视频输出其实也是走的 DP 输出,对于我当时的情况无济于事
所以如果要做 GVT-G 和视频输出,认准这几个字 “USB外置显卡“!(因为不确定这玩意解码到底走的 GPU 还是 CPU 或者是外置显卡本身,我最后还是放弃了,还好 DP 信号正常)其实还是翻车了,69 的某绿转接头时不时黑屏闪屏,1080P 勉强能用,4K 压根就是残废,DP 接口对线材要求实在太高了华擎主板 改显存,增加 GVT-G “显卡” 需要使用这个引导
https://github.com/XDleader555/grub_setup_var
指令参考(我这个主板实测只能改到 512m,1G无法开机,老老实实扣电池)
1 | setup_var SaSetup 0xAF 0x3 |
PVE 7.1/7.2 某些内核直通可能存在问题,需要尝试更换内核
7.2 版本默认内核貌似无法使用 UPT 模式直通核显(Legacy 模式无影响)
据说正常可用的版本有 5.13.19-4-pve
参考:https://www.jianshu.com/p/822c167d0c3a虚拟机 Windows 关机后 HDMI 无声音
原因不明,临时解决方案
- 不要使用关机选项,用休眠替代(重启或关机后无声音,也可以用休眠后重新开机恢复,奇葩的 bug)
注:如果 Windows 开启休眠,无法正常唤醒(唤醒变重启等),请尝试更换驱动、romfile 文件 - 使用 USB 声卡或板载声卡接口输出音频(这是无奈之选,如果要接到电视这种设备,没有 3.5mm 音频口又各种尝试失败的话,VGA+3.5mm 转 HDMI,效果嘛…………:fa-meh-o::fa-meh-o::fa-meh-o::fa-meh-o:)
其他可能用到的东西
- 群晖核显驱动状态和硬解状态查询
1 | sudo -i |
- 群晖替换驱动文件(将 i915.ko 文件放入 /tmp/ 文件夹下)
1 | sudo -i |
让 VM 支持网络唤醒,配合 home assistant 做 htpc 开关机控制
参考:https://bbs.hassbian.com/thread-16061-1-1.html在虚拟机下控制主板RGB
安装 OpenRGB:https://openrgb.org/releases.html
直通 USB 中的 RGB 控制器,下载安装开启 OpenRGB(第一次打开需要管理员权限)PVE 内核 5.15 会出现显卡直通 (HDMI 直通) 下 Windows 虚拟机的 鼠标指针不显示 或 鼠标反应卡顿 的问题。解决方法如下:
- 使用 noVNC 或 RDP 登录进 Windows,在“控制面板 - 鼠标 - 指针选项”中启用“显示鼠标轨迹”,并把滑块拖至最左 (基本不影响显示体验);
- 升级到 6.x 内核或降级到 5.13 内核
检查是否安装 5.13 版内核:
proxmox-boot-tool kernel list
如果 5.13 内核未被安装或者内核被手动清理的话可能需要手动安装 5.13 内核:
apt install pve-kernel-5.13
安装成功后再次执行以下命令查看已安装的内核:
proxmox-boot-tool kernel list
固定之后启动的内核版本:
proxmox-boot-tool kernel pin 5.13.19-6-pve
保存配置:
proxmox-boot-tool refresh
重启后内核即被回退至 5.13。
如果你想解除内核固定,可以执行:
proxmox-boot-tool kernel unpin 5.13.19-6-pve
proxmox-boot-tool refresh
经历过的死机状况记录
- J4125 的时候,USB 口不够用,接了两个 USB 集线器,集线器上插超过 3 个 USB 设备直通给 Windows,一小时之内绝对会 boom,至今不知道是那块主板的问题还是 PVE 的问题(后来一直插着 3 个 USB,再也没遇到过死机现象,升级 PVE 后也没测试,没深究原因)
- 刚装完新机子,拿回家用之后莫名其妙的不稳定,脸黑就死机,重装并升级到 7.2 之后好了,误会是内核的原因,直到前几天想改风扇转速,顺便开节能,死机情况又发生了,才确定是主板开启 C6/C7 节能的原因。