IOMMU Groups – What You Need to Consider

Summary

In this post I present some of the challenges you might face with IOMMU and provide tools to identify and perhaps solve the issues. Your best friend is the pciutils package and the lspci command (see here for examples).

What is IOMMU and why do I need it?

In my tutorial on how to run Windows 10 on Linux using KVM with VGA Passthrough the first and most important hardware requirement is the support for IOMMU – VT-d in Intel jargon, AMD-v or SVM in AMD talk. But what does IOMMU support mean? Continue reading “IOMMU Groups – What You Need to Consider”

Running Windows 10 on Linux using KVM with VGA Passthrough

This tutorial explains how to install and run Windows 10 on Linux using GPU passthrough and VFIO drivers to achieve near-native performance – for gaming, photo or video editing, and other graphics and CPU intensive tasks. It also lists the common pitfalls and possible ways to further improve performance. Last not least it offers a comprehensive list of external resources and helpful links.

Latest update: December 7, 2021

The Need

You want to use Linux as your main operating system, but still need Windows for certain applications unavailable under Linux. You need top notch (3D) graphics performance under Windows for computer games, photo or video editing, etc. And you do not want to dual-boot into Linux or Windows. In that case read on.

Many modern CPUs have built-in features that improve the performance of virtual machines (VM), up to the point where virtualised systems are indistinguishable from non-virtualised systems. This allows us to create virtual machines on a Linux host platform without compromising performance of the (Windows) guest system.

For some benchmarks of my current system, see Windows 10 Virtual Machine Benchmarks Continue reading “Running Windows 10 on Linux using KVM with VGA Passthrough”

qemu-system-x86_64 -drive options

In an attempt to make the qemu -drive command line options more accessible, here is an extract from the qemu-system-x86_64 man page. You can get the complete man page by entering the following in a terminal window:
man qemu-system-x86_64

or:

man qemu

The options below are valid for qemu-system-x86_64 version 2.5.0. Please refer to the qemu documentation at qemu.weilnetz.de – look for the version you got and select the corresponding sub-folder.

Continue reading “qemu-system-x86_64 -drive options”

Define a network bridge using Ubuntu’s / Linux Mint’s Network Manager application

I’m regularly passing large amounts of data between my Windows VM and my Linux host. To avoid bottlenecks, I use a virtual network bridge that creates a 10 GBit link between the guest and the host, enough to challenge the fastest SSD on the market.

When running Ubuntu or Linux Mint, Network Manager offers a convenient way to configure a network bridge.

Here is how you set up a virtual network bridge for connecting a Virtual Machine to the Linux Host. Please note that this will not work with a wireless network connection, at least not without some modifications:

Continue reading “Define a network bridge using Ubuntu’s / Linux Mint’s Network Manager application”