Proxmox LXC iGPU passthrough. Я не смог найти работающий туториал, поэтому создал свой. Код был выполнен на Lenovo M720q, i5-8500T, Proxmox 8.1.3. Пошаговое руководство для проброса встроенной видеокарты Intel (iGPU) для Jellyfin и Intel CPU gen7+. Похоже, Firefox имеет проблемы с транскодированием фильмов. Рекомендуется использовать браузеры на базе Chromium. Установите необходимые драйверы на хост Proxmox.
Код:
`apt install -y intel-opencl-icd`
Отредактируйте grub:
Код:
`nano /etc/default/grub`
Найдите строку, начинающуюся с `GRUB_CMDLINE_LINUX_DEFAULT` и измените её на:
Код:
`GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_gvt=1"`
Выполните команду:
Код:
`update-grub`
`reboot host`
Проверьте изменения. IOMMU включен:
Код:
`dmesg | grep -e DMAR -e IOMMU`
Отредактируйте модули в etc:
Код:
`nano /etc/modules`
Код:
`# Modules required for PCI passthrough`
`vfio`
`vfio_iommu_type1`
`vfio_pci`
`vfio_virqfd`
`# Modules required for Intel GVT`
`kvmgt`
`exngt`
`Vfio-mdev`
Выполните команду:
Код:
`update-initramfs -u -k all`
Ваша видеокарта должна быть видна командой:
Код:
`lspci -nnv | grep VGA`
Включите GUC:
Код:
`echo "options i915 enable_guc=3" >> /etc/modprobe.d/i915.conf`
Создайте LXC контейнер как привилегированный и добавьте параметры в конфигурацию:
Код:
`nano /etc/pve/lxc/<номер контейнера>.conf`
Код:
`lxc.cgroup2.devices.allow: c 226:0 rwm`
`lxc.cgroup2.devices.allow: c 226:128 rwm`
`lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file`
В LXC контейнере:
Обновите и обновите систему:
Код:
`apt update && apt upgrade -y`
Установите ffmpeg:
Код:
`apt install ffmpeg -y`
Установите software-properties-common:
Код:
`apt-get install software-properties-common -y`
Установите curl и gnupg:
Код:
`apt install curl gnupg -y`
Только для Ubuntu (и производных) включите репозиторий Universe для получения всех зависимостей FFmpeg:
Код:
`add-apt-repository universe`
Скачайте GPG ключ подписи (подписанный командой Jellyfin Team) и установите его:
Код:
`mkdir -p /etc/apt/keyrings`
`curl -fsSL <> | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg`
Добавьте конфигурацию репозитория в:
Код:
`/etc/apt/sources.list.d/jellyfin.source`
Код:
`export VERSION_OS="$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release )"`
`export VERSION_CODENAME="$( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )"`
`export DPKG_ARCHITECTURE="$( dpkg --print-architecture )"`
`cat <<EOF | tee /etc/apt/sources.list.d/jellyfin.sources`
`Types: deb`
`URIs: <>`
`Suites: ${VERSION_CODENAME}`
`Components: main`
`Architectures: ${DPKG_ARCHITECTURE}`
`Signed-By: /etc/apt/keyrings/jellyfin.gpg`
`EOF`
Обновите репозитории APT:
Код:
`apt update`
Установите метапакет Jellyfin, который автоматически извлечет различные подпакеты:
Код:
`apt install jellyfin -y`
Добавьте пользователя jellyfin в необходимые группы:
Код:
`usermod -a -G video jellyfin`
`usermod -a -G render jellyfin`
`usermod -a -G input jellyfin`
`usermod -a -G ssl-cert jellyfin`
Установите ffmpeg для Jellyfin, потому что, по какой-то причине, ffmpeg не устанавливается вместе с Jellyfin, установите его, потому что в противном случае будет ошибка при попытке транскодировать HEVC.
Код:
`apt install jellyfin-ffmpeg -y`
Эти настройки для транскодирования в Jellyfin (i5-8500T)

Код:
`apt install -y intel-opencl-icd`
Отредактируйте grub:
Код:
`nano /etc/default/grub`
Найдите строку, начинающуюся с `GRUB_CMDLINE_LINUX_DEFAULT` и измените её на:
Код:
`GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_gvt=1"`
Выполните команду:
Код:
`update-grub`
`reboot host`
Проверьте изменения. IOMMU включен:
Код:
`dmesg | grep -e DMAR -e IOMMU`
Отредактируйте модули в etc:
Код:
`nano /etc/modules`
Код:
`# Modules required for PCI passthrough`
`vfio`
`vfio_iommu_type1`
`vfio_pci`
`vfio_virqfd`
`# Modules required for Intel GVT`
`kvmgt`
`exngt`
`Vfio-mdev`
Выполните команду:
Код:
`update-initramfs -u -k all`
Ваша видеокарта должна быть видна командой:
Код:
`lspci -nnv | grep VGA`
Включите GUC:
Код:
`echo "options i915 enable_guc=3" >> /etc/modprobe.d/i915.conf`
Создайте LXC контейнер как привилегированный и добавьте параметры в конфигурацию:
Код:
`nano /etc/pve/lxc/<номер контейнера>.conf`
Код:
`lxc.cgroup2.devices.allow: c 226:0 rwm`
`lxc.cgroup2.devices.allow: c 226:128 rwm`
`lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file`
В LXC контейнере:
Обновите и обновите систему:
Код:
`apt update && apt upgrade -y`
Установите ffmpeg:
Код:
`apt install ffmpeg -y`
Установите software-properties-common:
Код:
`apt-get install software-properties-common -y`
Установите curl и gnupg:
Код:
`apt install curl gnupg -y`
Только для Ubuntu (и производных) включите репозиторий Universe для получения всех зависимостей FFmpeg:
Код:
`add-apt-repository universe`
Скачайте GPG ключ подписи (подписанный командой Jellyfin Team) и установите его:
Код:
`mkdir -p /etc/apt/keyrings`
`curl -fsSL <> | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg`
Добавьте конфигурацию репозитория в:
Код:
`/etc/apt/sources.list.d/jellyfin.source`
Код:
`export VERSION_OS="$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release )"`
`export VERSION_CODENAME="$( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )"`
`export DPKG_ARCHITECTURE="$( dpkg --print-architecture )"`
`cat <<EOF | tee /etc/apt/sources.list.d/jellyfin.sources`
`Types: deb`
`URIs: <>`
`Suites: ${VERSION_CODENAME}`
`Components: main`
`Architectures: ${DPKG_ARCHITECTURE}`
`Signed-By: /etc/apt/keyrings/jellyfin.gpg`
`EOF`
Обновите репозитории APT:
Код:
`apt update`
Установите метапакет Jellyfin, который автоматически извлечет различные подпакеты:
Код:
`apt install jellyfin -y`
Добавьте пользователя jellyfin в необходимые группы:
Код:
`usermod -a -G video jellyfin`
`usermod -a -G render jellyfin`
`usermod -a -G input jellyfin`
`usermod -a -G ssl-cert jellyfin`
Установите ffmpeg для Jellyfin, потому что, по какой-то причине, ffmpeg не устанавливается вместе с Jellyfin, установите его, потому что в противном случае будет ошибка при попытке транскодировать HEVC.
Код:
`apt install jellyfin-ffmpeg -y`
Эти настройки для транскодирования в Jellyfin (i5-8500T)

