I’m actually on it now, and I have been installing all that I need in order to get QEMU-KVM starting and working. I did indeed create a win10 vm, but I deleted it shortly after, because I thought I had missed something, that I might actually not have missed, so have to redo some of the starting steps, to be sure that I don’t fudge it up again.
LC_ALL=C lscpu | grep Virtualization
Click for Output
Virtualization: AMD-V
sudo lsmod | grep vboxdrv
Click for Output
vboxdrv 544768 2 vboxnetadp,vboxnetflt
sudo systemctl stop libvirtd.service
sudo systemctl disable libvirtd.service
sudo systemctl enable libvirtd.service
sudo systemctl start libvirtd.servicesudo systemctl status libvirtd.service
Click for Output
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2021-11-14 18:12:26 CET; 4s ago
TriggeredBy: ● libvirtd.socket
● libvirtd-ro.socket
● libvirtd-admin.socket
Docs: man:libvirtd(8)
https://libvirt.org
Main PID: 122633 (libvirtd)
Tasks: 21 (limit: 32768)
Memory: 43.0M
CPU: 300ms
CGroup: /system.slice/libvirtd.service
├─ 997 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
├─ 998 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
└─122633 /usr/bin/libvirtd --timeout 120Nov 14 18:12:26 vmc systemd[1]: Started Virtualization daemon.
Nov 14 18:12:26 vmc libvirtd[122633]: setlocale: No such file or directory
Nov 14 18:12:26 vmc dnsmasq[997]: read /etc/hosts - 0 addresses
Nov 14 18:12:26 vmc dnsmasq[997]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Nov 14 18:12:26 vmc dnsmasq-dhcp[997]: read /var/lib/libvirt/dnsmasq/default.hostsfile
sudo systemctl stop virtlogd.socket
sudo systemctl disable virtlogd.socket
sudo systemctl enable virtlogd.socket
sudo systemctl start virtlogd.socketsudo systemctl status virtlogd.socket
Click for Output
● virtlogd.socket - Virtual machine log manager socket
Loaded: loaded (/usr/lib/systemd/system/virtlogd.socket; enabled; vendor preset: disabled)
Active: active (running) since Sun 2021-11-14 04:34:52 CET; 13h ago
Triggers: ● virtlogd.service
Listen: /run/libvirt/virtlogd-sock (Stream)
CGroup: /system.slice/virtlogd.socketNov 14 04:34:52 vmc systemd[1]: Listening on Virtual machine log manager socket.
I’m using this guide primarily (YT - ONE GPU: PASSTHROUGH GUIDE), but there are two others that I have in addition to that one, because one of them is talking about something called (YT - CPU CORE LOCKING) && (YT - GPU: PASSTHROUGH) for it’s comlimentary information to the first video named.
Okay, while the scripts for nVidia is fairly simple for the QEMU-KVM hyper-visor, it’s not really the same thing with AMD, I have no Idea which graphics modules that are actually active for AMD on my system atm. So I need a bit of help to find that out, anyway! Here are the scripts and config file that is needed. When I get this going, I might write a walkthrough to make it simple for myself and others later on, in new installations of Arch & Arch based systems.
/etc/libvirt/hooks/qemu.d/win10/prepare/begin/start.sh
/etc/libvirt/hooks/qemu.d/win10/release/end/revert.sh
sudo dmesg | grep IOMMU
Click for Output
[ 0.221024] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[ 0.222924] pci 0000:00:00.2: AMD-Vi: Found IOMMU cap 0x40
[ 0.223884] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).
[ 0.242433] AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel [email protected]
sudo dmesg | grep -i -e DMAR -e IOMMU
Click for Output
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=28c2e642-3acd-4b48-a673-5f0f89cbc69f rw rootflags=subvol=@ loglevel=3 quiet iommu=1 amd_iommu=on
[ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=28c2e642-3acd-4b48-a673-5f0f89cbc69f rw rootflags=subvol=@ loglevel=3 quiet iommu=1 amd_iommu=on
[ 0.199352] iommu: Default domain type: Translated
[ 0.199353] iommu: DMA domain TLB invalidation policy: lazy mode
[ 0.221024] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[ 0.221062] pci 0000:00:01.0: Adding to iommu group 0
[ 0.221070] pci 0000:00:01.1: Adding to iommu group 0
[ 0.221078] pci 0000:00:01.3: Adding to iommu group 0
[ 0.221090] pci 0000:00:02.0: Adding to iommu group 1
[ 0.221105] pci 0000:00:03.0: Adding to iommu group 2
[ 0.221113] pci 0000:00:03.1: Adding to iommu group 2
[ 0.221126] pci 0000:00:04.0: Adding to iommu group 3
[ 0.221141] pci 0000:00:07.0: Adding to iommu group 4
[ 0.221149] pci 0000:00:07.1: Adding to iommu group 4
[ 0.221165] pci 0000:00:08.0: Adding to iommu group 5
[ 0.221174] pci 0000:00:08.1: Adding to iommu group 5
[ 0.221191] pci 0000:00:14.0: Adding to iommu group 6
[ 0.221199] pci 0000:00:14.3: Adding to iommu group 6
[ 0.221238] pci 0000:00:18.0: Adding to iommu group 7
[ 0.221247] pci 0000:00:18.1: Adding to iommu group 7
[ 0.221255] pci 0000:00:18.2: Adding to iommu group 7
[ 0.221264] pci 0000:00:18.3: Adding to iommu group 7
[ 0.221273] pci 0000:00:18.4: Adding to iommu group 7
[ 0.221282] pci 0000:00:18.5: Adding to iommu group 7
[ 0.221291] pci 0000:00:18.6: Adding to iommu group 7
[ 0.221300] pci 0000:00:18.7: Adding to iommu group 7
[ 0.221304] pci 0000:01:00.0: Adding to iommu group 0
[ 0.221308] pci 0000:02:00.0: Adding to iommu group 0
[ 0.221312] pci 0000:02:00.1: Adding to iommu group 0
[ 0.221315] pci 0000:02:00.2: Adding to iommu group 0
[ 0.221320] pci 0000:03:00.0: Adding to iommu group 0
[ 0.221324] pci 0000:03:02.0: Adding to iommu group 0
[ 0.221328] pci 0000:03:03.0: Adding to iommu group 0
[ 0.221332] pci 0000:03:04.0: Adding to iommu group 0
[ 0.221336] pci 0000:04:00.0: Adding to iommu group 0
[ 0.221340] pci 0000:05:00.0: Adding to iommu group 0
[ 0.221344] pci 0000:07:00.0: Adding to iommu group 0
[ 0.221356] pci 0000:08:00.0: Adding to iommu group 2
[ 0.221361] pci 0000:08:00.1: Adding to iommu group 2
[ 0.221366] pci 0000:09:00.0: Adding to iommu group 4
[ 0.221369] pci 0000:09:00.2: Adding to iommu group 4
[ 0.221373] pci 0000:09:00.3: Adding to iommu group 4
[ 0.221378] pci 0000:0a:00.0: Adding to iommu group 5
[ 0.221381] pci 0000:0a:00.2: Adding to iommu group 5
[ 0.221386] pci 0000:0a:00.3: Adding to iommu group 5
[ 0.222924] pci 0000:00:00.2: AMD-Vi: Found IOMMU cap 0x40
[ 0.223884] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).
[ 0.242433] AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel [email protected]
To get IOMMU information grouped
Use this script in the terminal of your choice.
#!/bin/bash
shopt -s nullglob
for g infind /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V
; do
echo "IOMMU Group ${g##/}:"
for d in $g/devices/; do
echo -e “\t$(lspci -nns ${d##*/})”
done;
done;
Click for Output
IOMMU Group 0:
00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge [1022:1453]
00:01.3 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge [1022:1453]
01:00.0 Non-Volatile memory controller [0108]: Kingston Technology Company, Inc. A2000 NVMe SSD [2646:2263] (rev 03)
02:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] X370 Series Chipset USB 3.1 xHCI Controller [1022:43b9] (rev 02)
02:00.1 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] X370 Series Chipset SATA Controller [1022:43b5] (rev 02)
02:00.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] X370 Series Chipset PCIe Upstream Port [1022:43b0] (rev 02)
03:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port [1022:43b4] (rev 02)
03:02.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port [1022:43b4] (rev 02)
03:03.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port [1022:43b4] (rev 02)
03:04.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port [1022:43b4] (rev 02)
04:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1143 USB 3.1 Host Controller [1b21:1343]
05:00.0 Ethernet controller [0200]: Intel Corporation I211 Gigabit Network Connection [8086:1539] (rev 03)
07:00.0 Non-Volatile memory controller [0108]: Micron/Crucial Technology P1 NVMe PCIe SSD [c0a9:2263] (rev 03)
IOMMU Group 1:
00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
IOMMU Group 2:
00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge [1022:1453]
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev e7)
08:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0]
IOMMU Group 3:
00:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
IOMMU Group 4:
00:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B [1022:1454]
09:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Zeppelin/Raven/Raven2 PCIe Dummy Function [1022:145a]
09:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Platform Security Processor [1022:1456]
09:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) USB 3.0 Host Controller [1022:145c]
IOMMU Group 5:
00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B [1022:1454]
0a:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Zeppelin/Renoir PCIe Dummy Function [1022:1455]
0a:00.2 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 51)
0a:00.3 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) HD Audio Controller [1022:1457]
IOMMU Group 6:
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 59)
00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
IOMMU Group 7:
00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 0 [1022:1460]
00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 1 [1022:1461]
00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 2 [1022:1462]
00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 3 [1022:1463]
00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 4 [1022:1464]
00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 5 [1022:1465]
00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 6 [1022:1466]
00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 7 [1022:1467]
lspci -nn | grep -iP “VGA|audio”
Click for Output
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev e7)
08:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0]
0a:00.3 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) HD Audio Controller [1022:1457]
$SYSTEM
OS: Arch Linux /w. ArchTitus Script
CPU: AMD Ryzen 1700x
GPU: AMD RX580
MB: AORUS AX370-Gaming K5
Is there any other information needed?
If someone missed what this was about…
Which AMD modules are active?
How do I find out which AMD are active/in use?
Do I need to stop any modules when it comes to AMD GPU’s?