[vfio-users] AMD RX480 Not working with windows

Janusz januszmk6 at gmail.com
Fri Feb 3 11:41:50 UTC 2017


Q35 doesn't work with polaris gpus, try i440fx

On 02/03/2017 08:29 AM, ryanlynch at sigaint.org wrote:
> 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
>>>
>
> _______________________________________________
> 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