So, i am trying to pass my GPU through to my windows 10 VM using seabios.
I have so far overcome some issues, like e.g. Windows 10 updating Device drivers on its own, etc. I am actually able to boot into the VM using the GPU and its DVI-Ports as output for a single monitor. USB mouse + Keyboard works too. But a major one remains, which has put me on the end of my ropes.
I can not install the AMD-Driver without the screen going blank. (see at bottom of the post)
Following this guide:
https://pve.proxmox.com/wiki/Pci_passthrough
Find the right USB and PCIE Device id's following the following guides:
https://pve.proxmox.com/wiki/Pci_passthrough
https://pve.proxmox.com/wiki/USB_physical_port_mapping#Add_the_device_to_the_VM
Now as i mentioned above:
The second i try to install the AMD driver the screen goes blank, i can watch via "ceph-w" the data being written on the vDisk. Once its done i can only restart using ( qm stop <vmid>). keycombos via USB do not work anymore. A restart of the VM does not bring the GPU up. It seems the only way to get back into the vm is to:
Any help, pointers, ideas or even theories how i might be able to pass that GPU through ?
I have so far overcome some issues, like e.g. Windows 10 updating Device drivers on its own, etc. I am actually able to boot into the VM using the GPU and its DVI-Ports as output for a single monitor. USB mouse + Keyboard works too. But a major one remains, which has put me on the end of my ropes.
I can not install the AMD-Driver without the screen going blank. (see at bottom of the post)
My System said:
- I7-3930k
- GA-x79-UD3
- ATI x290 8GB
- Onboard-Sound
- Usb Keyboard, Old Logitech Cordless Mouse, Logitech T650 (unified Adapter)
- running ontop of a local Ceph-Replication 2/1 SSD-Pool (6 OSD, single node)
- Using virtio-win-0.1.1.iso (afaik from Fedora or redhat)
Following this guide:
https://pve.proxmox.com/wiki/Pci_passthrough
nano /etc/default/grub
change
toCode:GRUB_CMDLINE_LINUX_DEFAULT="quiet"
thenCode:GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
Code:update-grub reboot
Find the right USB and PCIE Device id's following the following guides:
https://pve.proxmox.com/wiki/Pci_passthrough
https://pve.proxmox.com/wiki/USB_physical_port_mapping#Add_the_device_to_the_VM
Bus 005 Device 004: ID 046d:c50d Logitech, Inc. Cordless MouseCode:lsusb -t lsusb
Bus 005 Device 003: ID 0566:3107 Monterey International Corp. Keyboard
...Code:lspci
00:1b.0 Audio device: Intel Corporation C600/X79 series chipset High Definition Audio Controller (rev 06)
...
02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii XT [Radeon R9 290X]
02:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii HDMI Audio
...
- Set up VM.
- Select Windows 8.1/2012
- Add a new vDisk using Virtio Bus (iothread + Write back Cache) as Virtio0
- add Qemu agent -> yes
- Add windows 10 Iso as First DVD on Sata0
- Add Virtio-win-0.1.110 as secondary DVD on Sata1
- DO NOT assign any Network devices yet ( see https://forum.proxmox.com/threads/d...rivers-from-windows-update.25094/#post-125881 )
- Select Virtio Controller via Options Tab (afaik best practice is to use SCSI ontop of Virtio controller for Windows on SSDs)
- Verify your boot Orders. —> Disk then CD-Rom
- Install windows 10
- Start Windows VM - open noVNC console
- Boot from Windows ISO (press any key to start from DVD/CD . . .)
- select “Install Now”
- select windows 10 pro x64
- custom install
- “load Driver” option
- Select Virtio-DVD > Viostor > w8.1 > amd64
- Install Red Hat VirtIO SCSI controller (driver for your virtio0)
- “load Driver” option
- Select Virtio-DVD > VioSCSI > w8.1 > amd64
- uncheck the checkbox
- Install Red Hat VirtIO SCSI pass-through controller (in case you need it later)
- “load Driver” option
- Select Virtio-DVD > netKVM > w8.1 > amd64
- uncheck the checkbox
- Install Red Hat VirtIO Ethernet Adapter (you will need this later)
- “load Driver” option
- Install windows regularly (like you'd normally do)
- Fix windows 10 Windows Update settings
- boot into windows
- Disable Driver updates via Windows Update (important to prevent automatic updating by Microsoft’s menace called windows update)
- Right click windows symbol —> Control Panel —> view by small Items —> System —> Advanced system settings —> Hardware -> Device installation Settings: Select “NO
- Edit the power plan settings (while you are at it)
- Right click start -> Control Pannel -> Power Options -> additional Plans -> High performance - change plan settings
- Advanced Settings:
- NEVER turn off HardDisks
- Hibernate after : NEVER
- Usb selective Suspend: NEVER
- Sleep Button Action: Do nothing
- NEVER turn off display
- Advanced Settings:
- Disable Driver updates via Windows Update (important to prevent automatic updating by Microsoft’s menace called windows update)
- shutdown Vm
- add a network device (virtio)
- boot into windows
- Create a snapshot (so you can roll back in case windows update does weird stuff)
- Windows Update time
- start VM
- give yourself a chance to undo what microsoft in their Wisdom thinks you should do to your VM:
- Go to windows Symbol in task bar -> settings -> update & security -> Windows Update -> Advanced options -> Notify to schedule restart + defer Upgrades.
- Do a manual windows update
- Restart Windows (as in reboot, verify it still works)
- Shut down Windows VM
- make snapshot (This on you will most likely use very often - I sure do)
- Pass GPU + Usb through
- nano /etc/pve/nodes/<hostname>/qemu-server/<vmnumber>.conf
- usb0: host=046d:c50d
- usb1: host=0566:3107
- machine: q35
- hostpci0: 02:00,x-vga=on,pcie=1
- hostpci1: 00:1b.0
- Start VM
- Install Driver
- nano /etc/pve/nodes/<hostname>/qemu-server/<vmnumber>.conf
Now as i mentioned above:
The second i try to install the AMD driver the screen goes blank, i can watch via "ceph-w" the data being written on the vDisk. Once its done i can only restart using ( qm stop <vmid>). keycombos via USB do not work anymore. A restart of the VM does not bring the GPU up. It seems the only way to get back into the vm is to:
- Rollback snapshot
- Restart Host
Any help, pointers, ideas or even theories how i might be able to pass that GPU through ?
Last edited: