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
2
lvremove pve/data
lvextend -l +100%FREE -r pve/root

数据中心-存储-删除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
2
3
4
5
6
7
8
9
10
11
12
# 更新软件包列表:
apt-get update
# 安装lm-sensors:
apt-get install lm-sensors
# 初始化 sensors(一路yes,回车):
sensors-detect
# 给予 smartctl 权限(如不需要硬盘信息可以忽略)
chmod +s /usr/sbin/smartctl
# 获取温度信息:
sensors
# 这个时候是没有风扇等信息的,需要重启:
reboot
1
2
3
4
5
6
7
8
9
10
11
12
13
# 备份
proxmoxlib_js="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"
Nodes_pm="/usr/share/perl5/PVE/API2/Nodes.pm"
pvemanagerlib_js="/usr/share/pve-manager/js/pvemanagerlib.js"
cp ${proxmoxlib_js} ${proxmoxlib_js}bak
cp ${Nodes_pm} ${Nodes_pm}bak
cp ${pvemanagerlib_js} ${pvemanagerlib_js}bak
# 应用补丁
patch ${proxmoxlib_js} < /tmp/proxmoxlib_js.patch
patch ${Nodes_pm} < /tmp/Nodes_pm.patch
patch ${pvemanagerlib_js} < /tmp/pvemanagerlib_js.patch
# 重载 PVE 界面
systemctl restart pveproxy
1
2
3
4
5
6
7
# 制作补丁
proxmoxlib_js="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"
Nodes_pm="/usr/share/perl5/PVE/API2/Nodes.pm"
pvemanagerlib_js="/usr/share/pve-manager/js/pvemanagerlib.js"
diff -uN ${proxmoxlib_js}bak ${proxmoxlib_js} > /tmp/proxmoxlib_js.patch
diff -uN ${Nodes_pm}bak ${Nodes_pm} > /tmp/Nodes_pm.patch
diff -uN ${pvemanagerlib_js}bak ${pvemanagerlib_js} > /tmp/pvemanagerlib_js.patch

页面效果

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 错误
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)无法开机、驱动装上了也没有画面

一些别的坑

  • 因为开始的时候没有 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 无声音
    原因不明,临时解决方案

  1. 不要使用关机选项,用休眠替代(重启或关机后无声音,也可以用休眠后重新开机恢复,奇葩的 bug)
    注:如果 Windows 开启休眠,无法正常唤醒(唤醒变重启等),请尝试更换驱动、romfile 文件
  2. 使用 USB 声卡或板载声卡接口输出音频(这是无奈之选,如果要接到电视这种设备,没有 3.5mm 音频口又各种尝试失败的话,VGA+3.5mm 转 HDMI,效果嘛…………:fa-meh-o::fa-meh-o::fa-meh-o::fa-meh-o:)

其他可能用到的东西

  • 群晖核显驱动状态和硬解状态查询

    1
    2
    3
    sudo -i
    ls /dev/dri
    cat /sys/kernel/debug/dri/0/i915_frequency_info
  • 群晖替换驱动文件(将 i915.ko 文件放入 /tmp/ 文件夹下)

    1
    2
    sudo -i
    rm /usr/lib/modules/i915.ko && cp /tmp/i915.ko /usr/lib/modules/
  • 让 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 虚拟机的 鼠标指针不显示 或 鼠标反应卡顿 的问题。解决方法如下:

  1. 使用 noVNC 或 RDP 登录进 Windows,在“控制面板 - 鼠标 - 指针选项”中启用“显示鼠标轨迹”,并把滑块拖至最左 (基本不影响显示体验);
  2. 升级到 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

经历过的死机状况记录

  1. J4125 的时候,USB 口不够用,接了两个 USB 集线器,集线器上插超过 3 个 USB 设备直通给 Windows,一小时之内绝对会 boom,至今不知道是那块主板的问题还是 PVE 的问题(后来一直插着 3 个 USB,再也没遇到过死机现象,升级 PVE 后也没测试,没深究原因)
  2. 刚装完新机子,拿回家用之后莫名其妙的不稳定,脸黑就死机,重装并升级到 7.2 之后好了,误会是内核的原因,直到前几天想改风扇转速,顺便开节能,死机情况又发生了,才确定是主板开启 C6/C7 节能的原因。

End

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022-2023 tty228
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信