Minisforum MS-01 PCIe Card and RAM Compatibility Thread

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

bobbysteel

Member
Nov 20, 2022
44
18
8
On a slightly related note can anyone say if there are pin headers for power control and or reset? I'm trying to squeeze in my pikvm aux control card but haven't had my machine near me lately,to see the pinouts or lack thereof
 

GreenAvacado

Active Member
Sep 25, 2022
172
66
28
As I understand there two two different USB controllers on MS-01 so doing passthrough to two different VMs should be possible. But of some reason I'm unable to pass the following to Ubuntu VM

Code:
0:0d.0 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 USB Controller (prog-if 30 [XHCI])
00:0d.2 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI (prog-if 40 [USB4 Host Interface])
00:0d.3 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI (prog-if 40 [USB4 Host Interface])
Devices connected to USB4 port still shows on lsusb in PVE host but nothing on VM side. Any ideas why?
 

h0schi

Member
Oct 24, 2020
56
29
18
Germany
As I understand there two two different USB controllers on MS-01 so doing passthrough to two different VMs should be possible. But of some reason I'm unable to pass the following to Ubuntu VM

Code:
0:0d.0 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 USB Controller (prog-if 30 [XHCI])
00:0d.2 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI (prog-if 40 [USB4 Host Interface])
00:0d.3 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI (prog-if 40 [USB4 Host Interface])
Devices connected to USB4 port still shows on lsusb in PVE host but nothing on VM side. Any ideas why?
maybe you need to modify the kernel-options of proxmox.
i got the same problems with my i350-T4.



additional you need to add „pcie_acs_override=downstream, multifunction“ in GRUB or Systemd
 
  • Like
Reactions: GreenAvacado

markconstable

New Member
Oct 1, 2022
13
2
3
My Minisforum MS-01 finally arrived after 4 months so I've spent nearly 24 hous trying to see if I can get iGPU passthrough to work, no luck so far. I'll detail my settings and results so far and see if anyone can comment. Hopefully this post will end up with a working example that can apply to all MS-01s with Xe gfx. I'm only interested in a Linux guest (CachyOS FWIW) but I'm happy to test Ubuntu/Debian/Win10 if I have any success with a CachyOS guest VM.

First up, my current PVE version, fastfetch and grub output...

Code:
~ pveversion
pve-manager/8.2.2/9355359cd7afbae4 (running kernel: 6.8.4-2-pve)

~ fastfetch --logo none
OS: Debian GNU/Linux bookworm 12.5 x86_64
Host: Venus Series
Kernel: 6.8.4-2-pve
Uptime: 1 hour, 23 mins
Packages: 744 (dpkg)
Shell: bash 5.2.15
Terminal: /dev/pts/0
CPU: 13th Gen Intel(R) Core(TM) i9-13900H (20) @ 5.40 GHz
GPU: Intel Iris Xe Graphics
Memory: 19.97 GiB / 94.03 GiB (21%)
Swap: Disabled
Disk (/): 2.72 GiB / 1.74 TiB (0%) - zfs
Disk (/rpool): 128.00 KiB / 1.74 TiB (0%) - zfs
Local IP (vmbr0): 192.168.20.25/24 *
Locale: en_US.UTF-8

~ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-6.8.4-2-pve root=ZFS=/ROOT/pve-1 ro root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet
intel_iommu=on iommu=pt
pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init
vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1
modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu,snd_hda_intel,snd_hda_codec_hdmi,i915,xe

I don't recall doing anything in the BIOS of the host. This is the IOMMU output...

Code:
~ dmesg | grep -e DMAR -e IOMMU
[    0.000000] Warning: PCIe ACS overrides enabled; This may allow non-IOMMU protected peer-to-peer DMA
[    0.019771] ACPI: DMAR 0x0000000042767000 000088 (v02 INTEL  EDK2     00000002      01000013)
[    0.019797] ACPI: Reserving DMAR table memory at [mem 0x42767000-0x42767087]
[    0.112877] DMAR: IOMMU enabled
[    0.238012] DMAR: Host address width 39
[    0.238013] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.238018] DMAR: dmar0: reg_base_addr fed90000 ver 4:0 cap 1c0000c40660462 ecap 29a00f0505e
[    0.238019] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.238022] DMAR: dmar1: reg_base_addr fed91000 ver 5:0 cap d2008c40660462 ecap f050da
[    0.238023] DMAR: RMRR base: 0x0000004c000000 end: 0x000000503fffff
[    0.238025] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.238026] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.238026] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.239561] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.668194] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics
[    0.750606] DMAR: No ATSR found
[    0.750607] DMAR: No SATC found
[    0.750608] DMAR: IOMMU feature fl1gp_support inconsistent
[    0.750608] DMAR: IOMMU feature pgsel_inv inconsistent
[    0.750609] DMAR: IOMMU feature nwfs inconsistent
[    0.750610] DMAR: IOMMU feature dit inconsistent
[    0.750610] DMAR: IOMMU feature sc_support inconsistent
[    0.750611] DMAR: IOMMU feature dev_iotlb_support inconsistent
[    0.750611] DMAR: dmar0: Using Queued invalidation
[    0.750614] DMAR: dmar1: Using Queued invalidation
[    0.751192] DMAR: Intel(R) Virtualization Technology for Directed I/O

This the current guest config and keep in mind I have already thrown nearly every thing at the wall to see what might stick so these settings may have already changed...

Code:
~ qm config 100
agent: 1
balloon: 0
bios: ovmf
boot: order=scsi0;net0
cores: 4
cpu: host
efidisk0: local-zfs:vm-100-disk-1,efitype=4m,size=1M
hostpci0: 0000:00:02.0,pcie=1,rombar=0,x-vga=1
machine: q35
memory: 16384
meta: creation-qemu=8.1.2,ctime=1709278650
name: cos
net0: virtio=BC:24:11:C4:66:DC,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: l26
scsi0: local-zfs:vm-100-disk-0,discard=on,iothread=1,size=32G
scsihw: virtio-scsi-single
smbios1: uuid=da2668c8-7e82-4840-8d7e-b8b74111eb71
sockets: 1
tags: CachyOS
vga: none
vmgenid: df113d7e-2251-4b75-bf28-d65acfd721f5

This is promising inside the guest as there is now no renderD128 device on the host and a lsof /dev/dri/renderD128 shows a heap of Plasma desktop processes using this device so the desktop is happy on the inside of the guest but the video output is not reaching the HDMI monitor.

Code:
~ ll /dev/dri*
total 0
drwxr-xr-x 2 root root         80 May  6 12:23 by-path/
crw-rw---- 1 root video  226,   0 May  6 12:23 card0
crw-rw-rw- 1 root render 226, 128 May  6 12:23 renderD128

But here we go, it looks like the i915 kernel driver is crashing inside the guest...

Code:
~ sudo dmesg -w (trimmed output)
[    4.128907] i915 0000:01:00.0: [drm] [ENCODER:235:DDI A/PHY A] failed to retrieve link info, disabling eDP
[    4.129061] ------------[ cut here ]------------
[    4.129062] i915 0000:01:00.0: Platform does not support port C
[    4.129083] WARNING: CPU: 1 PID: 502 at drivers/gpu/drm/i915/display/intel_display.c:7473 assert_port_valid+0x58/0x70 [i915]
[    4.129192] Modules linked in: intel_rapl_msr intel_rapl_common intel_uncore_frequency_common intel_pmc_core intel_vsec pmt_telemetry pmt_class kvm_intel kvm i915(+) irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel polyval_clmulni polyval_generic gf128mul ghash_clmulni_intel snd_hda_intel sha512_ssse3 sha256_ssse3 snd_intel_dspcfg sha1_ssse3 snd_intel_sdw_acpi aesni_intel snd_hda_codec crypto_simd drm_buddy snd_hda_core cryptd i2c_algo_bit snd_hwdep ttm vfat rapl drm_display_helper fat snd_pcm cec snd_timer video snd soundcore psmouse lpc_ich wmi pcspkr i2c_i801 i2c_smbus joydev mousedev mac_hid lz4 lz4_compress pkcs8_key_parser i2c_dev crypto_user fuse loop dm_mod nfnetlink zram qemu_fw_cfg ip_tables x_tables zfs(POE) hid_generic usbhid spl(OE) virtio_net serio_raw atkbd net_failover libps2 failover virtio_scsi vivaldi_fmap virtio_console virtio_pci virtio_pci_legacy_dev virtio_pci_modern_dev i8042 intel_agp intel_gtt serio
[    4.129225] CPU: 1 PID: 502 Comm: (udev-worker) Tainted: P           OE      6.8.7-2-cachyos #1 e216a10ae2e41484fd3701f8809ebda5efe42ea6
[    4.129227] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 4.2023.08-4 02/15/2024
[    4.129228] RIP: 0010:assert_port_valid+0x58/0x70 [i915]
[    4.129310] Code: 7f 08 8d 6e 41 4c 8b 67 50 4d 85 e4 75 03 4c 8b 27 e8 6c 2c 5c ef 89 e9 4c 89 e2 48 c7 c7 40 68 38 c1 48 89 c6 e8 78 a5 ba ee <0f> 0b 89 d8 5b 5d 83 e0 01 41 5c c3 cc cc cc cc 0f 1f 84 00 00 00
[    4.129312] RSP: 0018:ffffaf0f01f27668 EFLAGS: 00010282
[    4.129313] RAX: 0000000000000000 RBX: 000000000000001e RCX: 0000000000000027
[    4.129314] RDX: ffff89c8efca1e88 RSI: 0000000000000001 RDI: ffff89c8efca1e80
[    4.129315] RBP: 0000000000000043 R08: 00000000ffffffea R09: 00000000ffffefff
[    4.129315] R10: ffffffffb1e5b840 R11: 0000000000000003 R12: ffff89c5816a42a0
[    4.129316] R13: ffff89c596759ab8 R14: 0000000000000002 R15: ffff89c581727000
[    4.129317] FS:  00007f4888aa6540(0000) GS:ffff89c8efc80000(0000) knlGS:0000000000000000
[    4.129318] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    4.129318] CR2: 00007f4887db4cbf CR3: 000000010ad04000 CR4: 0000000000750ef0
[    4.129321] PKRU: 55555554
[    4.129321] Call Trace:
[    4.129322]  <TASK>
[    4.129323]  ? __warn+0x81/0x1b0
[    4.129327]  ? assert_port_valid+0x58/0x70 [i915 f31f984425d8753430389b59802635a073912311]

TRIMMED OUTPUT

[    4.130687]  entry_SYSCALL_64_after_hwframe+0x78/0x80
[    4.130690] RIP: 0033:0x7f488956f48d
[    4.130704] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 73 c8 0c 00 f7 d8 64 89 01 48
[    4.130705] RSP: 002b:00007fff6be91c18 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[    4.130707] RAX: ffffffffffffffda RBX: 0000641df0992ba0 RCX: 00007f488956f48d
[    4.130708] RDX: 0000000000000004 RSI: 00007f488967f376 RDI: 0000000000000030
[    4.130709] RBP: 00007f488967f376 R08: 0000000000000070 R09: 00007fff6be91c60
[    4.130710] R10: 0000000000000050 R11: 0000000000000246 R12: 0000000000020000
[    4.130710] R13: 0000641df098f290 R14: 0000000000000000 R15: 0000641df0993a00
[    4.130712]  </TASK>
[    4.130712] ---[ end trace 0000000000000000 ]---
[    4.158040] i915 0000:01:00.0: [drm] GT0: GuC firmware i915/adlp_guc_70.bin version 70.20.0
[    4.158043] i915 0000:01:00.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[    4.172775] i915 0000:01:00.0: [drm] GT0: HuC: authenticated for all workloads
[    4.173651] i915 0000:01:00.0: [drm] GT0: GUC: submission enabled
[    4.173651] i915 0000:01:00.0: [drm] GT0: GUC: SLPC enabled
[    4.174132] i915 0000:01:00.0: [drm] GT0: GUC: RC enabled
[    4.174984] i915 0000:01:00.0: [drm] Protected Xe Path (PXP) protected content support initialized
[    4.175460] [drm] Initialized i915 1.6.0 20230929 for 0000:01:00.0 on minor 0
[    4.175571] i915 display info: display version: 13
[    4.175574] i915 display info: cursor_needs_physical: no
[    4.175574] i915 display info: has_cdclk_crawl: yes
[    4.175575] i915 display info: has_cdclk_squash: no
[    4.175576] i915 display info: has_ddi: yes
[    4.175576] i915 display info: has_dp_mst: yes
[    4.175577] i915 display info: has_dsb: yes
[    4.175577] i915 display info: has_fpga_dbg: yes
[    4.175577] i915 display info: has_gmch: no
[    4.175578] i915 display info: has_hotplug: yes
[    4.175579] i915 display info: has_hti: no
[    4.175579] i915 display info: has_ipc: yes
[    4.175580] i915 display info: has_overlay: no
[    4.175580] i915 display info: has_psr: yes
[    4.175581] i915 display info: has_psr_hw_tracking: no
[    4.175581] i915 display info: overlay_needs_physical: no
[    4.175581] i915 display info: supports_tv: no
[    4.175582] i915 display info: has_hdcp: yes
[    4.175582] i915 display info: has_dmc: yes
[    4.175583] i915 display info: has_dsc: yes
[    5.055782] i915 0000:01:00.0: [drm] Cannot find any crtc or sizes

If anyone has had any success with full iGPU passthrough with any MS-01 then I'd appreciate any hints.
 
  • Like
Reactions: minisfckr-01

GreenAvacado

Active Member
Sep 25, 2022
172
66
28
My Minisforum MS-01 finally arrived after 4 months so I've spent nearly 24 hous trying to see if I can get iGPU passthrough to work, no luck so far. I'll detail my settings and results so far and see if anyone can comment. Hopefully this post will end up with a working example that can apply to all MS-01s with Xe gfx. I'm only interested in a Linux guest (CachyOS FWIW) but I'm happy to test Ubuntu/Debian/Win10 if I have any success with a CachyOS guest VM.

First up, my current PVE version, fastfetch and grub output...

Code:
~ pveversion
pve-manager/8.2.2/9355359cd7afbae4 (running kernel: 6.8.4-2-pve)

~ fastfetch --logo none
OS: Debian GNU/Linux bookworm 12.5 x86_64
Host: Venus Series
Kernel: 6.8.4-2-pve
Uptime: 1 hour, 23 mins
Packages: 744 (dpkg)
Shell: bash 5.2.15
Terminal: /dev/pts/0
CPU: 13th Gen Intel(R) Core(TM) i9-13900H (20) @ 5.40 GHz
GPU: Intel Iris Xe Graphics
Memory: 19.97 GiB / 94.03 GiB (21%)
Swap: Disabled
Disk (/): 2.72 GiB / 1.74 TiB (0%) - zfs
Disk (/rpool): 128.00 KiB / 1.74 TiB (0%) - zfs
Local IP (vmbr0): 192.168.20.25/24 *
Locale: en_US.UTF-8

~ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-6.8.4-2-pve root=ZFS=/ROOT/pve-1 ro root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet
intel_iommu=on iommu=pt
pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init
vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1
modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu,snd_hda_intel,snd_hda_codec_hdmi,i915,xe

I don't recall doing anything in the BIOS of the host. This is the IOMMU output...

Code:
~ dmesg | grep -e DMAR -e IOMMU
[    0.000000] Warning: PCIe ACS overrides enabled; This may allow non-IOMMU protected peer-to-peer DMA
[    0.019771] ACPI: DMAR 0x0000000042767000 000088 (v02 INTEL  EDK2     00000002      01000013)
[    0.019797] ACPI: Reserving DMAR table memory at [mem 0x42767000-0x42767087]
[    0.112877] DMAR: IOMMU enabled
[    0.238012] DMAR: Host address width 39
[    0.238013] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.238018] DMAR: dmar0: reg_base_addr fed90000 ver 4:0 cap 1c0000c40660462 ecap 29a00f0505e
[    0.238019] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.238022] DMAR: dmar1: reg_base_addr fed91000 ver 5:0 cap d2008c40660462 ecap f050da
[    0.238023] DMAR: RMRR base: 0x0000004c000000 end: 0x000000503fffff
[    0.238025] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.238026] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.238026] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.239561] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.668194] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics
[    0.750606] DMAR: No ATSR found
[    0.750607] DMAR: No SATC found
[    0.750608] DMAR: IOMMU feature fl1gp_support inconsistent
[    0.750608] DMAR: IOMMU feature pgsel_inv inconsistent
[    0.750609] DMAR: IOMMU feature nwfs inconsistent
[    0.750610] DMAR: IOMMU feature dit inconsistent
[    0.750610] DMAR: IOMMU feature sc_support inconsistent
[    0.750611] DMAR: IOMMU feature dev_iotlb_support inconsistent
[    0.750611] DMAR: dmar0: Using Queued invalidation
[    0.750614] DMAR: dmar1: Using Queued invalidation
[    0.751192] DMAR: Intel(R) Virtualization Technology for Directed I/O

This the current guest config and keep in mind I have already thrown nearly every thing at the wall to see what might stick so these settings may have already changed...

Code:
~ qm config 100
agent: 1
balloon: 0
bios: ovmf
boot: order=scsi0;net0
cores: 4
cpu: host
efidisk0: local-zfs:vm-100-disk-1,efitype=4m,size=1M
hostpci0: 0000:00:02.0,pcie=1,rombar=0,x-vga=1
machine: q35
memory: 16384
meta: creation-qemu=8.1.2,ctime=1709278650
name: cos
net0: virtio=BC:24:11:C4:66:DC,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: l26
scsi0: local-zfs:vm-100-disk-0,discard=on,iothread=1,size=32G
scsihw: virtio-scsi-single
smbios1: uuid=da2668c8-7e82-4840-8d7e-b8b74111eb71
sockets: 1
tags: CachyOS
vga: none
vmgenid: df113d7e-2251-4b75-bf28-d65acfd721f5

This is promising inside the guest as there is now no renderD128 device on the host and a lsof /dev/dri/renderD128 shows a heap of Plasma desktop processes using this device so the desktop is happy on the inside of the guest but the video output is not reaching the HDMI monitor.

Code:
~ ll /dev/dri*
total 0
drwxr-xr-x 2 root root         80 May  6 12:23 by-path/
crw-rw---- 1 root video  226,   0 May  6 12:23 card0
crw-rw-rw- 1 root render 226, 128 May  6 12:23 renderD128

But here we go, it looks like the i915 kernel driver is crashing inside the guest...

Code:
~ sudo dmesg -w (trimmed output)
[    4.128907] i915 0000:01:00.0: [drm] [ENCODER:235:DDI A/PHY A] failed to retrieve link info, disabling eDP
[    4.129061] ------------[ cut here ]------------
[    4.129062] i915 0000:01:00.0: Platform does not support port C
[    4.129083] WARNING: CPU: 1 PID: 502 at drivers/gpu/drm/i915/display/intel_display.c:7473 assert_port_valid+0x58/0x70 [i915]
[    4.129192] Modules linked in: intel_rapl_msr intel_rapl_common intel_uncore_frequency_common intel_pmc_core intel_vsec pmt_telemetry pmt_class kvm_intel kvm i915(+) irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel polyval_clmulni polyval_generic gf128mul ghash_clmulni_intel snd_hda_intel sha512_ssse3 sha256_ssse3 snd_intel_dspcfg sha1_ssse3 snd_intel_sdw_acpi aesni_intel snd_hda_codec crypto_simd drm_buddy snd_hda_core cryptd i2c_algo_bit snd_hwdep ttm vfat rapl drm_display_helper fat snd_pcm cec snd_timer video snd soundcore psmouse lpc_ich wmi pcspkr i2c_i801 i2c_smbus joydev mousedev mac_hid lz4 lz4_compress pkcs8_key_parser i2c_dev crypto_user fuse loop dm_mod nfnetlink zram qemu_fw_cfg ip_tables x_tables zfs(POE) hid_generic usbhid spl(OE) virtio_net serio_raw atkbd net_failover libps2 failover virtio_scsi vivaldi_fmap virtio_console virtio_pci virtio_pci_legacy_dev virtio_pci_modern_dev i8042 intel_agp intel_gtt serio
[    4.129225] CPU: 1 PID: 502 Comm: (udev-worker) Tainted: P           OE      6.8.7-2-cachyos #1 e216a10ae2e41484fd3701f8809ebda5efe42ea6
[    4.129227] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 4.2023.08-4 02/15/2024
[    4.129228] RIP: 0010:assert_port_valid+0x58/0x70 [i915]
[    4.129310] Code: 7f 08 8d 6e 41 4c 8b 67 50 4d 85 e4 75 03 4c 8b 27 e8 6c 2c 5c ef 89 e9 4c 89 e2 48 c7 c7 40 68 38 c1 48 89 c6 e8 78 a5 ba ee <0f> 0b 89 d8 5b 5d 83 e0 01 41 5c c3 cc cc cc cc 0f 1f 84 00 00 00
[    4.129312] RSP: 0018:ffffaf0f01f27668 EFLAGS: 00010282
[    4.129313] RAX: 0000000000000000 RBX: 000000000000001e RCX: 0000000000000027
[    4.129314] RDX: ffff89c8efca1e88 RSI: 0000000000000001 RDI: ffff89c8efca1e80
[    4.129315] RBP: 0000000000000043 R08: 00000000ffffffea R09: 00000000ffffefff
[    4.129315] R10: ffffffffb1e5b840 R11: 0000000000000003 R12: ffff89c5816a42a0
[    4.129316] R13: ffff89c596759ab8 R14: 0000000000000002 R15: ffff89c581727000
[    4.129317] FS:  00007f4888aa6540(0000) GS:ffff89c8efc80000(0000) knlGS:0000000000000000
[    4.129318] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    4.129318] CR2: 00007f4887db4cbf CR3: 000000010ad04000 CR4: 0000000000750ef0
[    4.129321] PKRU: 55555554
[    4.129321] Call Trace:
[    4.129322]  <TASK>
[    4.129323]  ? __warn+0x81/0x1b0
[    4.129327]  ? assert_port_valid+0x58/0x70 [i915 f31f984425d8753430389b59802635a073912311]

TRIMMED OUTPUT

[    4.130687]  entry_SYSCALL_64_after_hwframe+0x78/0x80
[    4.130690] RIP: 0033:0x7f488956f48d
[    4.130704] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 73 c8 0c 00 f7 d8 64 89 01 48
[    4.130705] RSP: 002b:00007fff6be91c18 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[    4.130707] RAX: ffffffffffffffda RBX: 0000641df0992ba0 RCX: 00007f488956f48d
[    4.130708] RDX: 0000000000000004 RSI: 00007f488967f376 RDI: 0000000000000030
[    4.130709] RBP: 00007f488967f376 R08: 0000000000000070 R09: 00007fff6be91c60
[    4.130710] R10: 0000000000000050 R11: 0000000000000246 R12: 0000000000020000
[    4.130710] R13: 0000641df098f290 R14: 0000000000000000 R15: 0000641df0993a00
[    4.130712]  </TASK>
[    4.130712] ---[ end trace 0000000000000000 ]---
[    4.158040] i915 0000:01:00.0: [drm] GT0: GuC firmware i915/adlp_guc_70.bin version 70.20.0
[    4.158043] i915 0000:01:00.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[    4.172775] i915 0000:01:00.0: [drm] GT0: HuC: authenticated for all workloads
[    4.173651] i915 0000:01:00.0: [drm] GT0: GUC: submission enabled
[    4.173651] i915 0000:01:00.0: [drm] GT0: GUC: SLPC enabled
[    4.174132] i915 0000:01:00.0: [drm] GT0: GUC: RC enabled
[    4.174984] i915 0000:01:00.0: [drm] Protected Xe Path (PXP) protected content support initialized
[    4.175460] [drm] Initialized i915 1.6.0 20230929 for 0000:01:00.0 on minor 0
[    4.175571] i915 display info: display version: 13
[    4.175574] i915 display info: cursor_needs_physical: no
[    4.175574] i915 display info: has_cdclk_crawl: yes
[    4.175575] i915 display info: has_cdclk_squash: no
[    4.175576] i915 display info: has_ddi: yes
[    4.175576] i915 display info: has_dp_mst: yes
[    4.175577] i915 display info: has_dsb: yes
[    4.175577] i915 display info: has_fpga_dbg: yes
[    4.175577] i915 display info: has_gmch: no
[    4.175578] i915 display info: has_hotplug: yes
[    4.175579] i915 display info: has_hti: no
[    4.175579] i915 display info: has_ipc: yes
[    4.175580] i915 display info: has_overlay: no
[    4.175580] i915 display info: has_psr: yes
[    4.175581] i915 display info: has_psr_hw_tracking: no
[    4.175581] i915 display info: overlay_needs_physical: no
[    4.175581] i915 display info: supports_tv: no
[    4.175582] i915 display info: has_hdcp: yes
[    4.175582] i915 display info: has_dmc: yes
[    4.175583] i915 display info: has_dsc: yes
[    5.055782] i915 0000:01:00.0: [drm] Cannot find any crtc or sizes

If anyone has had any success with full iGPU passthrough with any MS-01 then I'd appreciate any hints.
Can't comment on full iGPU passthrough with HDMI display output but SR-IOV based passthrough is certainly working for Windows based VM and Intel Iris Xe drivers if you follow this guide: Proxmox VE 8.2: Windows 11 vGPU (VT-d) Passthrough with Intel Alder Lake - Derek Seaman's Tech Blog

Thing to note here is only kernel 6.5 is supported so far. I see that you're on 6.8 on PVE, so not sure if that's case here too because you're doing full passthrough without GPU splitting.
 

markconstable

New Member
Oct 1, 2022
13
2
3
Thing to note here is only kernel 6.5 is supported so far. I see that you're on 6.8 on PVE, so not sure if that's case here too because you're doing full passthrough without GPU splitting.

Thanks for that, I dopped back to 6.5.13-3-pve as per a comment in your linked post. Still no joy but I think I have less dmesg -w errors in both the host and the guest but, in the guest, this seems interesting... I did try that in the guest kernel but that's when the i915 crash above was happening.

Code:
[    1.366063] xe 0000:01:00.0: Your graphics device a7a0 is not officially supported
               by xe driver in this kernel version. To force Xe probe, use xe.force_probe='a7a0' and i915.force_probe='!a7a0'

For future me the commands to easily switch back and pin this particular kernel are...

Code:
apt update
apt install proxmox-headers-6.5.13-3-pve
apt install proxmox-kernel-6.5.13-3-pve-signed
proxmox-boot-tool kernel pin 6.5.13-3-pve
proxmox-boot-tool refresh
reboot
 

ibis69

New Member
Mar 14, 2024
8
7
3
Thanks for that, I dopped back to 6.5.13-3-pve as per a comment in your linked post. Still no joy but I think I have less dmesg -w errors in both the host and the guest but, in the guest, this seems interesting... I did try that in the guest kernel but that's when the i915 crash above was happening.

Code:
[    1.366063] xe 0000:01:00.0: Your graphics device a7a0 is not officially supported
               by xe driver in this kernel version. To force Xe probe, use xe.force_probe='a7a0' and i915.force_probe='!a7a0'

For future me the commands to easily switch back and pin this particular kernel are...

Code:
apt update
apt install proxmox-headers-6.5.13-3-pve
apt install proxmox-kernel-6.5.13-3-pve-signed
proxmox-boot-tool kernel pin 6.5.13-3-pve
proxmox-boot-tool refresh
reboot
Hi, for me it's working fine (HW acceleration Ok in Plex LXC and Jellyfin (Ubuntu22)) but i use sr-iov mode with i915 dkms from here (with last PR and patch from last days ...) : GitHub - strongtz/i915-sriov-dkms: dkms module of Linux i915 driver with SR-IOV support . I'm running Proxmox 8.2 with pinned kernel to v.6.5.13-5


BOOT_IMAGE=/boot/vmlinuz-6.5.13-5-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=7
 
  • Like
Reactions: Sebo

BlueChris

Active Member
Jul 18, 2021
119
40
28
52
Athens-Greece
As I understand there two two different USB controllers on MS-01 so doing passthrough to two different VMs should be possible. But of some reason I'm unable to pass the following to Ubuntu VM

Code:
0:0d.0 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 USB Controller (prog-if 30 [XHCI])
00:0d.2 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI (prog-if 40 [USB4 Host Interface])
00:0d.3 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI (prog-if 40 [USB4 Host Interface])
Devices connected to USB4 port still shows on lsusb in PVE host but nothing on VM side. Any ideas why?
maybe you need to modify the kernel-options of proxmox.
i got the same problems with my i350-T4.



additional you need to add „pcie_acs_override=downstream, multifunction“ in GRUB or Systemd
i have the same problem in my machine, whichever of the 2 controllers i passthrough to a VM (usb3 or usb4), no matter where i plug anything in the whatever usb in the machine, the device appears in the VM with the passthrough controller.
In specific i passthrough the USB3 controller of the machine and my grub is like this.

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_aspm=off pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu"

if i plug something in the usb4 controller it appears on the VM with the USB3 controller... crazy
 

markconstable

New Member
Oct 1, 2022
13
2
3
Hi, for me it's working fine (HW acceleration Ok in Plex LXC and Jellyfin (Ubuntu22)) but i use sr-iov mode with i915 dkms from here (with last PR and patch from last days ...) : GitHub - strongtz/i915-sriov-dkms: dkms module of Linux i915 driver with SR-IOV support . I'm running Proxmox 8.2 with pinned kernel to v.6.5.13-5
Thanks for the link. Never having had any experience using either SR-IOV or full passthrough, I'm not sure what benefit SR-IOV would offer me in the context of runing a single primary Linux desktop OS within Proxmox. If it indeed involves rebuilding a kernel then it's a hard pass.

It's looking like I'll have to wait for someone to report if they have success using an Intel/AMD PCIe video card with full passthrough OR take a 180 degree turn and install my desktop OS directly on the hardware and virtualize Proxmox instead, but I have zero clue as to whether a nested Proxmox would be performant enough.
 

GreenAvacado

Active Member
Sep 25, 2022
172
66
28
i have the same problem in my machine, whichever of the 2 controllers i passthrough to a VM (usb3 or usb4), no matter where i plug anything in the whatever usb in the machine, the device appears in the VM with the passthrough controller.
In specific i passthrough the USB3 controller of the machine and my grub is like this.

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_aspm=off pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu"

if i plug something in the usb4 controller it appears on the VM with the USB3 controller... crazy
That is really odd and just to confirm when you say USB controller you mean PCI passthrough of USB controller?
 

GreenAvacado

Active Member
Sep 25, 2022
172
66
28
Probably I'm overthinking this but realized after replacing Topton Ryzen 7, 4 x i226-V box with MS-01 after two years how noisy the fan has gotten.

Anybody knows how to get spare CPU fan for MS-01?
 

ibis69

New Member
Mar 14, 2024
8
7
3
Yes please, a changelog would be good, and some instructions how to apply this firmware (says Windows zip) update from LINUX!
Hi, i've just done it with a Usb key (i'm using proxmox):

* Format USBkey to fat32, copy all the content to the root dir.
* Enter Bios then disable secureboot if enabled, select to boot from usbkey (or press F7 @ boot time)
* When in the shell of the usb key, you have to find the right device (for me it was BLK1: ), you can try FS1: then ls to see if you see the content of your usb drive, else try FS2: , etc ..... ('map' command will show the name of the detected devices)
* when you find the right one, type AfuEfiFlash.nsh and you're done as everything will be done by the updater from now

bios.jpg
 
Last edited:

GreenAvacado

Active Member
Sep 25, 2022
172
66
28
Hi, i've just done it with a Usb key (i'm using proxmox):

* Format USBkey to fat32, copy all the content to the root dir.
* Enter Bios then disable secureboot if enabled, select to boot from usbkey (or press F7 @ boot time)
* When in the shell of the usb key, you have to find the right device (for me it was BLK1: ), you can try FS1: then ls to see if you see the content of your usb drive, else try FS2: , etc ..... ('map' command will show the name of the detected devices)
* when you find the right one, type AfuEfiFlash.nsh and you're done as everything will be done by the updater from now

View attachment 36530
So you managed to successfully update to the latest version of BIOS?
 

BlueChris

Active Member
Jul 18, 2021
119
40
28
52
Athens-Greece
That is really odd and just to confirm when you say USB controller you mean PCI passthrough of USB controller?
Pci Passthrough to Windows VM the whole usb3 controller. I end it up buying as i said in a previous post a multiplexer card (2 x NVME) where in the 1st slot i poped in an M2 renesas usb3 controller and a m2 to pcie for the GFX card. After this i was able to passthrough for example a simple usb device which is my UPS to my Home Assistant that runs in the box with NUT.
 

BlueChris

Active Member
Jul 18, 2021
119
40
28
52
Athens-Greece
New BIOS just popped up. minisforum
Thanks for sharing this.

Sadly there is no changelist. Anybody knows what changed?
Yes please, a changelog would be good, and some instructions how to apply this firmware (says Windows zip) update from LINUX!
Hi, i've just done it with a Usb key (i'm using proxmox):

* Format USBkey to fat32, copy all the content to the root dir.
* Enter Bios then disable secureboot if enabled, select to boot from usbkey (or press F7 @ boot time)
* When in the shell of the usb key, you have to find the right device (for me it was BLK1: ), you can try FS1: then ls to see if you see the content of your usb drive, else try FS2: , etc ..... ('map' command will show the name of the detected devices)
* when you find the right one, type AfuEfiFlash.nsh and you're done as everything will be done by the updater from now

View attachment 36530
I just sent a mail to support@minisforum.com asking for a changelog. My MS-01 works fine except some quirks but its rock solid. I dont want to pass something that maybe will reduce any ability or anything for the general sake of stability, i have been there and done that so i am cautious.