前言
站长购买的这台Hetzner杜甫是有核显的,要怎么利用起来呢?站长准备用之前购买的Google one和薅的微软E5开发者账号来搭建一个私人影音库。
关于核显直通
站长搜了众多教程,目前只搞定了LXC容器的显卡映射。老实说,13代酷睿的直通还是没搞定。
英特尔在11代之后的核显升级为锐炬Iris Xe核显,GPU虚拟化由iGVT-g更改为SR-IOV,而目前网上教程站长只找到两个,按照相关教程操作,GPU是成功虚拟化了,但是并不成功,linux下会掉驱动,直通给Windows后设备管理器会提示显卡代码13或者43,目前是无法驱动。站长目前觉得是hz的debian镜像问题,等有时间换debian的官方镜像再试一次。
站长参考的教程:
1.Proxmox VE 11代-12代-13代开启核显虚拟化Sriov
2.PVE开启intel 11代和12代gpu的sriov教程-更新直通window
过程
前置条件
bios打开核显,和升级内核,最好内核在6.1以上,确定核显已经正常工作。
核显开启和升级内核可以这篇:Hetzner独服折腾日记二—安装PVE
检查核显:ls -la /dev/dri
total 0
drwxr-xr-x 3 root root 100 Mar 22 01:51 .
drwxr-xr-x 19 root root 4620 Mar 22 01:55 ..
drwxr-xr-x 2 root root 80 Mar 22 01:51 by-path
crw-rw---- 1 root video 226, 0 Mar 22 01:51 card0
crw-rw---- 1 root render 226, 128 Mar 22 01:51 renderD128
检查内核:uname -r
6.2.2-1-pve
修改/etc/default/grub,找到:
GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"
修改为:
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on i915.enable_guc=7 consoleblank=0"
更新GRUB
sudo grub-mkconfig -o /boot/grub/grub.cfg
检查核显是否正常工作
journalctl -b -o short-monotonic -k | egrep -i "i915|dmr|dmc|guc|huc"
shell返回:
[ 0.000000] serrias kernel: Command line: BOOT_IMAGE=/vmlinuz-6.2.2-1-pve root=UUID=c299863b-d781-4df3-adce-9a1e3a78a870 ro consoleblank=0 systemd.show_status=true intel_iommu=on i915.enable_guc=7 consoleblank=0
[ 0.079635] serrias kernel: Kernel command line: BOOT_IMAGE=/vmlinuz-6.2.2-1-pve root=UUID=c299863b-d781-4df3-adce-9a1e3a78a870 ro consoleblank=0 systemd.show_status=true intel_iommu=on i915.enable_guc=7 consoleblank=0
[ 2.467930] serrias kernel: Setting dangerous option enable_guc - tainting kernel
[ 2.468477] serrias kernel: i915 0000:00:02.0: [drm] Incompatible option enable_guc=7 - undocumented flag
[ 2.469175] serrias kernel: i915 0000:00:02.0: [drm] VT-d active for gfx access
[ 2.469202] serrias kernel: i915 0000:00:02.0: vgaarb: deactivate vga console
[ 2.469248] serrias kernel: i915 0000:00:02.0: [drm] Using Transparent Hugepages
[ 2.469893] serrias kernel: i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 2.470952] serrias kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adls_dmc_ver2_01.bin (v2.1)
[ 2.562411] serrias kernel: i915 0000:00:02.0: [drm] GuC firmware i915/tgl_guc_70.bin version 70.5.1
[ 2.562415] serrias kernel: i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc.bin version 7.9.3
[ 2.564631] serrias kernel: i915 0000:00:02.0: [drm] HuC authenticated
[ 2.565229] serrias kernel: i915 0000:00:02.0: [drm] GuC submission enabled
[ 2.565230] serrias kernel: i915 0000:00:02.0: [drm] GuC SLPC enabled
[ 2.565562] serrias kernel: i915 0000:00:02.0: [drm] GuC RC: enabled
[ 2.565924] serrias kernel: i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized
[ 2.566688] serrias kernel: [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[ 2.568214] serrias kernel: i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
[ 2.568332] serrias kernel: i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
主要看HuC authenticated,GuC submission enabled,GuC SLPC enabled, GuC RC: enabled。enable即显卡工作正常。
创建CT(LXC)容器
LXC容器的创建可以看:Hetzner独服折腾日记四—创建LXC容器安装Plesk搭建WordPress博客
创建LXC容器,一定要取消勾选无特权容器。安装完毕之后功能中的嵌套、NFS、SMB、FUSE勾选上。
不然到时候rclone挂载不上网盘。

映射核显
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.apparmor.profile: unconfined
226:0 rwm和226:128 rwm对应之前ls -la /dev/dri中的看到的显卡信息。然后添加到/etc/pve/lxc/xxx.conf
xxx是你lxc容器的编号,然后重启容器。
安装docker
wget -qO- get.docker.com | bash
安装portainer
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
等pull完毕,https://ip:9443进入portainer管理界面。
安装rclone
curl https://rclone.org/install.sh | sudo bash
因为站长之前在其他机器上挂载过rclone,所以只需要把之前挂载的位于/root/.config/rclone中rclone.conf配置文件下载下来再上传到新机器的/root/.config/rclone内就好。
注:LXC容器下要通过rclone挂载Google drive等,需要在母鸡/etc/pve/lxc/xxx.conf(xxx为lxc容器的编号)中添加:
#mp0%3A /root/gg-web-bak,mp=/webbak
lxc.mount.entry: /dev/fuse dev/fuse none bind,create=file
挂载
rclone mount E5: /data/E5 --allow-other --allow-non-empty --vfs-cache-mode writes --daemon
E5是配置rclone时的名称,/data/E5是rclone挂载的地址。
若挂载失败需安装fuse
apt-get install -y fuse3
给rclone添加开机自启:
echo '#!/bin/bash' >>/etc/rc.local
echo "rclone mount E5: /data/E5 --allow-other --allow-non-empty --vfs-cache-mode writes --daemon" >>/etc/rc.local
chmod +x /etc/rc.local
portainer安装jellyfin
推荐N大版本的jellyfin
DockerHub: nyanmisaka/jellyfin - Docker Image | Docker Hub
Github: https://github.com/nyanmisaka
portainer管理界面--选择local--container--新建容器

name:自定义, image:nyanmisaka/jellyfin:latest,在Manual network port publishing添加映射端口:8096

Advanced container settings映射一下文件目录

启动选择always,映射显卡目录给docker

最后拉取容器

注:若拉取失败提示“Failure invalid CapDrop: capability not supported by your kernel or not available in the current environment: "CAP_MAC_ADMIN" " 去母鸡/etc/pve/lxc/xxx.conf添加:
lxc.cap.drop:
安装完成
测试
控制台--播放--打开硬件加速--选择Intel Quicksync--保存
容器里安装intel-gpu-tools:
apt-get install intel-gpu-tools
选择一部HEVC的视频测试GPU是否调用:
shell输入:
intel_gpu_top

GPU已经工作解码,核显直通搞定。
文章版权归作者所有。发布者:白嫖怪,转转请注明出处:https://c7pai.com/1227/