0、J4105/J4125 PVE Hdmi直通核显
0.1、主机型号
支持 J4105、J4125,核显型号为 UHD600
hdmi、vga(未尝试、一般可行)
需支持 vt-d
gk55、j4105 工控机测试可用
0.2、软件版本
pve 7.0-6 版本(截止 22-09-16 最新版本),其他版本未测试,原理相同,可自行尝试
windows ltsc 最新即可
intel 核显驱动需要26.20.100.7262,需特别注意此版本,高于这个版本会报 Code 43 错误
0.3、配置直通
编辑 GRUB 配置文件
nano /etc/default/grub
开启 IOMMU 支持
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off"
如果是 AMD 的 CPU
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on video=efifb:off"
更新 GRUB:
update-grub
添加所需的系统模块(驱动)
echo "vfio" >> /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
echo "vfio_virqfd" >> /etc/modules
接着添加模块(驱动)黑名单,即让 GPU 设备在下次系统启动之后不使用这些驱动,把设备腾出来给 vfio 驱动用:
Intel 核显:
echo "blacklist snd_hda_intel" >> /etc/modprobe.d/pve-blacklist.conf
echo "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/pve-blacklist.conf
echo "blacklist i915" >> /etc/modprobe.d/pve-blacklist.conf
绑定核显到 vfio 模块
查看核显以及声卡的供应商和设备 ID:
lspci -n | grep -E "0300|0403"
回显如下:
00:02.0 0300: 8086:3185 (rev 03)
00:0e.0 0403: 8086:3198 (rev 03)
其中“8086:3185”和“8086:3198”分别就是核显和声卡的供应商 ID 和设备 ID,把它们绑定到 vifo 模块:
echo "options vfio-pci ids=8086:3185,8086:3198" > /etc/modprobe.d/vfio.conf
更新内核:
update-initramfs -u
重启机器:
reboot
重启上来之后检查模块是否正常加载:
lsmod | grep vfio
有类似回显说明正常:
vfio_pci 45056 1
vfio_virqfd 16384 1 vfio_pci
irqbypass 16384 13 vfio_pci,kvm
vfio_iommu_type1 24576 1
vfio 28672 5 vfio_iommu_type1,vfio_pci
1、配置虚拟机
创建虚拟机,安装成功之前不要选择开机自启动,防止直通冲突,和 pve 抢占硬件
-
系统选择时,保持默认
硬盘随意
cpu 类别选择 host
1.1、安装 windows
- 初次安装不要直接直通,先安装好系统后关机再直通
- 安装完成后不要连接 hdmi 接口
1.2、配置 pve 直通核显
pve 虚拟机硬件设置
-
由于不显示设备名称,所以需要安装上方 lspci 显示的设备 ID 添加
00:02.0 是核显,00:0e.0 是声卡,均需直通给虚拟机
-
1.3、安装驱动
- 设置直通之后启动虚拟机,用远程桌面连接,安装过程中有几率蓝屏重启
- 下载26.20.100.7262驱动https://www.dell.com/support/home/zh-cn/drivers/driversdetails?driverid=11xkd
- 安装后重启、可在设备管理器中看到 UHD600 驱动可用
- 在26.20.100.7262之后的驱动均会报 Code 43 错误,已尝试过 26.20.100.7262+、27.20.x,均无效
1.4、驱动优化
1.4.1、驱动43解决
获取 RomFile
修改参数
hostpci0: 00:02.0,legacy-igd=1,romfile=HD600.bin
1.4.2、禁用驱动更新
- Win+R 打开 gpedit.msc
- 计算机配置 - 管理模板 - Windows 组件 - Windows 更新 - Windows 更新不包括驱动程序 - 启用
1.4.3、安装驱动后配置虚拟机
修改配置文件
nano /etc/pve/qemu-server/虚拟机id.conf
添加参数
args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on
vga: none
args 中 hostpci0 参数需要存在
hostpci0: 00:02.0
保存启动,连接 hdmi 接口
完成
1.4.4、优化设置
启用 QEMU Guest Agent
- 虚拟机选项启用 QEMU
- 下载驱动https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
- 挂载 iso,安装 virtio-win-gt-x64
- 安装 virtio-win-guest-tools
- 如果挂载启动失败,先注释掉上方配置文件中的 args 和 vga 参数,安装后再启用
2、PVE虚拟机的一些技巧
2.1、PVE虚拟机的存储路径
Proxmox VE安装之后,有2个储存点。
其中vm储存的地方叫:local-lvm。
储存镜像。位置在/dev/pve
储存iso镜像的地方叫:local 。
直接点击local——内容——点击上传就可以上传ISO。 位置在/var/lib/vz/template/iso
2.2、使用命令将镜像转换为磁盘
把镜像转成虚拟磁盘并导入到虚拟机:选择“pve”节点 > shell > 输入以下命令并回车:
qm importdisk 103 /var/lib/vz/template/iso/syboboot.img local-lvm
shell会显示vm-103-disk-0虚拟磁盘创建的进度,最后显示‘Successfully imported disk as 'unused0:local-lvm:vm-103-disk-0'就是添加成功了。
2.3、PVE_7.1版本源更新
因PVE7.0更换了Debian11作为内核,软件源管理方式也发生了变更,故原软件源配置方法已失效。
默认是企业订阅版,如果不做修改,在使用 pveceph init 进行 ceph 初始化安装的时候会将整个环境破坏,切记!
登陆各节点Shell控制台
【重要】将/etc/apt/sources.list.d/pve-enterprise.list 文件内的唯一一条记录注释掉:
echo "#deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list
Proxmox软件源更换
中科大源(二选一):
wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list #中科大源
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-pacific bullseye main" > /etc/apt/sources.list.d/ceph.list #中科大源
sed -i.bak "s#http://download.proxmox.com/debian#https://mirrors.ustc.edu.cn/proxmox/debian#g" /usr/share/perl5/PVE/CLI/pveceph.pm #中科大源
apt update && apt dist-upgrade #更新软件,可不执行
Proxmox中文社区源(二选一):
wget http://download.proxmox.wiki/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
echo "deb http://download.proxmox.wiki/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list #Proxmox中文社区源
echo "deb https://download.proxmox.wiki/debian/ceph-pacific bullseye main" > /etc/apt/sources.list.d/ceph.list #Proxmox中文社区源
sed -i.bak "s#http://download.proxmox.com/debian#https://download.proxmox.wiki/debian#g" /usr/share/perl5/PVE/CLI/pveceph.pm #Proxmox中文社区源
apt update && apt dist-upgrade #更新软件,可不执行
Debian系统源更换
阿里Debian源(二选一):
sed -i.bak "s#ftp.debian.org/debian#mirrors.aliyun.com/debian#g" /etc/apt/sources.list #阿里Debian源
sed -i "s#security.debian.org#mirrors.aliyun.com/debian-security#g" /etc/apt/sources.list #阿里Debian源
apt update && apt dist-upgrade #更新软件,可不执行
163-Debian源(二选一):
sed -i.bak "s#ftp.debian.org/debian#mirrors.163.com/debian#g" /etc/apt/sources.list #163Debian源
sed -i "s#security.debian.org#mirrors.163.com/debian-security#g" /etc/apt/sources.list #163Debian源
apt update && apt dist-upgrade #更新软件,可不执行
删除订阅弹窗
sed -Ezi.bak "s/(Ext.Msg.show({\s+title: gettext('No valid sub)/void({ //\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
执行完成后,浏览器Ctrl+F5强制刷新缓存
3、MAC系统下的一些技巧
3.1、Mac OS系统下制作启动U盘
在Mac OS系统下不需要安装任何第三方软件,可以很方便地用自带的dd命令将iso镜像写入u盘。
找出U盘挂载的路径
diskutil list
将U盘unmount(将N替换为挂载路径)
diskutil unmount Disk /dev/disk[N]
写入U盘
sudo dd if=iso路径 of=/dev/rdisk[N] bs=1m
rdisk 中加入r可以让写入速度加快
将u盘备份到iso镜像
sudo dd if=/dev/rdisk[N] of= iso路径 bs=1m
销毁磁盘数据
dd if=/dev/urandom of=/dev/hda1
注意:利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。
测试硬盘的读写速度
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
通过以上两个命令输出的命令执行时间,可以计算出硬盘的读、写速度。
3.2、格式化U盘
1.查看盘符列表,找到需要格式化的U盘
$ diskutil list
2.卸载分区disk2
$ diskutil unmountDisk /dev/disk2
3.格式化disk2为JHFS+格式同时命名为Upan
$ diskutil eraseDisk JHFS+ Upan disk2
4、PVE虚拟机平台密码忘记,找回!
4.1、千万不要太相信自己的大脑
随着时间的推移,照片和书籍都会慢慢变色、褪色,人的记忆亦是如此,尤其对于没有备份或者找回的东西,一定要做好保存。当然你也可以像现在一样,先了解找回方式~
4.2、准备PVE启动U盘
使用DeBug模式进入系统。
4.3、Ctrl+D确认启动DeBug模式
4.4、验证LVM、激活并挂载
#查看VG,输出应该是有VG PVE
vgs
#查看LV,查看 data root
lvs
#激活VG
vgchange -a y
#挂载lvm
mount /dev/mapper/pve-root /mnt
#换根目录chroot
chroot /mnt
#修改root密码,更改完成密码重启服务器
passwd root