retro - Old ATI (before AMD) videocards passthrough, managed someone make it working?


Recommended Posts

Hello,

i wonder if someone managed to get working old Ati videocards pass through with KVM? Im using Qemu 4.2.

 

 I managed to get working almost other else Win98 ready 3D videocards  PCI/PCI-e videocards from Nvidia, Matrox, 3dfx on GB Z170 MB with PCI slot but i never was successful with ATI  PCI/PCIE-e ones.

 

I have tried so far (card name - problem ) :
ATI Mach 64 PCI - videocard - machine start segfault
ATI Rage XL PCI - videocard - machine start segfault

ATI X700 PCI-E - videocard - machine started, completely broken picture from boot.. and only on Analog D-SUB output, DVI is dead
ATI X800 XL PCI-E - videocard - machine started, completely broken picture from boot.. and only on Analog D-SUB output, DVI is dead

   

  I also wonder is someone able to download these cards vbios roms, from some Linux or Windows tool.. i tried some Linux rom parser utility for Linux from Proxmox site (its working fine for old Nvidia cards) and GPU-Z on modern Windows 7, but i want lucky.

Edited by ruthan
Link to comment
  • 3 months later...

How did you get these old vga cards working? I've been trying for days to get a 3dfx voodoo3 pci card to pass through to a VM and all i get is device is busy errors. pcie gpu devices will pass through and allow the vm to start. PCI devices will not for some reason. im using a pci slot on an x58 motherboard with a x5660 xeon cpu. iommu etc are all enabled. ive tried stubbing the pci devices. i feel like it should be more straight forward than this. 

error:

internal error: qemu unexpectedly closed the monitor: 2020-07-03T23:40:34.689526Z qemu-system-x86_64: -device vfio-pci,host=0000:0b:01.0,id=hostdev0,x-vga=on,bus=pci.0,addr=0x3,romfile=/boot/ROMS/3k07sg.rom: vfio 0000:0b:01.0: Failed to set up TRIGGER eventfd signaling for interrupt INTX-0: VFIO_DEVICE_SET_IRQS failure: Device or resource busy

 

Link to comment

For it not needed nothing special, i passed it through by same way as PCI-E devices.

 Device is busy - could mean that card is still used by main OS, check if is really using vfio kernel driver by:

lspci -knv 

 Otherwise im using simple passthrough line:

-device vfio-pci,host=04:01.0,x-vga=on

 For me rom bios file is not needed. I suppose that you are emulation i440 chipset, not q35.

 

  Here is list which card i made working and which not:

https://www.win-raid.com/t6017f53-Windows-SE-on-Modern-Hardware-5.html#msg105633
 

  I would say that there is not good explanation why some cards are not working in some situations, there have to be some bugs. 

 

  Otherwise nGlide si working quite nice even on Win 98x so cant can 3dfx stuff on Nvidia cards too, its working well.

Link to comment

when you say -device vfio-pci,host=04:01.0,x-vga=on, do you mean in the VM XML? mine is listed like this
   

<hostdev mode='subsystem' type='pci' managed='yes' xvga='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0b' slot='0x01' function='0x0'/>
      </source>
      <rom file='/boot/ROMS/3k07sg.rom'/>

 

or are you talking about in the syslinux.config ammend?
under the file Flash/syslinux/syslinux.cfg configured as follows.

label Unraid OS
  menu default
  kernel /bzimage
  append  vfio-pci.ids=121a:0005 vfio_iommu_type1.allow_unsafe_interrupts=1 pcie_acs_override=downstream,multifunction initrd=/bzroot

 

these are really the only pointers ive found so far to get anything working. yet none address the error i'm getting. i did try adding this script 

echo 0 >/sys/class/vtconsole/vtcon0/bind
echo 0 >/sys/class/vtconsole/vtcon1/bind
echo efi-framebuffer.0 >/sys/bus/platform/drivers/efi-framebuffer/unbind
 

but it did nothing...

 

as for the iommu group it looks like this

IOMMU group 15:[8086:244e] 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 90)

[121a:0005] 0b:01.0 VGA compatible controller: 3Dfx Interactive, Inc. Voodoo 3 (rev 01)

 

Edited by TechAsa
Link to comment

I dont use Unraid or Virt manager right now, but i just native Qemu on Linux, i find out that its more universal and easier to debug. Its line from sh Qemu starting script.

 

 If is something working with Unraid its should work on Linux +QEMU and vice versa in 99% of cases.. Only main difference is syntax - sh script vs xml file.

 This is good place to start with Qemu on Linux:
https://heiko-sieger.info/running-windows-10-on-linux-using-kvm-with-vga-passthrough/ 

  • Like 1
Link to comment

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.