j'ai deux GPU Radeon (AMD R9 290 et AMD HD7870). Je souhaite dissocier la R9 290 du pilote radeon et la remettre au pilote QEMUs VFIO-PCI. J'utilise ces commandes:
echo 0000:06:00.0 > /sys/bus/pci/drivers/radeon/unbind
echo 1002 67b1 > /sys/bus/pci/drivers/vfio-pci/new_id
echo 0000:06:00.1 > /sys/bus/pci/drivers/snd_hda_intel/unbind
echo 1002 aac8 > /sys/bus/pci/drivers/vfio-pci/new_id
mais mon système se bloque après 5 secondes. Je ne veux pas lier le GPU à pci-stub
parce que je veux utiliser deux écrans avant de démarrer la VM. Comme dans cette vidéo: https://www.youtube.com/watch?v=17qxEpn4EGs
Est-ce que quelqu'un peut m'aider?
Meilleures salutations
J'utilise actuellement cela, il nécessite cependant un redémarrage de lightdm. Exécutez-le depuis une autre console tty, pas dans la session lightdm elle-même.
(CTRL + ALT + F # pour une console, F7 est normalement la xsession)
#!/bin/bash
read -n3 -rsp "Restart lightdm to unbind the GPU? [yes] " res
test "$res" != 'yes' && exit 1
echo
Sudo service lightdm stop
Sudo echo "1002 683d" > /sys/bus/pci/drivers/vfio-pci/new_id
Sudo echo "1002 aab0" > /sys/bus/pci/drivers/vfio-pci/new_id
Sudo echo "0000:01:00.0" > /sys/bus/pci/devices/0000:01:00.0/driver/unbind
Sudo echo "0000:01:00.1" > /sys/bus/pci/devices/0000:01:00.1/driver/unbind
Sudo echo "0000:01:00.0" > /sys/bus/pci/drivers/vfio-pci/bind
Sudo echo "0000:01:00.1" > /sys/bus/pci/drivers/vfio-pci/bind
Sudo echo "1002 683d" > /sys/bus/pci/drivers/vfio-pci/remove_id
Sudo echo "1002 aab0" > /sys/bus/pci/drivers/vfio-pci/remove_id
Sudo service lightdm start
echo "Rebind Audio"
Sudo modprobe pci_stub
Sudo echo "8086 8ca0" > /sys/bus/pci/drivers/pci-stub/new_id
Sudo echo "0000:00:1b.0" > /sys/bus/pci/drivers/snd_hda_intel/unbind
Sudo echo "0000:00:1b.0" > /sys/bus/pci/drivers/pci-stub/bind
Sudo echo "8086 8ca0" > /sys/bus/pci/drivers/pci-stub/remove_id
# Check if VM drive is mounted
if ! grep -qs '/media/ljosalfur/VM' /proc/mounts; then
echo "Attempting to mount VM drive. I don't know how though."
#Sudo mkdir /media/ljosalfur/VM
#Sudo mount /dev/disk/by-id/0BD253F0-EF7F-6F40-BDD8-FABF85161762 /media/ljosalfur/VM
fi
Sudo kvm -monitor stdio -vnc :0 \
-m 6G -mem-path /dev/hugepages \
-drive if=pflash,format=raw,file=./OVMF.fd -rtc base=localtime \
-cpu Host -smp 6,sockets=1,cores=6,threads=1 \
-device vfio-pci,Host=01:00.0,multifunction=on,x-vga=on \
-device vfio-pci,Host=01:00.1 \
-device pci-assign,Host=00:1b.0 \
-drive file=/media/ljosalfur/VM/vm7.img,format=raw,cache=writethrough \
-smb /media/ljosalfur \
-usb -usbdevice Host:046d:c24a -show-cursor \
-usb -usbdevice Host:1b1c:1b08
echo
echo "Re-Rebind Audio"
Sudo echo "0000:00:1b.0" > /sys/bus/pci/drivers/pci-stub/unbind
Sudo echo "0000:00:1b.0" > /sys/bus/pci/drivers/snd_hda_intel/bind
echo "Unbind GPU from vfio-pci"
Sudo echo "0000:01:00.0" > /sys/bus/pci/drivers/vfio-pci/unbind
Sudo echo "0000:01:00.1" > /sys/bus/pci/drivers/vfio-pci/unbind
read -n3 -rsp "Restart lightdm to rebind the GPU? [yes] " ress
test "$ress" != 'yes' && (exit 1)
echo
Sudo echo "0000:01:00.0" > /sys/bus/pci/drivers/radeon/bind
Je cherche une solution de contournement, car le redémarrage de lightdm n’est pas favorable, je pense que je vais ouvrir une nouvelle question avec différents tags pour cela.
Je ne vous suggérerais pas de le faire comme dans la vidéo. J'ai lié ma carte graphique au pilote pci-stub dans les paramètres du noyau, puis branché une seconde souris et un second câble HDMI sur mon ordinateur et basculé la source sur mon moniteur.
Alors voici mon script de démarrage.
qemu-system-x86_64 -enable-kvm -m 10240 -cpu Host,kvm=off \
-smp 4,sockets=1,cores=4,threads=1 \
-bios /home/qemu/.qemu/bios/ovmf.bin \
-soundhw hda \`
-usb -usbdevice Host:046d:c53b \
-rtc base=localtime \
-hda /home/qemu/.qemu/boot/Windows8_1pro.img \
-hdb /home/qemu/.qemu/hdd/HDD1.img \
-device vfio-pci,Host=01:00.0 -device vfio-pci,Host=01:00.1 \
-vga none \`