thor2002ro / unraid_kernel

Kernel repository for UNRAID(unofficial)
114 stars 11 forks source link

Help! Intel DG1 in Unraid #26

Open colorblank opened 5 months ago

colorblank commented 5 months ago

Great work. With your help, I am able to run DG1 in Unraid. But DG1 can not be used as transcoding device. It seems it requires Dynamic Kernel Module Support (DKMS)(https://github.com/intel-gpu/intel-gpu-i915-backports/issues/99#issuecomment-1620396358) . Is there anyway building DKMS in unraid kernel?

thor2002ro commented 5 months ago

from what I can gather I dont think you need the dkms oot driver anymore but you do need the va drivers

colorblank commented 5 months ago

Sorry, I am not familiar with va drivers. In Jellyfin, by running vainfo, I got this

截屏2024-03-26 15 59 21

Does it mean the va drivers works fine?

thor2002ro commented 5 months ago

looks fine.... video encoder and decoder for mpeg2 and h264...... with h264 low power variant .... from the picture....

colorblank commented 5 months ago

But when the Jellyfin use DG1 as transcoding device, it returns with errors.

截屏2024-03-26 17 14 14

more info:

root@Tower:~# lspci -k
00:00.0 Host bridge: Intel Corporation 8th Gen Core 4-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S] (rev 08)
        DeviceName: Onboard - Other
        Subsystem: ASUSTeK Computer Inc. 8th Gen Core 4-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S]
        Kernel driver in use: skl_uncore
        Kernel modules: ie31200_edac
00:14.0 USB controller: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
        DeviceName: Onboard - Other
        Subsystem: ASUSTeK Computer Inc. 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
        Kernel driver in use: xhci_hcd
00:16.0 Communication controller: Intel Corporation 200 Series PCH CSME HECI #1
        DeviceName: Onboard - Other
        Subsystem: ASUSTeK Computer Inc. 200 Series PCH CSME HECI
        Kernel driver in use: mei_me
        Kernel modules: mei_me
00:17.0 SATA controller: Intel Corporation 200 Series PCH SATA controller [AHCI mode]
        DeviceName: Onboard - SATA
        Subsystem: ASUSTeK Computer Inc. 200 Series PCH SATA controller [AHCI mode]
        Kernel driver in use: ahci
00:1b.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #19 (rev f0)
        Subsystem: ASUSTeK Computer Inc. 200 Series PCH PCI Express Root Port
        Kernel driver in use: pcieport
00:1b.4 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #21 (rev f0)
        Kernel driver in use: pcieport
00:1c.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #3 (rev f0)
        Subsystem: ASUSTeK Computer Inc. 200 Series PCH PCI Express Root Port
        Kernel driver in use: pcieport
00:1c.4 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #5 (rev f0)
        Subsystem: ASUSTeK Computer Inc. 200 Series PCH PCI Express Root Port
        Kernel driver in use: pcieport
00:1d.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #9 (rev f0)
        Subsystem: ASUSTeK Computer Inc. 200 Series PCH PCI Express Root Port
        Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation Device a2cc
        DeviceName: Onboard - Other
        Subsystem: ASUSTeK Computer Inc. Device 8694
00:1f.2 Memory controller: Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller
        DeviceName: Onboard - Other
        Subsystem: ASUSTeK Computer Inc. 200 Series/Z370 Chipset Family Power Management Controller
00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio
        DeviceName: Onboard - Sound
        Subsystem: ASUSTeK Computer Inc. 200 Series PCH HD Audio
00:1f.4 SMBus: Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller
        DeviceName: Onboard - Other
        Subsystem: ASUSTeK Computer Inc. 200 Series/Z370 Chipset Family SMBus Controller
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V
        DeviceName: Onboard - Ethernet
        Subsystem: ASUSTeK Computer Inc. Ethernet Connection (2) I219-V
        Kernel driver in use: e1000e
        Kernel modules: e1000e
02:00.0 Non-Volatile memory controller: Silicon Motion, Inc. SM2263EN/SM2263XT (DRAM-less) NVMe SSD Controllers (rev 03)
        Subsystem: Silicon Motion, Inc. SM2263EN/SM2263XT SSD Controller
        Kernel driver in use: nvme
        Kernel modules: nvme
03:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller (rev 11)
        Subsystem: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller
        Kernel driver in use: ahci
04:00.0 PCI bridge: Intel Corporation Device 4910
        Subsystem: Intel Corporation Device 0000
        Kernel driver in use: pcieport
05:01.0 PCI bridge: Intel Corporation Device 490f
        Subsystem: Intel Corporation Device 490f
        Kernel driver in use: pcieport
05:04.0 PCI bridge: Intel Corporation Device 490f
        Subsystem: Intel Corporation Device 0000
        Kernel driver in use: pcieport
05:05.0 PCI bridge: Intel Corporation Device 490f
        Subsystem: Intel Corporation Device 0000
        Kernel driver in use: pcieport
06:00.0 VGA compatible controller: Intel Corporation DG1 [Iris Xe Graphics] (rev 01)
        Subsystem: Shenzhen Gunnir Technology Development Co., Ltd DG1 [Iris Xe Graphics]
        Kernel driver in use: i915
        Kernel modules: i915
07:00.0 Audio device: Intel Corporation Device 490d
        Subsystem: Shenzhen Gunnir Technology Development Co., Ltd Device da10
08:00.0 Memory controller: Intel Corporation Device 490e
        Kernel driver in use: intel_vsec
        Kernel modules: intel_vsec

root@Tower:~# dmesg | grep -iE "guc|huc"
[  116.414796] i915 0000:06:00.0: [drm] GT0: GuC firmware i915/dg1_guc_70.bin version 70.5.1
[  116.414799] i915 0000:06:00.0: [drm] GT0: HuC firmware i915/dg1_huc.bin version 7.9.3
[  116.420664] i915 0000:06:00.0: [drm] GT0: HuC: authenticated for all workloads
[  116.421251] i915 0000:06:00.0: [drm] GT0: GUC: submission enabled
[  116.421253] i915 0000:06:00.0: [drm] GT0: GUC: SLPC enabled
[  116.421439] i915 0000:06:00.0: [drm] GT0: GUC: RC enabled

root@Tower:~# dmesg |grep i915
[  116.377224] i915 0000:06:00.0: Force probing unsupported Device ID 4908, tainting kernel
[  116.377903] i915 0000:06:00.0: vgaarb: deactivate vga console
[  116.377922] i915 0000:06:00.0: [drm] Local memory IO size: 0x00000000fb800000
[  116.377923] i915 0000:06:00.0: [drm] Local memory available: 0x00000000fb800000
[  116.400845] i915 0000:06:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=none
[  116.402938] i915 0000:06:00.0: [drm] Finished loading DMC firmware i915/dg1_dmc_ver2_02.bin (v2.2)
[  116.414796] i915 0000:06:00.0: [drm] GT0: GuC firmware i915/dg1_guc_70.bin version 70.5.1
[  116.414799] i915 0000:06:00.0: [drm] GT0: HuC firmware i915/dg1_huc.bin version 7.9.3
[  116.420664] i915 0000:06:00.0: [drm] GT0: HuC: authenticated for all workloads
[  116.421251] i915 0000:06:00.0: [drm] GT0: GUC: submission enabled
[  116.421253] i915 0000:06:00.0: [drm] GT0: GUC: SLPC enabled
[  116.421439] i915 0000:06:00.0: [drm] GT0: GUC: RC enabled
[  116.460536] [drm] Initialized i915 1.6.0 20201103 for 0000:06:00.0 on minor 0
[  116.486610] fbcon: i915drmfb (fb0) is primary device
[  116.549154] i915 0000:06:00.0: [drm] fb0: i915drmfb frame buffer device
[  116.589349] i915 0000:06:00.0: [drm] Unsupported device. GVT-g is disabled
[ 1320.904149] Modules linked in: xt_nat xt_tcpudp veth xt_conntrack xt_MASQUERADE nf_conntrack_netlink nfnetlink xfrm_user xfrm_algo iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xt_addrtype br_netfilter xfs md_mod zfs(O) spl(O) tcp_diag inet_diag amdgpu mfd_core drm_suballoc_helper drm_exec gpu_sched amdxcp drm_ttm_helper kvmgt vfio_iommu_type1 vfio iommufd mdev mei_gsc i915 drm_buddy i2c_algo_bit drm_display_helper ttm drm_kms_helper drm intel_gtt agpgart nct6775 nct6775_core hwmon_vid ip6table_filter ip6_tables iptable_filter ip_tables x_tables efivarfs bridge stp llc bonding tls ipv6 btrfs intel_rapl_msr intel_rapl_common intel_tcc_cooling x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel raid6_pq xor kvm mei_pxp mei_hdcp pmt_telemetry pmt_class mxm_wmi wmi_bmof irqbypass polyval_clmulni polyval_generic aesni_intel crypto_simd i2c_i801 rapl intel_cstate i2c_smbus e1000e intel_uncore i2c_core mei_me nvme nvme_core intel_vsec mei video tpm_crb backlight tpm_tis tpm_tis_core acpi_pad
thor2002ro commented 5 months ago

wow reading more and more about the DG1.... makes me think its a shit show... wow.....

Schaka commented 5 months ago

I use 6.12.6 with the 6.7.0 kernel and Jellyfin's transcode with my A380 works just fine. I didn't have to do anything special.

If you use the lsio Jellyfin image, you need to add Docker mods, iirc. Using the official Jellyfin image should sovle your problems. hopefully.

thor2002ro commented 5 months ago

he has DG1 .... its different from the rest of the arc cards...arc cards should work out of the box with all the kernels PS: curios if the new XE driver will work better... you need to force load the module tho....

colorblank commented 5 months ago

Trying to run DG1 in Unraid is a nasty work. 1. Adjust BIOS configuration, then we can get a visual output. 2. Replace Linux kernel, then Unraid is able to recognize DG1. 3. (maybe) install intel-gpu-i915-backports, then we can use DG1 as transcoding device.

colorblank commented 5 months ago

@thor2002ro Could you please help integrate 'intel-gpu-i915-backports' into the Unraid kernel? I have tried compiling it several times, but without success. It's definitely beyond my knowledge scope. I would be extremely grateful if you could lend a hand. Thank you very much!

thor2002ro commented 5 months ago

I will try when I have some free time...

thor2002ro commented 5 months ago

but will still be a shit show.... even with the backport driver you still need to modify every docker media-va for it to work...