December 25, 2025Dec 25 Author I tried 3 things.Removed VNC from the XML so only the AMD GPU is assigned.Added the additional info to the syslinux config. (see the attached screenshot)Ran the script which seemed to mostly run.Still no change sadly.
December 26, 2025Dec 26 A couple of settings might be conflicting with one another. I'd recommend starting from scratch and trying one thing at a time.I would undo the "PCIe ACS override" or "VFIO allow unsafe interrupts" changes and the system devices/modprobe changes you made. For one, if your VM was working without them before, I can't think of a reason why you would suddenly need them. For another, it might be the reason the script isn't working. There's just too many variables so let's address them one at a time.Also, remove the sysconfig settings I mentioned. I haven't actually tried those settings myself so I can't be certain they will work. In my situation, the script did fix my issue but it may return once I reboot, I don't know. I usually have to schedule a time to reboot. So basically, the sysconfig should prevent the conflict from happening on boot (though I cannot attest to that), and the script should fix the conflict after the fact. Of course, this is still assuming the issue is what I think it is.So, undo all those settings, reboot, and we'll take things one step at a time. After you reboot try this:1. Check the system devices page. The GPU and GPU audio should still be showing as bound to VFIO.2. Open a terminal and run echo 0000:0c:00.0 > /sys/bus/pci/devices/0000:0c:00.0/driver/unbind3. Then run echo 0000:0c:00.1 > /sys/bus/pci/devices/0000:0c:00.1/driver/unbind4. Check the system devices page again. The GPU and GPU audio should not be bound to VFIO now.5. Go back to the terminal and run echo 1 > /sys/bus/pci/devices/0000:0c:00.0/reset6. Then run echo 0000:0c:00.0 > /sys/bus/pci/drivers/vfio-pci/bind7. Then run echo 0000:0c:00.1 > /sys/bus/pci/drivers/vfio-pci/bindCheck the devices page again to see if the GPU is not bound to VFIO again and start the VM. If you encounter any issues, post a screenshot of the device in the system devices page along with the output of lspci -vv -s 0c:00 and we'll go from there.
December 27, 2025Dec 27 Author I went through and reset everything back to factory settings that I could think of. I then bound the GPU Video and GPU Audio and rebooted. Ran the first two commands with no issues, but on the third I get an error. I'll attached a screenshot.Also here is the output of lspci -vv -s 0c:00root@LMB-UR01:~# lspci -vv -s 0c:000c:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 48 [Radeon RX 9070/9070 XT/9070 GRE] (rev c0) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. Device 061a Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 15 IOMMU group: 27 Region 0: Memory at d0000000 (64-bit, prefetchable) [size=256M] Region 2: Memory at e0000000 (64-bit, prefetchable) [size=2M] Region 4: I/O ports at e000 [size=256] Region 5: Memory at fce00000 (32-bit, non-prefetchable) [size=512K] Expansion ROM at 000c0000 [disabled] [size=128K] Capabilities: [48] Vendor Specific Information: Len=08 <?> Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [64] Express (v2) Legacy Endpoint, IntMsgNum 0 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- TEE-IO- DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+ RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr+ NonFatalErr+ FatalErr- UnsupReq+ AuxPwr- TransPend- LnkCap: Port #0, Speed 32GT/s, Width x16, ASPM L1, Exit Latency L1 <1us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- FltModeDis- LnkSta: Speed 32GT/s, Width x16 TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR+ 10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix+, MaxEETLPPrefixes 1 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS- AtomicOpsCap: 32bit+ 64bit+ 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- AtomicOpsCtl: ReqEn- IDOReq- IDOCompl- LTR+ EmergencyPowerReductionReq- 10BitTagReq- OBFF Disabled, EETLPPrefixBlk- LnkCap2: Supported Link Speeds: 2.5-32GT/s, Crosslink- Retimer+ 2Retimers+ DRS- LnkCtl2: Target Link Speed: 32GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1- EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest- Retimer- 2Retimers- CrosslinkRes: unsupported, FltMode- Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Capabilities: [150 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- UncorrIntErr+ BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CorrIntErr- HeaderOF- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ CorrIntErr- HeaderOF- AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 40001001 00000001 000a0000 00000000 Capabilities: [200 v1] Physical Resizable BAR BAR 0: current size: 256MB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB BAR 2: current size: 2MB, supported: 2MB 4MB 8MB 16MB 32MB 64MB 128MB 256MB Capabilities: [240 v1] Power Budgeting <?> Capabilities: [270 v1] Secondary PCI Express LnkCtl3: LnkEquIntrruptEn- PerformEqu- LaneErrStat: 0 Capabilities: [2a0 v1] Access Control Services ACSCap: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans- ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans- Capabilities: [2d0 v1] Process Address Space ID (PASID) PASIDCap: Exec+ Priv+, Max PASID Width: 10 PASIDCtl: Enable+ Exec- Priv- Capabilities: [320 v1] Latency Tolerance Reporting Max snoop latency: 1048576ns Max no snoop latency: 1048576ns Capabilities: [410 v1] Physical Layer 16.0 GT/s Phy16Sta: EquComplete- EquPhase1- EquPhase2- EquPhase3- LinkEquRequest- Capabilities: [450 v1] Lane Margining at the Receiver PortCap: Uses Driver- PortSta: MargReady+ MargSoftReady- Capabilities: [500 v1] Physical Layer 32.0 GT/s Phy32Cap: EqualizationBypass+ NoEqualizationNeeded- ModTsMode0+ ModTsMode1- ModTsMode2- Phy32Ctl: EqualizationBypassDis- NoEqualizationNeededDis- Modified TS Usage Mode: PCI Express Phy32Sta: EquComplete+ EquPhase1+ EquPhase2+ EquPhase3+ LinkEquRequest- Received Enhanced Link Behavior Control: Equalization bypass to highest rate support ModTsRecv- TxPrecodeOn- TxPrecodeReq- NoEqualizationNeededRecv- Kernel modules: amdgpu0c:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 48 HDMI/DP Audio Controller (prog-if 00 [HDA compatible]) Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 48 HDMI/DP Audio Controller Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin B routed to IRQ 5 IOMMU group: 28 Region 0: Memory at fcea0000 (32-bit, non-prefetchable) [size=16K] Capabilities: [48] Vendor Specific Information: Len=08 <?> Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [64] Express (v2) Legacy Endpoint, IntMsgNum 0 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- TEE-IO- DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+ RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr+ NonFatalErr+ FatalErr- UnsupReq+ AuxPwr- TransPend- LnkCap: Port #0, Speed 32GT/s, Width x16, ASPM L1, Exit Latency L1 <1us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- FltModeDis- LnkSta: Speed 32GT/s, Width x16 TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR+ 10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix+, MaxEETLPPrefixes 1 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS- AtomicOpsCap: 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- AtomicOpsCtl: ReqEn- IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq- 10BitTagReq- OBFF Disabled, EETLPPrefixBlk- LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1- EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest- Retimer- 2Retimers- CrosslinkRes: unsupported, FltMode- Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Capabilities: [150 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- UncorrIntErr+ BlockedTLP- AtomicOpBlocked- TLPBlockedErr- PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CorrIntErr- HeaderOF- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ CorrIntErr- HeaderOF- AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 40001001 00000001 000a0000 00000000 Capabilities: [2a0 v1] Access Control Services ACSCap: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans- ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-root@LMB-UR01:~#
December 29, 2025Dec 29 Author Well I may have figured it out. I was walking through my XML for the VM and trying every setting one at a time and when I switched the Hyper-V setting to yes everything started working perfect. What exactly is that sending to the VM?
December 29, 2025Dec 29 11 minutes ago, Elembemedia said:Well I may have figured it out. I was walking through my XML for the VM and trying every setting one at a time and when I switched the Hyper-V setting to yes everything started working perfect. What exactly is that sending to the VM?I believe you are refering to <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' clusters='1' cores='6' threads='2'/> <cache mode='passthrough'/> <!-- Explicit feature policy (non-conflicting, defensive) --> <feature policy='disable' name='hypervisor'/> <feature policy='require' name='pcid'/> <feature policy='require' name='pdpe1gb'/> <feature policy='require' name='aes'/> <feature policy='require' name='topoext'/> </cpu> https://www.reddit.com/r/VFIO/comments/cpf96e/feature_policydisable_namehypervisor_greatly/It is used to asist in telling windows and games that the system in not running in a VM.again you would have to read and find the info in the docs:https://libvirt.org/formatdomaincaps.html
December 29, 2025Dec 29 Really wished libvirt would add search and better info...Review docs:https://libvirt.org/formatdomain.html#id25hypervEnable various features improving behavior of guests running Microsoft Windows. Since 11.3.0 some of these flags are also available for Xen domains running Microsoft Windows.
May 16May 16 On 12/18/2025 at 3:15 PM, Elembemedia said:Alright, I've followed all of that and still not working all the way. I do at least get something on the display now but not actual video.I am having this exact green issue after swapping from a 3060 ti over to a 9070 xt.It's driving my nuts, I had it on 7.1.4, and even after upgrading 7.3.0.I have tried binding to VFIO on start (which doesn't work because the GPU gets stuck in D3), i've tried leaving it unbound and running the script below.It displays an output before the AMD drivers are installed, also displays an output when turning on (Unraid Splash screen), then immedately this.I'm fully out of ideas, not sure where it's going wrong and have tried everything in here to fix it.Any ideas?#!/bin/bash GPU="0000:03:00.0" GPU_AUDIO="0000:03:00.1" BAR_INDEX=8 # 8 = 256MB, 3 = 8MB log() { echo "[gpu-prep $(date '+%H:%M:%S')] $*"; } unbind() { local dev="$1" local drvlink="/sys/bus/pci/devices/$dev/driver" if [ -L "$drvlink" ]; then local drv drv=$(basename "$(readlink "$drvlink")") log "Unbinding $dev from $drv" echo "$dev" > "$drvlink/unbind" else log "$dev already unbound" fi } log "Starting" log "Available reset methods: $(cat /sys/bus/pci/devices/$GPU/reset_method)" # Unbind both functions from whatever currently has them unbind "$GPU" unbind "$GPU_AUDIO" sleep 2 # Bus reset to clear any leftover state from amdgpu / framebuffer log "Triggering bus reset on $GPU" if echo 1 > "/sys/bus/pci/devices/$GPU/reset" 2>/dev/null; then log " reset succeeded" else log " reset failed (check dmesg)" fi sleep 2 # Resize BAR2 (only meaningful with CAM/ReBAR enabled in BIOS) log "Resizing BAR2 (index $BAR_INDEX = 256MB)" if echo "$BAR_INDEX" > "/sys/bus/pci/devices/$GPU/resource2_resize" 2>/dev/null; then log " BAR2 resize accepted" else log " BAR2 resize failed (check dmesg)" fi sleep 2 # Force vfio-pci as the only driver allowed to bind to these devices log "Setting driver_override to vfio-pci" echo "vfio-pci" > "/sys/bus/pci/devices/$GPU/driver_override" echo "vfio-pci" > "/sys/bus/pci/devices/$GPU_AUDIO/driver_override" log "Verification:" log " $GPU driver: $(basename "$(readlink /sys/bus/pci/devices/$GPU/driver 2>/dev/null)" 2>/dev/null || echo none)" log " $GPU_AUDIO driver: $(basename "$(readlink /sys/bus/pci/devices/$GPU_AUDIO/driver 2>/dev/null)" 2>/dev/null || echo none)" log "Done. libvirt managed='yes' will bind to vfio-pci when the VM starts." adam-htpc-diagnostics-20260516-2251.zip
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.