[vfio-users] AMD RX480 Not working with windows

ryanlynch at sigaint.org ryanlynch at sigaint.org
Fri Feb 3 07:29:25 UTC 2017


Hi

I have a working configuration with ubuntu guest. I tried using 1G pages
and found that I need at least 4G for the linux driver to load. I am using
the standard XFX roms that I used to flash the BIOS which are signed and
not modded. I have tried taking the working native windows configuration
and booting that up via qemu and after it installs the acpi drivers is
fails with the same reason..

This command line works for macOs sierra (unacellerated but it does the
full screen 1920x2060 and 3840x2060) and works with glamour enabled Ubuntu
guest. I also found that you get a corrupt screen if you don't enable
glamour under gentoo.

img=win
bios=/mnt/work/vm/etc
mem="-m 4G -mem-path /mnt/hugepg1g"
#cpus="-cpu host,nx=on,kvm=on,vendor=GenuineIntel -smp
cpus=4,sockets=1,cores=2,threads=2"
cpus="-cpu
host,+kvmclock,+kvmclock-stable-bit,nx=on,kvm=on,vendor=GenuineIntel -smp
cpus=4,sockets=1,cores=2,threads=2"
monitor="-monitor none"
# rombar=1 = good
vfio="-device
vfio-pci,host=01:00.0,x-vga=off,multifunction=on,rombar=1,romfile=/${bios}/xfx-rx480-stock.rom,addr=10.0
-device vfio-pci,host=01:00.1,addr=10.1"
machine="-machine q35,accel=kvm,usb=off,vmport=off,kernel_irqchip=on"
net="-netdev user,id=vmnic,restrict=n,hostfwd=tcp::1022-:22 -device
virtio-net-pci,romfile=,netdev=vmnic"
display="-display none"
graphic=""
sound=""
inputs=""
image_file="windoze.img"
serial="-serial stdio"

if [ ! -z "${1}" ] ; then
   image_file="${1}"
fi

    for dev in 0000:01:00.0 0000:01:00.1 ; do
        vendor="$(cat /sys/bus/pci/devices/${dev}/vendor)"
        device="$(cat /sys/bus/pci/devices/${dev}/device)"
        if [ -e "/sys/bus/pci/devices/${dev}/driver" ]; then
            echo "${dev}" > "/sys/bus/pci/devices/${dev}/driver/unbind"
         fi
         echo "${vendor}" "${device}" > /sys/bus/pci/drivers/vfio-pci/new_id
    done

inputs="-usbdevice host:xxxx:yyyy"

if [ ! -f "${image_file}" ] ; then
    loop_dev="$(losetup --find)"
    qemu-img create -f raw "${image_file}" 12G
    sgdisk --zap-all "${image_file}"
    sgdisk --set-alignment=1 --new=1:34:131071 "${image_file}"
    sgdisk --typecode 1:ef00 "${image_file}"
    sgdisk --set-alignment=1 --new=2:131072: "${image_file}"
    sgdisk --typecode 2:8300 "${image_file}"
    sgdisk --partition-guid=1:R
    sgdisk --partition-guid=2:R
    gdisk -l  "${image_file}"
    tmpMount="$(mktemp -d)"
    losetup --partscan "${loop_dev}" "${image_file}"
    mkfs.vfat -f1 -F12 "${loop_dev}"p1
    mount -orw "${loop_dev}"p1 "${tmpMount}"
    mkdir -p "${tmpMount}"/EFI/BOOT
    cp /mnt/work/os/ar//lib/modules/current/../bootx64.efi
"${tmpMount}"/EFI/BOOT/BOOTX64.EFI
    umount "${tmpMount}"
    mkfs.ext4 -O
^has_journal,extent,huge_file,flex_bg,inline_data,64bit,dir_nlink,extra_isize,bigalloc,sparse_super2
-E num_backup_sb=0 -G 32 -C 4096 -I 256 "${loop_dev}"p2
    tune2fs -E hash_alg=tea -e remount-ro "${loop_dev}"p2
    mount -t ext4 -onoatime,nodiratime,user_xattr,acl,noauto,delalloc,rw
"${loop_dev}"p2 "${tmpMount}"
    rsync -SHax /mnt/work/os/ar/ "${tmpMount}"/
    umount "${tmpMount}"
    rmdir "${tmpMount}"
    losetup --detach "${loop_dev}"
fi

qemu-system-x86_64 \
   -nodefaults \
   -nodefconfig \
   -enable-kvm \
   -no-fd-bootchk \
   -no-user-config \
   -no-hpet \
   -rtc base=utc,clock=host,driftfix=none \
   ${mem} \
   ${machine} \
   ${cpus} \
   -L ${bios} \
   -drive if=pflash,format=raw,readonly,file=${bios}/OVMF_CODE-pure-efi.fd \
   -drive if=pflash,format=raw,readonly,file=${bios}/OVMF_1600_600-efi.fd \
   ${vfio} \
   -drive
id=disk0,if=none,format=raw,cache=none,detect-zeroes=on,copy-on-read=off,file="${image_file}"
-device virtio-scsi-pci --device scsi-hd,drive=disk0,bootindex=0 \
   ${net} \
   ${vga} \
   ${display} \
   ${inputs} \
   ${graphic} \
   ${sound} \
   ${monitor} \
   ${serial} \
   -parallel none


Cheers

Ryan


> I have a working configuration with an RX480, Windows 10 guest and Linux
> x64 host, but with a Sandy Bridge i5. Can you give more information? Host
> kernel version, chipset, iommu groups, qemu/libvirt configuration... Have
> you ever managed to get it working with a different graphics card or guest
> OS?
>
>
> Javi
>
> 2017-02-03 5:22 GMT+01:00 <ryanlynch at sigaint.org>:
>
>> Does the RX480 work with windows 10 guest on linux x64 host haswell
>> vt-d?
>> I have working config for linux guest but windows 10 gives error -31
>> "Could not install drivers" and video driver using low res vga driver
>> (from windows) all booting UEFI.
>>
>> Have tried 3 different windows version drivers 16.9 16.12 and 17.1 and
>> still have same problem. Anyone have success with this?
>>
>> Lync
>>
>> _______________________________________________
>> vfio-users mailing list
>> vfio-users at redhat.com
>> https://www.redhat.com/mailman/listinfo/vfio-users
>>
>





More information about the vfio-users mailing list