1# q35 - Emulated guest (graphical console) 2# ========================================================= 3# 4# Usage: 5# 6# $ qemu-system-x86_64 \ 7# -nodefaults \ 8# -readconfig q35-emulated.cfg 9# 10# You will probably need to tweak the lines marked as 11# CHANGE ME before being able to use this configuration! 12# 13# The guest will have a selection of emulated devices that 14# closely resembles that of a physical machine, and will be 15# accessed through a graphical console. 16# 17# --------------------------------------------------------- 18# 19# Using -nodefaults is required to have full control over 20# the virtual hardware: when it's specified, QEMU will 21# populate the board with only the builtin peripherals 22# plus a small selection of core PCI devices and 23# controllers; the user will then have to explicitly add 24# further devices. 25# 26# The core PCI devices show up in the guest as: 27# 28# 00:00.0 Host bridge 29# 00:1f.0 ISA bridge / LPC 30# 00:1f.2 SATA (AHCI) controller 31# 00:1f.3 SMBus controller 32# 33# This configuration file adds a number of devices that 34# are pretty much guaranteed to be present in every single 35# physical machine based on q35, more specifically: 36# 37# 00:01.0 VGA compatible controller 38# 00:19.0 Ethernet controller 39# 00:1a.* USB controller (#2) 40# 00:1b.0 Audio device 41# 00:1c.* PCI bridge (PCI Express Root Ports) 42# 00:1d.* USB Controller (#1) 43# 00:1e.0 PCI bridge (legacy PCI bridge) 44# 45# More information about these devices is available below. 46 47 48# Machine options 49# ========================================================= 50# 51# We use the q35 machine type and enable KVM acceleration 52# for better performance. 53# 54# Using less than 1 GiB of memory is probably not going to 55# yield good performance in the guest, and might even lead 56# to obscure boot issues in some cases. 57# 58# Unfortunately, there is no way to configure the CPU model 59# in this file, so it will have to be provided on the 60# command line. 61 62[machine] 63 type = "q35" 64 accel = "kvm" 65 66[memory] 67 size = "1024" 68 69 70# PCI bridge (PCI Express Root Ports) 71# ========================================================= 72# 73# We add four PCI Express Root Ports, all sharing the same 74# slot on the PCI Express Root Bus. These ports support 75# hotplug. 76 77[device "ich9-pcie-port-1"] 78 driver = "ioh3420" 79 multifunction = "on" 80 bus = "pcie.0" 81 addr = "1c.0" 82 port = "1" 83 chassis = "1" 84 85[device "ich9-pcie-port-2"] 86 driver = "ioh3420" 87 multifunction = "on" 88 bus = "pcie.0" 89 addr = "1c.1" 90 port = "2" 91 chassis = "2" 92 93[device "ich9-pcie-port-3"] 94 driver = "ioh3420" 95 multifunction = "on" 96 bus = "pcie.0" 97 addr = "1c.2" 98 port = "3" 99 chassis = "3" 100 101[device "ich9-pcie-port-4"] 102 driver = "ioh3420" 103 multifunction = "on" 104 bus = "pcie.0" 105 addr = "1c.3" 106 port = "4" 107 chassis = "4" 108 109 110# PCI bridge (legacy PCI bridge) 111# ========================================================= 112# 113# This bridge can be used to build an independent topology 114# for legacy PCI devices. PCI Express devices should be 115# plugged into PCI Express slots instead, so ideally there 116# will be no devices connected to this bridge. 117 118[device "ich9-pci-bridge"] 119 driver = "i82801b11-bridge" 120 bus = "pcie.0" 121 addr = "1e.0" 122 123 124# SATA storage 125# ========================================================= 126# 127# An implicit SATA controller is created automatically for 128# every single q35 guest; here we create a disk, backed by 129# a qcow2 disk image on the host's filesystem, and attach 130# it to that controller so that the guest can use it. 131# 132# We also create an optical disk, mostly for installation 133# purposes: once the guest OS has been succesfully 134# installed, the guest will no longer boot from optical 135# media. If you don't want, or no longer want, to have an 136# optical disk in the guest you can safely comment out 137# all relevant sections below. 138 139[device "sata-disk"] 140 driver = "ide-hd" 141 bus = "ide.0" 142 drive = "disk" 143 bootindex = "1" 144 145[drive "disk"] 146 file = "guest.qcow2" # CHANGE ME 147 format = "qcow2" 148 if = "none" 149 150[device "sata-optical-disk"] 151 driver = "ide-cd" 152 bus = "ide.1" 153 drive = "optical-disk" 154 bootindex = "2" 155 156[drive "optical-disk"] 157 file = "install.iso" # CHANGE ME 158 format = "raw" 159 if = "none" 160 161 162# USB controller (#1) 163# ========================================================= 164# 165# EHCI controller + UHCI companion controllers. 166 167[device "ich9-ehci-1"] 168 driver = "ich9-usb-ehci1" 169 multifunction = "on" 170 bus = "pcie.0" 171 addr = "1d.7" 172 173[device "ich9-uhci-1"] 174 driver = "ich9-usb-uhci1" 175 multifunction = "on" 176 bus = "pcie.0" 177 addr = "1d.0" 178 masterbus = "ich9-ehci-1.0" 179 firstport = "0" 180 181[device "ich9-uhci-2"] 182 driver = "ich9-usb-uhci2" 183 multifunction = "on" 184 bus = "pcie.0" 185 addr = "1d.1" 186 masterbus = "ich9-ehci-1.0" 187 firstport = "2" 188 189[device "ich9-uhci-3"] 190 driver = "ich9-usb-uhci3" 191 multifunction = "on" 192 bus = "pcie.0" 193 addr = "1d.2" 194 masterbus = "ich9-ehci-1.0" 195 firstport = "4" 196 197 198# USB controller (#2) 199# ========================================================= 200# 201# EHCI controller + UHCI companion controllers. 202 203[device "ich9-ehci-2"] 204 driver = "ich9-usb-ehci2" 205 multifunction = "on" 206 bus = "pcie.0" 207 addr = "1a.7" 208 209[device "ich9-uhci-4"] 210 driver = "ich9-usb-uhci4" 211 multifunction = "on" 212 bus = "pcie.0" 213 addr = "1a.0" 214 masterbus = "ich9-ehci-2.0" 215 firstport = "0" 216 217[device "ich9-uhci-5"] 218 driver = "ich9-usb-uhci5" 219 multifunction = "on" 220 bus = "pcie.0" 221 addr = "1a.1" 222 masterbus = "ich9-ehci-2.0" 223 firstport = "2" 224 225[device "ich9-uhci-6"] 226 driver = "ich9-usb-uhci6" 227 multifunction = "on" 228 bus = "pcie.0" 229 addr = "1a.2" 230 masterbus = "ich9-ehci-2.0" 231 firstport = "4" 232 233 234# Ethernet controller 235# ========================================================= 236# 237# We add a Gigabit Ethernet interface to the guest; on the 238# host side, we take advantage of user networking so that 239# the QEMU process doesn't require any additional 240# privileges. 241 242[netdev "hostnet"] 243 type = "user" 244 245[device "net"] 246 driver = "e1000" 247 netdev = "hostnet" 248 bus = "pcie.0" 249 addr = "19.0" 250 251 252# VGA compatible controller 253# ========================================================= 254# 255# We use stdvga instead of Cirrus as it supports more video 256# modes and is closer to what actual hardware looks like. 257# 258# If you're running the guest on a remote, potentially 259# headless host, you will probably want to append something 260# like 261# 262# -display vnc=127.0.0.1:0 263# 264# to the command line in order to prevent QEMU from 265# creating a graphical display window on the host and 266# enable remote access instead. 267 268[device "video"] 269 driver = "VGA" 270 bus = "pcie.0" 271 addr = "01.0" 272 273 274# Audio device 275# ========================================================= 276# 277# The sound card is a legacy PCI device that is plugged 278# directly into the PCI Express Root Bus. 279 280[device "ich9-hda-audio"] 281 driver = "ich9-intel-hda" 282 bus = "pcie.0" 283 addr = "1b.0" 284 285[device "ich9-hda-duplex"] 286 driver = "hda-duplex" 287 bus = "ich9-hda-audio.0" 288 cad = "0" 289