How to single GPU passthrough VM

I use Oracle Virtualbox right now, but you can give me instructions to a vm software of your liking.
Like i stated in the title, i want to know how to passthrough my GPU to a VM (i only have one)
If you like, you can also point me to another forum where i can ask this question.
Host: Linux -> Windows guest.
OS: Garuda Linux
CPU: AMD Ryzen 5 3600X
GPU: AMD Radeon RX 5600XT
Ram 2x 8GB DDR4
Here my Inxi -Faz

System:
  Kernel: 5.15.10-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.1.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=1e7af015-8415-4c71-aa0e-ab7b3f43faee rw rootflags=subvol=@
    quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
    systemd.unified_cgroup_hierarchy=1 loglevel=3
  Desktop: KDE Plasma 5.23.4 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11
    vt: 1 dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
  Type: Desktop Mobo: Micro-Star model: B450M PRO-VDH MAX (MS-7A38) v: 8.0
    serial: <superuser required> UEFI-[Legacy]: American Megatrends v: B.40
    date: 11/07/2019
CPU:
  Info: model: AMD Ryzen 5 3600X bits: 64 type: MT MCP arch: Zen 2
    family: 0x17 (23) model-id: 0x71 (113) stepping: 0 microcode: 0x8701013
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB
    L3: 32 MiB desc: 2x16 MiB
  Speed (MHz): avg: 4045 high: 4200 min/max: 2200/4409 boost: enabled
    scaling: driver: acpi-cpufreq governor: performance cores: 1: 4181 2: 4200
    3: 4177 4: 3959 5: 3415 6: 4199 7: 4098 8: 4179 9: 4183 10: 3610 11: 4148
    12: 4200 bogomips: 91199
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Full AMD retpoline, IBPB: conditional,
    STIBP: conditional, RSB filling
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT]
    vendor: Tul driver: amdgpu v: kernel bus-ID: 2b:00.0 chip-ID: 1002:731f
    class-ID: 0300
  Display: x11 server: X.Org 1.21.1.2 compositor: kwin_x11 driver:
    loaded: amdgpu,ati unloaded: modesetting,radeon alternate: fbdev,vesa
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 4480x1440 s-dpi: 96 s-size: 1185x381mm (46.7x15.0")
    s-diag: 1245mm (49")
  Monitor-1: DisplayPort-0 res: 1920x1080 hz: 60 dpi: 102
    size: 476x268mm (18.7x10.6") diag: 546mm (21.5")
  Monitor-2: HDMI-A-0 res: 2560x1440 hz: 60 dpi: 109
    size: 597x336mm (23.5x13.2") diag: 685mm (27")
  OpenGL: renderer: AMD Radeon RX 5600 XT (NAVI10 DRM 3.42.0
    5.15.10-zen1-1-zen LLVM 13.0.0)
    v: 4.6 Mesa 21.3.1 direct render: Yes
Audio:
  Device-1: AMD Navi 10 HDMI Audio driver: snd_hda_intel v: kernel
    bus-ID: 2b:00.1 chip-ID: 1002:ab38 class-ID: 0403
  Device-2: AMD Starship/Matisse HD Audio vendor: Micro-Star MSI
    driver: snd_hda_intel v: kernel bus-ID: 2d:00.4 chip-ID: 1022:1487
    class-ID: 0403
  Device-3: C-Media CM108 Audio Controller type: USB
    driver: hid-generic,snd-usb-audio,usbhid bus-ID: 3-1:2 chip-ID: 0d8c:013c
    class-ID: 0300
  Sound Server-1: ALSA v: k5.15.10-zen1-1-zen running: yes
  Sound Server-2: sndio v: N/A running: no
  Sound Server-3: JACK v: 1.9.19 running: no
  Sound Server-4: PulseAudio v: 15.0 running: no
  Sound Server-5: PipeWire v: 0.3.42 running: yes
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Micro-Star MSI driver: r8169 v: kernel port: f000 bus-ID: 25:00.0
    chip-ID: 10ec:8168 class-ID: 0200
  IF: enp37s0 state: down mac: <filter>
  Device-2: Realtek RTL8811AU 802.11a/b/g/n/ac WLAN Adapter type: USB
    driver: rtl88XXau bus-ID: 3-3:4 chip-ID: 0bda:a811 class-ID: 0000
    serial: <filter>
  IF: wlp45s0f3u3 state: up mac: <filter>
Drives:
  Local Storage: total: 3.18 TiB used: 1.52 TiB (47.6%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: Toshiba model: DT01ACA300
    size: 2.73 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    type: HDD rpm: 7200 serial: <filter> rev: ABB0 scheme: GPT
  ID-2: /dev/sdb maj-min: 8:16 vendor: Samsung model: SSD 750 EVO 500GB
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: SSD serial: <filter> rev: 1B6Q scheme: MBR
Partition:
  ID-1: / raw-size: 465.76 GiB size: 465.76 GiB (100.00%)
    used: 107.59 GiB (23.1%) fs: btrfs dev: /dev/sdb1 maj-min: 8:17
  ID-2: /home raw-size: 465.76 GiB size: 465.76 GiB (100.00%)
    used: 107.59 GiB (23.1%) fs: btrfs dev: /dev/sdb1 maj-min: 8:17
  ID-3: /var/log raw-size: 465.76 GiB size: 465.76 GiB (100.00%)
    used: 107.59 GiB (23.1%) fs: btrfs dev: /dev/sdb1 maj-min: 8:17
  ID-4: /var/tmp raw-size: 465.76 GiB size: 465.76 GiB (100.00%)
    used: 107.59 GiB (23.1%) fs: btrfs dev: /dev/sdb1 maj-min: 8:17
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 15.63 GiB used: 2.45 GiB (15.7%)
    priority: 100 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: N/A mobo: N/A gpu: amdgpu temp: 51.0 C
    mem: 58.0 C
  Fan Speeds (RPM): N/A gpu: amdgpu fan: 0
Info:
  Processes: 414 Uptime: 12h 46m wakeups: 0 Memory: 15.63 GiB
  used: 7.45 GiB (47.6%) Init: systemd v: 249 tool: systemctl Compilers:
  gcc: 11.1.0 clang: 13.0.0 Packages: pacman: 2231 lib: 434 Shell: fish
  v: 3.3.1 running-in: konsole inxi: 3.3.11

Have you read through this?

Also, just a fair warning that single GPU passthrough is not a simple or particularly user-friendly process.

4 Likes

It's like a Christmas Gift :wink:

No, does not work for me. I tried that and all i got at the end is a blackscreen. And yes, i did everything like it said in that guide. At least i think i did. I checked 3 times.

Like I said, it isn't plug and play. Expect to have to do some troubleshooting and research.

2 Likes