Ugreen dxp4800+ iGPU 99% success (Win Server 2025)

mcpat

New Member
Feb 10, 2025
8
0
1
Austria
Hi all,

I have a Ugreen DXP4800+ (Intel Pentium Gold 8505 Prozessor), and installed a Windows Server 2025 with latest Intel graphics driver.

I can successfully run Windows with startup/boot screen with following configuration (i440fx)

1. /etc/default/grup
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
2. /etc/modules
Code:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
3. /etc/modprobe.d/vfio.conf
Code:
options vfio-pci ids=8086:46b3,8086:51c8
4. /etc/pve/qemu-server/101.conf
Code:
balloon: 4096
bios: ovmf
boot: order=scsi0;ide0;ide2
cores: 5
cpu: host
efidisk0: local-lvm:vm-101-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=gen12_igd.rom
hostpci1: 0000:00:1f.3,romfile=IntelGopDriver.rom
ide0: local:iso/virtio-win-0.1.266.iso,media=cdrom,size=707456K
ide2: local:iso/26100.1742.240906-0331.ge_release_svc_refresh_SERVER_EVAL_x64FRE_de-de.iso,media=cdrom,size=5916388K
machine: pc-i440fx-9.0
memory: 8192
meta: creation-qemu=9.0.2,ctime=1739235263
name: winserver
net0: virtio=BC:24:11:30:73:8A,bridge=vmbr0,firewall=1
numa: 0
ostype: win11
scsi0: local-lvm:vm-101-disk-1,iothread=1,size=82G
scsihw: virtio-scsi-single
smbios1: uuid=538b8b96-99c3-4b41-8e00-079a299ffdec
sockets: 1
tpmstate0: local-lvm:vm-101-disk-2,size=4M,version=v2.0
usb0: host=145f:01e5,usb3=1
usb1: host=045e:0053,usb3=1
vga: none
vmgenid: c8794363-2425-4a82-807e-ccce742f823e

But if I change to q35 (I only have to add the args line and remove legacy-igd from hostpci0)
Code:
args: -set device.hostpci0.x-igd-opregion=on
...
hostpci0: 0000:00:02.0,romfile=gen12_igd.rom
...
machine: pc-q35-9.0
I get this screen on first boot:
Bildschirmfehler.jpg
After shutdown windows (via RTP) and start the VE again, everything is working.

if it helps:
Code:
root@proxmox:~# lspci -nnk
00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-UP3 GT1 [UHD Graphics] [8086:46b3] (rev 0c)
        DeviceName: Onboard - Video
        Kernel driver in use: vfio-pci
        Kernel modules: i915, xe

00:1f.3 Audio device [0403]: Intel Corporation Alder Lake PCH-P High Definition Audio Controller [8086:51c8] (rev 01)
        DeviceName: Onboard - Sound
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl
I dumped my own IntelGopDriver.rom (with Hiren's BootCD PE x64 from here, the Aptio V AMI Firmware Update Utility from here, UBU tool latest version UBU_v1_80_b1, and finally converted from efi to rom with EfiRom -f 0x8086 -i 0x46b3 --output IntelGopDriver.rom -e IntelGopDriver.efi), so this should not be the problem. The gen12_igd.rom is downloaded from here. Graphics driver is from here.

So my question is, how can I get a normal picture on first boot of VM?

I really hope that someone can help!
 
Last edited:
The issue is likely due to PCIe GPU initialization timing with Q35. Try the following solutions:

1. Add Boot Delay for GPU Initialization:
Modify your VM config (/etc/pve/qemu-server/101.conf):
Code:
args: -set device.hostpci0.x-igd-opregion=on -set device.hostpci0.x-pci-bootdelay=5
This ensures the GPU initializes properly before Windows starts.

2. Enable UEFI GOP in VM BIOS Settings:
  • Ensure OVMF (UEFI) boot mode is correctly set.
  • Try using a different version of gen12_igd.rom.
3. Force Reinitialization of IGD After Boot:
Run this inside the VM after startup:
Code:
Restart-Service igfx
or
Code:
devcon restart "PCI\VEN_8086&DEV_46B3"
This forces Windows to reload the Intel GPU driver.

4. Try Disabling Fast Boot in Windows:
  • Open Power Options → Choose what the power buttons do
  • Disable Turn on fast startup
 
Last edited:
  • Like
Reactions: _gabriel
@shbaek No success, because

1. x-pci-bootdelay doesnt exist (I also cannot find any information in the net about this)
2. q35 bios has no setting for boot mode and I tried all idg.rom's I have. Either no working rom or I can see this blurred screen on first boot
3. devcon crash windows
Code:
[ 2228.991747] DMAR: DRHD: handling fault status reg 3
[ 2228.991753] DMAR: [DMA Write NO_PASID] Request device [00:02.0] fault addr 0x7f000000 [fault reason 0x05] PTE Write access is not set
[ 2228.995763] DMAR: DRHD: handling fault status reg 3
[ 2228.995765] DMAR: [DMA Write NO_PASID] Request device [00:02.0] fault addr 0x7f0a7000 [fault reason 0x05] PTE Write access is not set
[ 2228.997770] DMAR: DRHD: handling fault status reg 3
[ 2228.999781] DMAR: [DMA Write NO_PASID] Request device [00:02.0] fault addr 0x7f150000 [fault reason 0x05] PTE Write access is not set
[ 2229.001790] DMAR: DRHD: handling fault status reg 3
4. Windows 11 doesn't have this option anymore (see picture, left side is Windows 11 and right side is my Windows 10 laptop):
missingoption.PNG

Do you have any other ideas?
 
The issue seems to be related to Intel GPU passthrough on Q35 with Windows 11. Since x-pci-bootdelay doesn’t exist and Fast Boot is missing in Windows 11, try the following:

1️ Force GPU to Reinitialize in Windows 11

Instead of devcon, use:
powershell
Code:
pnputil /restart-device "PCI\VEN_8086&DEV_46B3"
or
powershell
Code:
sc stop igfx && sc start igfx
This ensures the Intel GPU driver is properly reloaded.


2️ Enable Legacy Boot Mode in Windows 11 (Alternative to Fast Boot)

Since Windows 11 removed the Fast Startup option, try enabling legacy boot mode via registry:
powershell
Code:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 0 /f
Then reboot and check if the issue persists.


3️ Try pcie=1 in VM Configuration

Since x-pci-bootdelay is unavailable, try forcing Q35 to handle the GPU differently:
Edit /etc/pve/qemu-server/101.conf:
Bash:
hostpci0: 0000:00:02.0,pcie=1

Restart the VM after making changes.


4️ Test Different Kernel Versions in Proxmox

The DMA Write NO_PASID errors indicate an issue with IOMMU. Try booting with a different kernel:
Check current kernel:
Bash:
uname -r

List available kernels:
Bash:
pveversion -v

Switch to an older (or newer) kernel and reboot:
Code:
apt install pve-kernel-5.15
reboot


Conclusion:

  • Try restarting the GPU driver manually in Windows 11 (pnputil or sc stop igfx).
  • Disable "Fast Boot" alternative via Windows registry.
  • Set pcie=1 in Proxmox VM config.
  • Check if another Proxmox kernel fixes the IOMMU issue.
 

Hi @shbaek

thank you for your help!

1️ Force GPU to Reinitialize in Windows 11

I added deviceid, after this, I can see shortly Windows in a VGA resolution (it seems like that in 4:3), but Windows crashed again
Code:
pnputil /restart-device /deviceid "PCI\VEN_8086&DEV_46B3"

Here is no reaction:
Code:
sc stop igfx && sc start igfx


2️ Enable Legacy Boot Mode in Windows 11 (Alternative to Fast Boot)

issue persists.


3️ Try pcie=1 in VM Configuration

issue persists.


4️ Test Different Kernel Versions in Proxmox

Tested kernels
Code:
6.2.16-17-pve
6.8.12-4-pve
6.8.12-8-pve
issue persists.

I also tested another IGD.rom, but same issue...

If it helps, this is always written on starting vm:
Code:
root@proxmox:~# qm start 101
swtpm_setup: Not overwriting existing state file.
kvm: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.
kvm: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.

And what I found out, after starting vm (blurry screen), and qm shutdown 101 and starting again, the screen is working with sound! But if I start qm with blurry screen and then qm stop 101 and start again, screen is working without sound.
 
Last edited:
IGPU needs at boot some firmware injected.

Code:
[drm] Finished loading DMC firmware i915/dg2_dmc_ver2_08.bin
[drm] GT0: GuC firmware i915/dg2_guc_70.bin version 70.36.0
[drm] GT0: HuC firmware i915/dg2_huc_gsc.bin version 7.10.16

It maybe the reason youre getting issues.
Im not sure if this happens if you mount vfio-pci / blacklist the igpu.

However, there is a solution for that, you can load vfio-pci on igpu with a systemd service on boot.
So the Kernel or Initramfs can still load the neccessave firmware on early boot and on late boot process the systemd-service unmounts the gpu and mounts the vfio-pci driver on it, for passthrough reasons.

I did a howto and script for that, but i have to find the post again, its very old.... :-(

However, before doing all this work, check first if the firmware gets loaded.
Im not entirely sure if it will solve your issue or not, we need to try it simply.