<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linux-kvm.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mjt</id>
	<title>KVM - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://linux-kvm.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mjt"/>
	<link rel="alternate" type="text/html" href="https://linux-kvm.org/page/Special:Contributions/Mjt"/>
	<updated>2026-05-09T04:30:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://linux-kvm.org/index.php?title=HOWTO&amp;diff=4747</id>
		<title>HOWTO</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=HOWTO&amp;diff=4747"/>
		<updated>2013-05-09T11:30:35Z</updated>

		<summary type="html">&lt;p&gt;Mjt: add link to gentoo wiki page, probably need to delete local KvmOnGentoo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Howto&#039;s =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
* [http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/kvminstall/liaaikvminstallstart.htm IBM Linux Blueprint: Quick Start Guide for installing and running KVM]&lt;br /&gt;
* [[HOWTO1 | Getting KVM to run on your machine]]&lt;br /&gt;
* [[choose the right kvm &amp;amp; kernel version]]&lt;br /&gt;
* [[How To Migrate From Vmware To KVM]]&lt;br /&gt;
* [http://www.basicsedv.de/bthesis.html Migrating User Mode Linux to Xen and KVM]&lt;br /&gt;
&lt;br /&gt;
== Network related ==&lt;br /&gt;
&lt;br /&gt;
* [[Networking| Setting guest network]]&lt;br /&gt;
* [[NetConsole| set up a network console]]&lt;br /&gt;
&lt;br /&gt;
== Hardware related ==&lt;br /&gt;
&lt;br /&gt;
* [[How to assign devices with VT-d in KVM]]&lt;br /&gt;
* [[Enable VT-X on Mac Pro (Early 2008)]] &lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
* [[USB Host Device Assigned to Guest]]&lt;br /&gt;
* [[usb related]]&lt;br /&gt;
&lt;br /&gt;
=== Ethernet ===&lt;br /&gt;
* [[ethernet_related]]&lt;br /&gt;
&lt;br /&gt;
=== PCI ===&lt;br /&gt;
* [[hotadd pci devices]]&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
* Using [[Sound]] in the guest&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
* Using qxl and [[SPICE]] in the guest&lt;br /&gt;
&lt;br /&gt;
=== virtio ===&lt;br /&gt;
&lt;br /&gt;
* [[boot from virtio block device]]&lt;br /&gt;
* [[Using VirtIO NIC|use virtio_net interface]] in the guest (Debian)&lt;br /&gt;
&lt;br /&gt;
=== vhost ===&lt;br /&gt;
* [[UsingVhost|Using vhost]]&lt;br /&gt;
&lt;br /&gt;
=== cdrom ===&lt;br /&gt;
* [[Change cdrom| Changing disks in the cdrom drive]]&lt;br /&gt;
&lt;br /&gt;
=== sharing files with the host ===&lt;br /&gt;
* Using [[9p virtio]] to share files between host and guest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operating System related ==&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
* Gentoo has [http://wiki.gentoo.org/wiki/QEMU good page about qemu/kvm in their wiki].&lt;br /&gt;
* [[KvmOnGentoo|KVM on Gentoo hosts]]&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
* [http://www.howtoforge.com/using-kvm-on-ubuntu-gutsy-gibbon using-kvm-on-ubuntu-gutsy-gibbon]&lt;br /&gt;
* [[AnthonyLiguori/Networking| Setting up NAT with KVM in Ubuntu]]&lt;br /&gt;
* [https://help.ubuntu.com/community/KVM Running Guest Systems on Ubuntu 7.04 Feisty Fawn]&lt;br /&gt;
* [http://www.howtoforge.com/virtualization-with-kvm-on-ubuntu-9.04 Virtualization With KVM On Ubuntu 9.04 Jaunty]&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
* [http://fedoraproject.org/wiki/Virtualization_Quick_Start Fedora Virt Quick Start]&lt;br /&gt;
&lt;br /&gt;
=== ArchLinux ===&lt;br /&gt;
* [http://wiki.archlinux.org/index.php/Kvm Setting up KVM on ArchLinux]&lt;br /&gt;
* [http://wiki.archlinux.org/index.php/Qemu Detailed QEMU Tutorial ]&lt;br /&gt;
&lt;br /&gt;
=== BSD ===&lt;br /&gt;
* [http://www.linux-kvm.org/page/BSD KVM on BSD, FreeBSD]&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
* [[WindowsGuestDrivers|Information about guest drivers]]&lt;br /&gt;
* [[Windows7Install|Install Windows 7]]&lt;br /&gt;
* [http://wp.libpf.com/?p=186 Windows 7 as guest on Debian squeeze] - with libvirt&#039;s virt-install recipe and virtio disk driver step-by-step instructions&lt;br /&gt;
&lt;br /&gt;
=== Windows Vista ===&lt;br /&gt;
* [[Vista Networking Workaround]]&lt;br /&gt;
&lt;br /&gt;
== Scripting &amp;amp; Software ==&lt;br /&gt;
* [[HowToConfigScript|Configuration Script for KVM]] - a complete management utility, configuration file format, and init script.&lt;br /&gt;
* [http://www.roessner-net.com/?p=219 Another script for KVM] - Init scripts for kvm, using it with time scheduled start order (German)&lt;br /&gt;
* [[simple shell script to manage your virtual machine with bridged networking]]&lt;br /&gt;
* [http://www.papercut.com/blog/chris/2008/11/14/using-kvm-to-securely-host-servers-in-a-dmz/ Hosting your VMs in a DMZ] - a management and configuration script to assist with setting up a VM in a semi-secured demilitarized zone.&lt;br /&gt;
* [http://pve.proxmox.com/wiki/Bare-metal_ISO_Installer Bare-metal] installer with KVM&lt;br /&gt;
* [[kvmtools|Python scripts to manage qemu-kvm guest from cmdline]] - yet another qemu-kvm script &lt;br /&gt;
&lt;br /&gt;
=== libvirt ===&lt;br /&gt;
&lt;br /&gt;
* [[Running libvirt with KVM]]&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
* [[HOWTO VMGL]] - OpenGL support for Linux guests&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Networking&amp;diff=4742</id>
		<title>Networking</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Networking&amp;diff=4742"/>
		<updated>2013-05-08T10:27:17Z</updated>

		<summary type="html">&lt;p&gt;Mjt: Added &amp;quot;Compatibility&amp;quot; part&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting guest network =&lt;br /&gt;
&lt;br /&gt;
Guest (VM) networking in kvm is the same as in qemu, so it is possible to refer to other documentations about networking for qemu. This page will try to explain how to configure the most frequent types of network needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Networking ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want a simple way for your virtual machine to access to the host, to the internet or to resources available on your local network.&lt;br /&gt;
* You don&#039;t need to access your guest from the network or from another guest.&lt;br /&gt;
* You are ready to take a huge performance hit.&lt;br /&gt;
* Warning: User networking does not support a number of networking features like ICMP.  Certain applications (like ping) may not function properly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* If you want to be able to access the internet or a local network, your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
* simply run your guest without specifying network parameters, which by default will create user-lever (a.k.a slirp) networking:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* The IP address can be automatically assigned to the guest thanks to the DHCP service integrated in QEMU&lt;br /&gt;
* If you run multiple guests on the host, you don&#039;t need to specify a different MAC address for each guest&lt;br /&gt;
* The default is equivalent to this explicit setup:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -netdev user,id=user.0 -device e1000,netdev=user.0&lt;br /&gt;
* user.0 identifier above is just to connect the two halves into one, you may use any identifier you wish, such as &amp;quot;n&amp;quot; or &amp;quot;net0&amp;quot;.&lt;br /&gt;
* Use rtl8139 instead of e1000 to get 8139-series NIC.&lt;br /&gt;
* You can still access one specific port on the guest using the &amp;quot;hostfwd&amp;quot; option. This means e.g. if you want to transport a file with scp from host to guest, start the guest with &amp;quot;-device e1000,netdev=user.0 -netdev user,id=user.0,hostfwd=tcp::5555-:22&amp;quot;. Now you are forwarding the host port 5555 to the guest port 22. After starting up the guest, you can transport a file with e.g. &amp;quot;scp -P 5555 file.txt root@localhost:/tmp&amp;quot; from host to guest. Or you can also use other address of the host to connect to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== private virtual bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want to set up a private network between 2 or more virtual machines. This network won&#039;t be seen from the other virtual machines nor from the real network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the private virtual network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== public bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; The here shown method, will not work with most(all?) wireless drivers, as these do not support bridging.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You want to assign an IP address to your virtual machines and make them accessible from your local network&lt;br /&gt;
* You also want performance out of your virtual machine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
* Your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 1: using distro sysconfig script&#039;&#039;&#039;&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
!RedHat&#039;s way&lt;br /&gt;
!Debian&#039;s way&lt;br /&gt;
!SuSE&#039;s way&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Edit /etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;
** comment out BOOTPROTO&lt;br /&gt;
** Add BRIDGE=br0&lt;br /&gt;
* Create /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
** The content should be:&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 BOOTPROTO=dhcp&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
|&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
 # Replace old eth0 config with br0&lt;br /&gt;
 auto &amp;lt;strike&amp;gt;eth0&amp;lt;/strike&amp;gt; br0&lt;br /&gt;
&lt;br /&gt;
 # Use old eth0 config for br0, plus bridge stuff&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
     bridge_ports    eth0&lt;br /&gt;
     bridge_stp      off&lt;br /&gt;
     bridge_maxwait  0&lt;br /&gt;
     bridge_fd       0&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
* Start YaST&lt;br /&gt;
* Go to Network Configuration&lt;br /&gt;
* Add new device -&amp;gt; Bridge&lt;br /&gt;
* Tick your existing network device&lt;br /&gt;
* done&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* /etc/init.d/networking restart&lt;br /&gt;
* The bridge br0 should get the ip address (either static/dhcp) while the physical eth0 is left without ip address.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VLANs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please note that the rtl8139 virtual network interface driver does not support VLANs. If you want to use VLANs with your virtual machine, you must use another virtual network interface like virtio. &lt;br /&gt;
&lt;br /&gt;
When using VLANs on a setup like this and no traffic is getting through to your guest(s), you might want to do:&lt;br /&gt;
 # cd /proc/sys/net/bridge&lt;br /&gt;
 # ls&lt;br /&gt;
 bridge-nf-call-arptables  bridge-nf-call-iptables&lt;br /&gt;
 bridge-nf-call-ip6tables  bridge-nf-filter-vlan-tagged&lt;br /&gt;
 # for f in bridge-nf-*; do echo 0 &amp;gt; $f; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 2: manual&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* Add one of your physical interface to the bridge, e-g for eth0:&lt;br /&gt;
 sudo /usr/sbin/brctl  addif br0 eth0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== iptables/routing ==&lt;br /&gt;
&lt;br /&gt;
you can also connect your guest vm to a tap in your host. then setting iptables rules in your host to become a router + firewall for your vm.&lt;br /&gt;
&lt;br /&gt;
Routing would be done simply by creating the default route on the client to the IP of the host (and allowing IP forwarding) and setting a route to the tap? device of the client on the host.&lt;br /&gt;
&lt;br /&gt;
Test the setup beforehand:&lt;br /&gt;
&lt;br /&gt;
*Hostside: Allow IPv4 forwarding and add route to client (could be put in a script - route has to be added after the client has started):&lt;br /&gt;
&lt;br /&gt;
 sysctl -w net.ipv4.ip_forward=1                 # allow forwarding of IPv4&lt;br /&gt;
 route add -host &amp;lt;ip-of-client&amp;gt; dev &amp;lt;tap-device&amp;gt; # add route to the client&lt;br /&gt;
&lt;br /&gt;
*Clientside: Default GW of the client is of course then the host (&amp;lt;ip-of-host&amp;gt; has to be in same subnet as &amp;lt;ip-of-client&amp;gt; ...):&lt;br /&gt;
&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Clientside v2: If you host IP is not on the same subnet as &amp;lt;ip-of-client&amp;gt;, then you must manually add the route to host before you create default route:&lt;br /&gt;
&lt;br /&gt;
 route add -host &amp;lt;ip-of-host&amp;gt; dev &amp;lt;network-interface&amp;gt;&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== vde ==&lt;br /&gt;
&lt;br /&gt;
Another option is using vde (virtual distributed ethernet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== performance ==&lt;br /&gt;
&lt;br /&gt;
Data on benchmarking results should go in here.&lt;br /&gt;
There&#039;s now a page dedicated to ideas for improving&lt;br /&gt;
[[Networking Performance]].&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s another, old and obsolete syntax of specifying network for virtual machines.  Above examples uses -netdev..-device model, old way used -net..-net pairs.  For example,&lt;br /&gt;
&lt;br /&gt;
 -netdev tap,id=net0 -device e1000,netdev=net0,mac=52:54:00:12:34:56&lt;br /&gt;
&lt;br /&gt;
is about the same as old&lt;br /&gt;
&lt;br /&gt;
 -net tap,vlan=0 -net nic,vlan=0,model=e1000,macaddr=52:54:00:12:34:56&lt;br /&gt;
&lt;br /&gt;
(note mac =&amp;gt; macaddr parameter change as well; vlan=0 is the default).&lt;br /&gt;
&lt;br /&gt;
Old way used the notion of &amp;quot;VLANs&amp;quot; - these are QEMU VLANS, which has nothing to do with 802.1q VLANs. Qemu VLANs are numbered starting with 0, and it&#039;s possible to connect one or more devices (either host side, like -net tap, or guest side, like -net nic) to each VLAN, and, in particular, it&#039;s possible to connect more than 2 devices to a VLAN.  Each device in a VLAN gets all traffic received by every device in it.  This model was very confusing for the user (especially when a guest has more than one NIC).&lt;br /&gt;
&lt;br /&gt;
In new model, each host side correspond to just one guest side, forming a pair of devices based on -netdev id=  and -device netdev= parameters.  It is less confusing, it is faster (because it&#039;s always 1:1 pair), and it supports more parameters than old -net..-net way.&lt;br /&gt;
&lt;br /&gt;
However, -net..-net is still supported, used widely, and mentioned in lots of various HOWTOs and guides around the world.  It is also a bit shorter and so faster to type.&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Networking&amp;diff=4741</id>
		<title>Networking</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Networking&amp;diff=4741"/>
		<updated>2013-05-08T10:17:10Z</updated>

		<summary type="html">&lt;p&gt;Mjt: another place with -net..-net converted to -netdev..-device&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting guest network =&lt;br /&gt;
&lt;br /&gt;
Guest (VM) networking in kvm is the same as in qemu, so it is possible to refer to other documentations about networking for qemu. This page will try to explain how to configure the most frequent types of network needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Networking ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want a simple way for your virtual machine to access to the host, to the internet or to resources available on your local network.&lt;br /&gt;
* You don&#039;t need to access your guest from the network or from another guest.&lt;br /&gt;
* You are ready to take a huge performance hit.&lt;br /&gt;
* Warning: User networking does not support a number of networking features like ICMP.  Certain applications (like ping) may not function properly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* If you want to be able to access the internet or a local network, your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
* simply run your guest without specifying network parameters, which by default will create user-lever (a.k.a slirp) networking:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* The IP address can be automatically assigned to the guest thanks to the DHCP service integrated in QEMU&lt;br /&gt;
* If you run multiple guests on the host, you don&#039;t need to specify a different MAC address for each guest&lt;br /&gt;
* The default is equivalent to this explicit setup:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -netdev user,id=user.0 -device e1000,netdev=user.0&lt;br /&gt;
* user.0 identifier above is just to connect the two halves into one, you may use any identifier you wish, such as &amp;quot;n&amp;quot; or &amp;quot;net0&amp;quot;.&lt;br /&gt;
* Use rtl8139 instead of e1000 to get 8139-series NIC.&lt;br /&gt;
* You can still access one specific port on the guest using the &amp;quot;hostfwd&amp;quot; option. This means e.g. if you want to transport a file with scp from host to guest, start the guest with &amp;quot;-device e1000,netdev=user.0 -netdev user,id=user.0,hostfwd=tcp::5555-:22&amp;quot;. Now you are forwarding the host port 5555 to the guest port 22. After starting up the guest, you can transport a file with e.g. &amp;quot;scp -P 5555 file.txt root@localhost:/tmp&amp;quot; from host to guest. Or you can also use other address of the host to connect to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== private virtual bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want to set up a private network between 2 or more virtual machines. This network won&#039;t be seen from the other virtual machines nor from the real network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the private virtual network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== public bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; The here shown method, will not work with most(all?) wireless drivers, as these do not support bridging.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You want to assign an IP address to your virtual machines and make them accessible from your local network&lt;br /&gt;
* You also want performance out of your virtual machine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
* Your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 1: using distro sysconfig script&#039;&#039;&#039;&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
!RedHat&#039;s way&lt;br /&gt;
!Debian&#039;s way&lt;br /&gt;
!SuSE&#039;s way&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Edit /etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;
** comment out BOOTPROTO&lt;br /&gt;
** Add BRIDGE=br0&lt;br /&gt;
* Create /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
** The content should be:&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 BOOTPROTO=dhcp&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
|&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
 # Replace old eth0 config with br0&lt;br /&gt;
 auto &amp;lt;strike&amp;gt;eth0&amp;lt;/strike&amp;gt; br0&lt;br /&gt;
&lt;br /&gt;
 # Use old eth0 config for br0, plus bridge stuff&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
     bridge_ports    eth0&lt;br /&gt;
     bridge_stp      off&lt;br /&gt;
     bridge_maxwait  0&lt;br /&gt;
     bridge_fd       0&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
* Start YaST&lt;br /&gt;
* Go to Network Configuration&lt;br /&gt;
* Add new device -&amp;gt; Bridge&lt;br /&gt;
* Tick your existing network device&lt;br /&gt;
* done&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* /etc/init.d/networking restart&lt;br /&gt;
* The bridge br0 should get the ip address (either static/dhcp) while the physical eth0 is left without ip address.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VLANs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please note that the rtl8139 virtual network interface driver does not support VLANs. If you want to use VLANs with your virtual machine, you must use another virtual network interface like virtio. &lt;br /&gt;
&lt;br /&gt;
When using VLANs on a setup like this and no traffic is getting through to your guest(s), you might want to do:&lt;br /&gt;
 # cd /proc/sys/net/bridge&lt;br /&gt;
 # ls&lt;br /&gt;
 bridge-nf-call-arptables  bridge-nf-call-iptables&lt;br /&gt;
 bridge-nf-call-ip6tables  bridge-nf-filter-vlan-tagged&lt;br /&gt;
 # for f in bridge-nf-*; do echo 0 &amp;gt; $f; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 2: manual&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* Add one of your physical interface to the bridge, e-g for eth0:&lt;br /&gt;
 sudo /usr/sbin/brctl  addif br0 eth0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== iptables/routing ==&lt;br /&gt;
&lt;br /&gt;
you can also connect your guest vm to a tap in your host. then setting iptables rules in your host to become a router + firewall for your vm.&lt;br /&gt;
&lt;br /&gt;
Routing would be done simply by creating the default route on the client to the IP of the host (and allowing IP forwarding) and setting a route to the tap? device of the client on the host.&lt;br /&gt;
&lt;br /&gt;
Test the setup beforehand:&lt;br /&gt;
&lt;br /&gt;
*Hostside: Allow IPv4 forwarding and add route to client (could be put in a script - route has to be added after the client has started):&lt;br /&gt;
&lt;br /&gt;
 sysctl -w net.ipv4.ip_forward=1                 # allow forwarding of IPv4&lt;br /&gt;
 route add -host &amp;lt;ip-of-client&amp;gt; dev &amp;lt;tap-device&amp;gt; # add route to the client&lt;br /&gt;
&lt;br /&gt;
*Clientside: Default GW of the client is of course then the host (&amp;lt;ip-of-host&amp;gt; has to be in same subnet as &amp;lt;ip-of-client&amp;gt; ...):&lt;br /&gt;
&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Clientside v2: If you host IP is not on the same subnet as &amp;lt;ip-of-client&amp;gt;, then you must manually add the route to host before you create default route:&lt;br /&gt;
&lt;br /&gt;
 route add -host &amp;lt;ip-of-host&amp;gt; dev &amp;lt;network-interface&amp;gt;&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== vde ==&lt;br /&gt;
&lt;br /&gt;
Another option is using vde (virtual distributed ethernet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== performance ==&lt;br /&gt;
&lt;br /&gt;
Data on benchmarking results should go in here.&lt;br /&gt;
There&#039;s now a page dedicated to ideas for improving&lt;br /&gt;
[[Networking Performance]].&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Networking&amp;diff=4740</id>
		<title>Networking</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Networking&amp;diff=4740"/>
		<updated>2013-05-08T10:14:44Z</updated>

		<summary type="html">&lt;p&gt;Mjt: rearranged a bit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting guest network =&lt;br /&gt;
&lt;br /&gt;
Guest (VM) networking in kvm is the same as in qemu, so it is possible to refer to other documentations about networking for qemu. This page will try to explain how to configure the most frequent types of network needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Networking ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want a simple way for your virtual machine to access to the host, to the internet or to resources available on your local network.&lt;br /&gt;
* You don&#039;t need to access your guest from the network or from another guest.&lt;br /&gt;
* You are ready to take a huge performance hit.&lt;br /&gt;
* Warning: User networking does not support a number of networking features like ICMP.  Certain applications (like ping) may not function properly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* If you want to be able to access the internet or a local network, your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
* simply run your guest without specifying network parameters, which by default will create user-lever (a.k.a slirp) networking:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* The IP address can be automatically assigned to the guest thanks to the DHCP service integrated in QEMU&lt;br /&gt;
* If you run multiple guests on the host, you don&#039;t need to specify a different MAC address for each guest&lt;br /&gt;
* The default is equivalent to this explicit setup:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -netdev user,id=user.0 -device e1000,netdev=user.0&lt;br /&gt;
* user.0 identifier above is just to connect the two halves into one, you may use any identifier you wish, such as &amp;quot;n&amp;quot; or &amp;quot;net0&amp;quot;.&lt;br /&gt;
* Use rtl8139 instead of e1000 to get 8139-series NIC.&lt;br /&gt;
* You can still access one specific port on the guest using the &amp;quot;hostfwd&amp;quot; option. This means e.g. if you want to transport a file with scp from host to guest, start the guest with &amp;quot;-device e1000,netdev=user.0 -netdev user,id=user.0,hostfwd=tcp::5555-:22&amp;quot;. Now you are forwarding the host port 5555 to the guest port 22. After starting up the guest, you can transport a file with e.g. &amp;quot;scp -P 5555 file.txt root@localhost:/tmp&amp;quot; from host to guest. Or you can also use other address of the host to connect to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== private virtual bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want to set up a private network between 2 or more virtual machines. This network won&#039;t be seen from the other virtual machines nor from the real network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the private virtual network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== public bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; The here shown method, will not work with most(all?) wireless drivers, as these do not support bridging.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You want to assign an IP address to your virtual machines and make them accessible from your local network&lt;br /&gt;
* You also want performance out of your virtual machine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
* Your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 1: using distro sysconfig script&#039;&#039;&#039;&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
!RedHat&#039;s way&lt;br /&gt;
!Debian&#039;s way&lt;br /&gt;
!SuSE&#039;s way&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Edit /etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;
** comment out BOOTPROTO&lt;br /&gt;
** Add BRIDGE=br0&lt;br /&gt;
* Create /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
** The content should be:&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 BOOTPROTO=dhcp&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
|&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
 # Replace old eth0 config with br0&lt;br /&gt;
 auto &amp;lt;strike&amp;gt;eth0&amp;lt;/strike&amp;gt; br0&lt;br /&gt;
&lt;br /&gt;
 # Use old eth0 config for br0, plus bridge stuff&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
     bridge_ports    eth0&lt;br /&gt;
     bridge_stp      off&lt;br /&gt;
     bridge_maxwait  0&lt;br /&gt;
     bridge_fd       0&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
* Start YaST&lt;br /&gt;
* Go to Network Configuration&lt;br /&gt;
* Add new device -&amp;gt; Bridge&lt;br /&gt;
* Tick your existing network device&lt;br /&gt;
* done&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* /etc/init.d/networking restart&lt;br /&gt;
* The bridge br0 should get the ip address (either static/dhcp) while the physical eth0 is left without ip address.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VLANs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please note that the rtl8139 virtual network interface driver does not support VLANs. If you want to use VLANs with your virtual machine, you must use another virtual network interface like virtio. &lt;br /&gt;
&lt;br /&gt;
When using VLANs on a setup like this and no traffic is getting through to your guest(s), you might want to do:&lt;br /&gt;
 # cd /proc/sys/net/bridge&lt;br /&gt;
 # ls&lt;br /&gt;
 bridge-nf-call-arptables  bridge-nf-call-iptables&lt;br /&gt;
 bridge-nf-call-ip6tables  bridge-nf-filter-vlan-tagged&lt;br /&gt;
 # for f in bridge-nf-*; do echo 0 &amp;gt; $f; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 2: manual&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* Add one of your physical interface to the bridge, e-g for eth0:&lt;br /&gt;
 sudo /usr/sbin/brctl  addif br0 eth0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== iptables/routing ==&lt;br /&gt;
&lt;br /&gt;
you can also connect your guest vm to a tap in your host. then setting iptables rules in your host to become a router + firewall for your vm.&lt;br /&gt;
&lt;br /&gt;
Routing would be done simply by creating the default route on the client to the IP of the host (and allowing IP forwarding) and setting a route to the tap? device of the client on the host.&lt;br /&gt;
&lt;br /&gt;
Test the setup beforehand:&lt;br /&gt;
&lt;br /&gt;
*Hostside: Allow IPv4 forwarding and add route to client (could be put in a script - route has to be added after the client has started):&lt;br /&gt;
&lt;br /&gt;
 sysctl -w net.ipv4.ip_forward=1                 # allow forwarding of IPv4&lt;br /&gt;
 route add -host &amp;lt;ip-of-client&amp;gt; dev &amp;lt;tap-device&amp;gt; # add route to the client&lt;br /&gt;
&lt;br /&gt;
*Clientside: Default GW of the client is of course then the host (&amp;lt;ip-of-host&amp;gt; has to be in same subnet as &amp;lt;ip-of-client&amp;gt; ...):&lt;br /&gt;
&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Clientside v2: If you host IP is not on the same subnet as &amp;lt;ip-of-client&amp;gt;, then you must manually add the route to host before you create default route:&lt;br /&gt;
&lt;br /&gt;
 route add -host &amp;lt;ip-of-host&amp;gt; dev &amp;lt;network-interface&amp;gt;&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== vde ==&lt;br /&gt;
&lt;br /&gt;
Another option is using vde (virtual distributed ethernet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== performance ==&lt;br /&gt;
&lt;br /&gt;
Data on benchmarking results should go in here.&lt;br /&gt;
There&#039;s now a page dedicated to ideas for improving&lt;br /&gt;
[[Networking Performance]].&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Networking&amp;diff=4739</id>
		<title>Networking</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Networking&amp;diff=4739"/>
		<updated>2013-05-08T10:12:10Z</updated>

		<summary type="html">&lt;p&gt;Mjt: net =&amp;gt; netdev in bridge&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting guest network =&lt;br /&gt;
&lt;br /&gt;
Guest (VM) networking in kvm is the same as in qemu, so it is possible to refer to other documentations about networking for qemu. This page will try to explain how to configure the most frequent types of network needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Networking ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want a simple way for your virtual machine to access to the host, to the internet or to resources available on your local network.&lt;br /&gt;
* You don&#039;t need to access your guest from the network or from another guest.&lt;br /&gt;
* You are ready to take a huge performance hit.&lt;br /&gt;
* Warning: User networking does not support a number of networking features like ICMP.  Certain applications (like ping) may not function properly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* If you want to be able to access the internet or a local network, your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
* simply run your guest without specifying network parameters, which by default will create user-lever (a.k.a slirp) networking:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img&lt;br /&gt;
&lt;br /&gt;
This is equivalent of this explicit setup:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -netdev user,id=user.0 -device e1000,netdev=user.0&lt;br /&gt;
&lt;br /&gt;
(user.0 identifier is just to connect the two halves into one; specify rtl8139 instead of e1000 to get 8139-series NIC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* The IP address can be automatically assigned to the guest thanks to the DHCP service integrated in QEMU&lt;br /&gt;
* If you run multiple guests on the host, you don&#039;t need to specify a different MAC address for each guest&lt;br /&gt;
* You can still access one specific port on the guest using the &amp;quot;hostfwd&amp;quot; option. This means e.g. if you want to transport a file with scp from host to guest, start the guest with &amp;quot;-device e1000,netdev=user.0 -netdev user,id=user.0,hostfwd=tcp::5555-:22&amp;quot;. Now you are forwarding the host port 5555 to the guest port 22. After starting up the guest, you can transport a file with e.g. &amp;quot;scp -P 5555 file.txt root@localhost:/tmp&amp;quot; from host to guest. Or you can also use other address of the host to connect to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== private virtual bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want to set up a private network between 2 or more virtual machines. This network won&#039;t be seen from the other virtual machines nor from the real network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -device e1000,netdev=net0,mac=$macaddress -netdev tap,id=net0,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the private virtual network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== public bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; The here shown method, will not work with most(all?) wireless drivers, as these do not support bridging.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You want to assign an IP address to your virtual machines and make them accessible from your local network&lt;br /&gt;
* You also want performance out of your virtual machine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
* Your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 1: using distro sysconfig script&#039;&#039;&#039;&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
!RedHat&#039;s way&lt;br /&gt;
!Debian&#039;s way&lt;br /&gt;
!SuSE&#039;s way&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Edit /etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;
** comment out BOOTPROTO&lt;br /&gt;
** Add BRIDGE=br0&lt;br /&gt;
* Create /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
** The content should be:&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 BOOTPROTO=dhcp&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
|&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
 # Replace old eth0 config with br0&lt;br /&gt;
 auto &amp;lt;strike&amp;gt;eth0&amp;lt;/strike&amp;gt; br0&lt;br /&gt;
&lt;br /&gt;
 # Use old eth0 config for br0, plus bridge stuff&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
     bridge_ports    eth0&lt;br /&gt;
     bridge_stp      off&lt;br /&gt;
     bridge_maxwait  0&lt;br /&gt;
     bridge_fd       0&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
* Start YaST&lt;br /&gt;
* Go to Network Configuration&lt;br /&gt;
* Add new device -&amp;gt; Bridge&lt;br /&gt;
* Tick your existing network device&lt;br /&gt;
* done&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* /etc/init.d/networking restart&lt;br /&gt;
* The bridge br0 should get the ip address (either static/dhcp) while the physical eth0 is left without ip address.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VLANs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please note that the rtl8139 virtual network interface driver does not support VLANs. If you want to use VLANs with your virtual machine, you must use another virtual network interface like virtio. &lt;br /&gt;
&lt;br /&gt;
When using VLANs on a setup like this and no traffic is getting through to your guest(s), you might want to do:&lt;br /&gt;
 # cd /proc/sys/net/bridge&lt;br /&gt;
 # ls&lt;br /&gt;
 bridge-nf-call-arptables  bridge-nf-call-iptables&lt;br /&gt;
 bridge-nf-call-ip6tables  bridge-nf-filter-vlan-tagged&lt;br /&gt;
 # for f in bridge-nf-*; do echo 0 &amp;gt; $f; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 2: manual&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* Add one of your physical interface to the bridge, e-g for eth0:&lt;br /&gt;
 sudo /usr/sbin/brctl  addif br0 eth0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== iptables/routing ==&lt;br /&gt;
&lt;br /&gt;
you can also connect your guest vm to a tap in your host. then setting iptables rules in your host to become a router + firewall for your vm.&lt;br /&gt;
&lt;br /&gt;
Routing would be done simply by creating the default route on the client to the IP of the host (and allowing IP forwarding) and setting a route to the tap? device of the client on the host.&lt;br /&gt;
&lt;br /&gt;
Test the setup beforehand:&lt;br /&gt;
&lt;br /&gt;
*Hostside: Allow IPv4 forwarding and add route to client (could be put in a script - route has to be added after the client has started):&lt;br /&gt;
&lt;br /&gt;
 sysctl -w net.ipv4.ip_forward=1                 # allow forwarding of IPv4&lt;br /&gt;
 route add -host &amp;lt;ip-of-client&amp;gt; dev &amp;lt;tap-device&amp;gt; # add route to the client&lt;br /&gt;
&lt;br /&gt;
*Clientside: Default GW of the client is of course then the host (&amp;lt;ip-of-host&amp;gt; has to be in same subnet as &amp;lt;ip-of-client&amp;gt; ...):&lt;br /&gt;
&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Clientside v2: If you host IP is not on the same subnet as &amp;lt;ip-of-client&amp;gt;, then you must manually add the route to host before you create default route:&lt;br /&gt;
&lt;br /&gt;
 route add -host &amp;lt;ip-of-host&amp;gt; dev &amp;lt;network-interface&amp;gt;&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== vde ==&lt;br /&gt;
&lt;br /&gt;
Another option is using vde (virtual distributed ethernet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== performance ==&lt;br /&gt;
&lt;br /&gt;
Data on benchmarking results should go in here.&lt;br /&gt;
There&#039;s now a page dedicated to ideas for improving&lt;br /&gt;
[[Networking Performance]].&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Networking&amp;diff=4738</id>
		<title>Networking</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Networking&amp;diff=4738"/>
		<updated>2013-05-08T10:10:12Z</updated>

		<summary type="html">&lt;p&gt;Mjt: more -net =&amp;gt; -netdev for slirp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting guest network =&lt;br /&gt;
&lt;br /&gt;
Guest (VM) networking in kvm is the same as in qemu, so it is possible to refer to other documentations about networking for qemu. This page will try to explain how to configure the most frequent types of network needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Networking ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want a simple way for your virtual machine to access to the host, to the internet or to resources available on your local network.&lt;br /&gt;
* You don&#039;t need to access your guest from the network or from another guest.&lt;br /&gt;
* You are ready to take a huge performance hit.&lt;br /&gt;
* Warning: User networking does not support a number of networking features like ICMP.  Certain applications (like ping) may not function properly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* If you want to be able to access the internet or a local network, your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
* simply run your guest without specifying network parameters, which by default will create user-lever (a.k.a slirp) networking:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img&lt;br /&gt;
&lt;br /&gt;
This is equivalent of this explicit setup:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -netdev user,id=user.0 -device e1000,netdev=user.0&lt;br /&gt;
&lt;br /&gt;
(user.0 identifier is just to connect the two halves into one; specify rtl8139 instead of e1000 to get 8139-series NIC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* The IP address can be automatically assigned to the guest thanks to the DHCP service integrated in QEMU&lt;br /&gt;
* If you run multiple guests on the host, you don&#039;t need to specify a different MAC address for each guest&lt;br /&gt;
* You can still access one specific port on the guest using the &amp;quot;hostfwd&amp;quot; option. This means e.g. if you want to transport a file with scp from host to guest, start the guest with &amp;quot;-device e1000,netdev=user.0 -netdev user,id=user.0,hostfwd=tcp::5555-:22&amp;quot;. Now you are forwarding the host port 5555 to the guest port 22. After starting up the guest, you can transport a file with e.g. &amp;quot;scp -P 5555 file.txt root@localhost:/tmp&amp;quot; from host to guest. Or you can also use other address of the host to connect to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== private virtual bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want to set up a private network between 2 or more virtual machines. This network won&#039;t be seen from the other virtual machines nor from the real network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the private virtual network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== public bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; The here shown method, will not work with most(all?) wireless drivers, as these do not support bridging.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You want to assign an IP address to your virtual machines and make them accessible from your local network&lt;br /&gt;
* You also want performance out of your virtual machine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
* Your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 1: using distro sysconfig script&#039;&#039;&#039;&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
!RedHat&#039;s way&lt;br /&gt;
!Debian&#039;s way&lt;br /&gt;
!SuSE&#039;s way&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Edit /etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;
** comment out BOOTPROTO&lt;br /&gt;
** Add BRIDGE=br0&lt;br /&gt;
* Create /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
** The content should be:&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 BOOTPROTO=dhcp&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
|&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
 # Replace old eth0 config with br0&lt;br /&gt;
 auto &amp;lt;strike&amp;gt;eth0&amp;lt;/strike&amp;gt; br0&lt;br /&gt;
&lt;br /&gt;
 # Use old eth0 config for br0, plus bridge stuff&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
     bridge_ports    eth0&lt;br /&gt;
     bridge_stp      off&lt;br /&gt;
     bridge_maxwait  0&lt;br /&gt;
     bridge_fd       0&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
* Start YaST&lt;br /&gt;
* Go to Network Configuration&lt;br /&gt;
* Add new device -&amp;gt; Bridge&lt;br /&gt;
* Tick your existing network device&lt;br /&gt;
* done&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* /etc/init.d/networking restart&lt;br /&gt;
* The bridge br0 should get the ip address (either static/dhcp) while the physical eth0 is left without ip address.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VLANs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please note that the rtl8139 virtual network interface driver does not support VLANs. If you want to use VLANs with your virtual machine, you must use another virtual network interface like virtio. &lt;br /&gt;
&lt;br /&gt;
When using VLANs on a setup like this and no traffic is getting through to your guest(s), you might want to do:&lt;br /&gt;
 # cd /proc/sys/net/bridge&lt;br /&gt;
 # ls&lt;br /&gt;
 bridge-nf-call-arptables  bridge-nf-call-iptables&lt;br /&gt;
 bridge-nf-call-ip6tables  bridge-nf-filter-vlan-tagged&lt;br /&gt;
 # for f in bridge-nf-*; do echo 0 &amp;gt; $f; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 2: manual&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* Add one of your physical interface to the bridge, e-g for eth0:&lt;br /&gt;
 sudo /usr/sbin/brctl  addif br0 eth0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== iptables/routing ==&lt;br /&gt;
&lt;br /&gt;
you can also connect your guest vm to a tap in your host. then setting iptables rules in your host to become a router + firewall for your vm.&lt;br /&gt;
&lt;br /&gt;
Routing would be done simply by creating the default route on the client to the IP of the host (and allowing IP forwarding) and setting a route to the tap? device of the client on the host.&lt;br /&gt;
&lt;br /&gt;
Test the setup beforehand:&lt;br /&gt;
&lt;br /&gt;
*Hostside: Allow IPv4 forwarding and add route to client (could be put in a script - route has to be added after the client has started):&lt;br /&gt;
&lt;br /&gt;
 sysctl -w net.ipv4.ip_forward=1                 # allow forwarding of IPv4&lt;br /&gt;
 route add -host &amp;lt;ip-of-client&amp;gt; dev &amp;lt;tap-device&amp;gt; # add route to the client&lt;br /&gt;
&lt;br /&gt;
*Clientside: Default GW of the client is of course then the host (&amp;lt;ip-of-host&amp;gt; has to be in same subnet as &amp;lt;ip-of-client&amp;gt; ...):&lt;br /&gt;
&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Clientside v2: If you host IP is not on the same subnet as &amp;lt;ip-of-client&amp;gt;, then you must manually add the route to host before you create default route:&lt;br /&gt;
&lt;br /&gt;
 route add -host &amp;lt;ip-of-host&amp;gt; dev &amp;lt;network-interface&amp;gt;&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== vde ==&lt;br /&gt;
&lt;br /&gt;
Another option is using vde (virtual distributed ethernet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== performance ==&lt;br /&gt;
&lt;br /&gt;
Data on benchmarking results should go in here.&lt;br /&gt;
There&#039;s now a page dedicated to ideas for improving&lt;br /&gt;
[[Networking Performance]].&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Networking&amp;diff=4737</id>
		<title>Networking</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Networking&amp;diff=4737"/>
		<updated>2013-05-08T10:06:13Z</updated>

		<summary type="html">&lt;p&gt;Mjt: -net user is the default, and use -netdev..device in first -net nic,user&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting guest network =&lt;br /&gt;
&lt;br /&gt;
Guest (VM) networking in kvm is the same as in qemu, so it is possible to refer to other documentations about networking for qemu. This page will try to explain how to configure the most frequent types of network needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Networking ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want a simple way for your virtual machine to access to the host, to the internet or to resources available on your local network.&lt;br /&gt;
* You don&#039;t need to access your guest from the network or from another guest.&lt;br /&gt;
* You are ready to take a huge performance hit.&lt;br /&gt;
* Warning: User networking does not support a number of networking features like ICMP.  Certain applications (like ping) may not function properly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* If you want to be able to access the internet or a local network, your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
* simply run your guest without specifying network parameters, which by default will create user-lever (a.k.a slirp) networking:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img&lt;br /&gt;
&lt;br /&gt;
This is equivalent of this explicit setup:&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -netdev user,id=user.0 -device e1000,netdev=user.0&lt;br /&gt;
&lt;br /&gt;
(user.0 identifier is just to connect the two halves into one)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* The IP address can be automatically assigned to the guest thanks to the DHCP service integrated in QEMU&lt;br /&gt;
* If you run multiple guests on the host, you don&#039;t need to specify a different MAC address for each guest&lt;br /&gt;
* You can still access one specific port on the guest using the &amp;quot;hostfwd&amp;quot; option. This means e.g. if you want to transport a file with scp from host to guest, start the guest with &amp;quot;-net nic -net user,hostfwd=tcp::5555-:22&amp;quot;. Now you are forwarding the host port 5555 to the guest port 22. After starting up the guest, you can transport a file with e.g. &amp;quot;scp -P 5555 file.txt root@localhost:/tmp&amp;quot; from host to guest. Or you can also use other address of the host to connect to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== private virtual bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
* You want to set up a private network between 2 or more virtual machines. This network won&#039;t be seen from the other virtual machines nor from the real network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the private virtual network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== public bridge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; The here shown method, will not work with most(all?) wireless drivers, as these do not support bridging.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use case:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You want to assign an IP address to your virtual machines and make them accessible from your local network&lt;br /&gt;
* You also want performance out of your virtual machine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039;&lt;br /&gt;
* You need kvm up and running&lt;br /&gt;
* If you don&#039;t want to run as root, the user you want to use needs to have rw access to /dev/kvm&lt;br /&gt;
* You need the following commands installed on your system, and if you don&#039;t want to run as root, the user you want to use needs to be able to sudo the following command:&lt;br /&gt;
 /sbin/ip&lt;br /&gt;
 /usr/sbin/brctl&lt;br /&gt;
 /usr/sbin/tunctl&lt;br /&gt;
&lt;br /&gt;
* Your host system must be able to access the internet or the local network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 1: using distro sysconfig script&#039;&#039;&#039;&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
!RedHat&#039;s way&lt;br /&gt;
!Debian&#039;s way&lt;br /&gt;
!SuSE&#039;s way&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* Edit /etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;
** comment out BOOTPROTO&lt;br /&gt;
** Add BRIDGE=br0&lt;br /&gt;
* Create /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
** The content should be:&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 BOOTPROTO=dhcp&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
|&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
 # Replace old eth0 config with br0&lt;br /&gt;
 auto &amp;lt;strike&amp;gt;eth0&amp;lt;/strike&amp;gt; br0&lt;br /&gt;
&lt;br /&gt;
 # Use old eth0 config for br0, plus bridge stuff&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
     bridge_ports    eth0&lt;br /&gt;
     bridge_stp      off&lt;br /&gt;
     bridge_maxwait  0&lt;br /&gt;
     bridge_fd       0&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
* Start YaST&lt;br /&gt;
* Go to Network Configuration&lt;br /&gt;
* Add new device -&amp;gt; Bridge&lt;br /&gt;
* Tick your existing network device&lt;br /&gt;
* done&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* /etc/init.d/networking restart&lt;br /&gt;
* The bridge br0 should get the ip address (either static/dhcp) while the physical eth0 is left without ip address.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VLANs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please note that the rtl8139 virtual network interface driver does not support VLANs. If you want to use VLANs with your virtual machine, you must use another virtual network interface like virtio. &lt;br /&gt;
&lt;br /&gt;
When using VLANs on a setup like this and no traffic is getting through to your guest(s), you might want to do:&lt;br /&gt;
 # cd /proc/sys/net/bridge&lt;br /&gt;
 # ls&lt;br /&gt;
 bridge-nf-call-arptables  bridge-nf-call-iptables&lt;br /&gt;
 bridge-nf-call-ip6tables  bridge-nf-filter-vlan-tagged&lt;br /&gt;
 # for f in bridge-nf-*; do echo 0 &amp;gt; $f; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 2: manual&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* You need to create a bridge, e-g:&lt;br /&gt;
 sudo /usr/sbin/brctl addbr br0&lt;br /&gt;
&lt;br /&gt;
* Add one of your physical interface to the bridge, e-g for eth0:&lt;br /&gt;
 sudo /usr/sbin/brctl  addif br0 eth0&lt;br /&gt;
&lt;br /&gt;
* You need a qemu-ifup script containing the following:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 set -x&lt;br /&gt;
 &lt;br /&gt;
 switch=br0&lt;br /&gt;
 &lt;br /&gt;
 if [ -n &amp;quot;$1&amp;quot; ];then&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1&lt;br /&gt;
         /usr/bin/sudo /sbin/ip link set $1 up&lt;br /&gt;
         sleep 0.5s&lt;br /&gt;
         /usr/bin/sudo /usr/sbin/brctl addif $switch $1&lt;br /&gt;
         exit 0&lt;br /&gt;
 else&lt;br /&gt;
         echo &amp;quot;Error: no interface specified&amp;quot;&lt;br /&gt;
         exit 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
* Generate a MAC address, either manually or using:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # generate a random mac address for the qemu nic&lt;br /&gt;
 printf &#039;DE:AD:BE:EF:%02X:%02X\n&#039; $((RANDOM%256)) $((RANDOM%256))&lt;br /&gt;
&lt;br /&gt;
* Run each guest with the following, replacing $macaddress with the value from the previous step&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* If you don&#039;t want to run as root, the qemu-ifup must be executable by the user you want to use&lt;br /&gt;
* You can either create a system-wide qemu-ifup in /etc/qemu-ifup or use another one. In the latter case, run&lt;br /&gt;
 qemu-system-x86_64 -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap,script=/path/to/qemu-ifup&lt;br /&gt;
&lt;br /&gt;
* Each guest on the network must have a different MAC address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== iptables/routing ==&lt;br /&gt;
&lt;br /&gt;
you can also connect your guest vm to a tap in your host. then setting iptables rules in your host to become a router + firewall for your vm.&lt;br /&gt;
&lt;br /&gt;
Routing would be done simply by creating the default route on the client to the IP of the host (and allowing IP forwarding) and setting a route to the tap? device of the client on the host.&lt;br /&gt;
&lt;br /&gt;
Test the setup beforehand:&lt;br /&gt;
&lt;br /&gt;
*Hostside: Allow IPv4 forwarding and add route to client (could be put in a script - route has to be added after the client has started):&lt;br /&gt;
&lt;br /&gt;
 sysctl -w net.ipv4.ip_forward=1                 # allow forwarding of IPv4&lt;br /&gt;
 route add -host &amp;lt;ip-of-client&amp;gt; dev &amp;lt;tap-device&amp;gt; # add route to the client&lt;br /&gt;
&lt;br /&gt;
*Clientside: Default GW of the client is of course then the host (&amp;lt;ip-of-host&amp;gt; has to be in same subnet as &amp;lt;ip-of-client&amp;gt; ...):&lt;br /&gt;
&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Clientside v2: If you host IP is not on the same subnet as &amp;lt;ip-of-client&amp;gt;, then you must manually add the route to host before you create default route:&lt;br /&gt;
&lt;br /&gt;
 route add -host &amp;lt;ip-of-host&amp;gt; dev &amp;lt;network-interface&amp;gt;&lt;br /&gt;
 route add default gw &amp;lt;ip-of-host&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== vde ==&lt;br /&gt;
&lt;br /&gt;
Another option is using vde (virtual distributed ethernet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== performance ==&lt;br /&gt;
&lt;br /&gt;
Data on benchmarking results should go in here.&lt;br /&gt;
There&#039;s now a page dedicated to ideas for improving&lt;br /&gt;
[[Networking Performance]].&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=WindowsGuestDrivers/Download_Drivers&amp;diff=4398</id>
		<title>WindowsGuestDrivers/Download Drivers</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=WindowsGuestDrivers/Download_Drivers&amp;diff=4398"/>
		<updated>2011-11-08T11:50:49Z</updated>

		<summary type="html">&lt;p&gt;Mjt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Windows VirtIO Drivers =&lt;br /&gt;
&lt;br /&gt;
The source for the Windows drivers is in a git repository on kernel.org&lt;br /&gt;
&lt;br /&gt;
git://git.kernel.org/pub/scm/virt/kvm/kvm-guest-drivers-windows.git&lt;br /&gt;
&lt;br /&gt;
[http://git.kernel.org/?p=virt/kvm/kvm-guest-drivers-windows.git;a=summary  http://git.kernel.org/?p=virt/kvm/kvm-guest-drivers-windows.git;a=summary ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Binary Drivers ==&lt;br /&gt;
&lt;br /&gt;
Binary drivers are provided by some Linux distributions including WHQL Certified drivers.&lt;br /&gt;
&lt;br /&gt;
64-bit versions of Windows Vista and newer (this currently includes Windows Server 2008, Windows 7 and Windows Server 2008 R2) require the drivers to be [http://msdn.microsoft.com/en-us/windows/hardware/gg487332 digitally signed] to load.&lt;br /&gt;
&lt;br /&gt;
If your distribution does not provide binary drivers for Windows, you can use the package from the Fedora Project. These drivers are digitally signed, and will work on 64-bit versions of Windows:&lt;br /&gt;
&lt;br /&gt;
[http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/ Latest VirtIO drivers for Windows from Fedora ]&lt;br /&gt;
&lt;br /&gt;
Note: as of this writing (2011-Nov-08), latest drivers are of version &amp;quot;15&amp;quot;, dated &amp;quot;15-Jun-2011&amp;quot;, with the CD image being virtio-win-0.1-mm34.iso.  In that image, WindowsXP drivers does not seem to work, it is impossible to install them using regular winXP driver interface.  But the previous drivers, version &amp;quot;14&amp;quot; as found on this [http://alt.fedoraproject.org/pub/alt/virtio-win/ Directory], dated &amp;quot;13-Jan-2011&amp;quot;, from CD image named &amp;quot;virtio-win-1.1.16.iso&amp;quot;, installs on winXP fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Code signing drivers for the Windows 64bit platforms =&lt;br /&gt;
* Drivers should be signed for Windows 64bit platforms. &lt;br /&gt;
* Here are some links how to self sign and install self signed drivers:&lt;br /&gt;
** [http://msdn.microsoft.com/en-us/library/ff547649.aspx Installing Test-Signed Driver Packages]&lt;br /&gt;
** [http://www.microsoft.com/whdc/driver/tips/IFS_Signing.mspx How to Release-Sign File System Drivers]&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=WindowsGuestDrivers/Download_Drivers&amp;diff=4397</id>
		<title>WindowsGuestDrivers/Download Drivers</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=WindowsGuestDrivers/Download_Drivers&amp;diff=4397"/>
		<updated>2011-11-08T11:50:16Z</updated>

		<summary type="html">&lt;p&gt;Mjt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Windows VirtIO Drivers =&lt;br /&gt;
&lt;br /&gt;
The source for the Windows drivers is in a git repository on kernel.org&lt;br /&gt;
&lt;br /&gt;
git://git.kernel.org/pub/scm/virt/kvm/kvm-guest-drivers-windows.git&lt;br /&gt;
&lt;br /&gt;
[http://git.kernel.org/?p=virt/kvm/kvm-guest-drivers-windows.git;a=summary  http://git.kernel.org/?p=virt/kvm/kvm-guest-drivers-windows.git;a=summary ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Binary Drivers ==&lt;br /&gt;
&lt;br /&gt;
Binary drivers are provided by some Linux distributions including WHQL Certified drivers.&lt;br /&gt;
&lt;br /&gt;
64-bit versions of Windows Vista and newer (this currently includes Windows Server 2008, Windows 7 and Windows Server 2008 R2) require the drivers to be [http://msdn.microsoft.com/en-us/windows/hardware/gg487332 digitally signed] to load.&lt;br /&gt;
&lt;br /&gt;
If your distribution does not provide binary drivers for Windows, you can use the package from the Fedora Project. These drivers are digitally signed, and will work on 64-bit versions of Windows:&lt;br /&gt;
&lt;br /&gt;
[http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/ Latest VirtIO drivers for Windows from Fedora ]&lt;br /&gt;
&lt;br /&gt;
Note: as of this writing (2011-Nov-08), latest drivers are of version &amp;quot;15&amp;quot;, dated &amp;quot;15-Jun-2011&amp;quot;, with the CD image being virtio-win-0.1-mm34.iso.  In that image, WindowsXP drivers does not seem to work, it is impossible to install them using regular winXP driver interface.  But the previous drivers, version &amp;quot;14&amp;quot; as found on this [[http://alt.fedoraproject.org/pub/alt/virtio-win/ Directory], dated &amp;quot;13-Jan-2011&amp;quot;, from CD image named &amp;quot;virtio-win-1.1.16.iso&amp;quot;, installs on winXP fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Code signing drivers for the Windows 64bit platforms =&lt;br /&gt;
* Drivers should be signed for Windows 64bit platforms. &lt;br /&gt;
* Here are some links how to self sign and install self signed drivers:&lt;br /&gt;
** [http://msdn.microsoft.com/en-us/library/ff547649.aspx Installing Test-Signed Driver Packages]&lt;br /&gt;
** [http://www.microsoft.com/whdc/driver/tips/IFS_Signing.mspx How to Release-Sign File System Drivers]&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=WindowsGuestDrivers/Download_Drivers&amp;diff=4396</id>
		<title>WindowsGuestDrivers/Download Drivers</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=WindowsGuestDrivers/Download_Drivers&amp;diff=4396"/>
		<updated>2011-11-08T11:49:56Z</updated>

		<summary type="html">&lt;p&gt;Mjt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Windows VirtIO Drivers =&lt;br /&gt;
&lt;br /&gt;
The source for the Windows drivers is in a git repository on kernel.org&lt;br /&gt;
&lt;br /&gt;
git://git.kernel.org/pub/scm/virt/kvm/kvm-guest-drivers-windows.git&lt;br /&gt;
&lt;br /&gt;
[http://git.kernel.org/?p=virt/kvm/kvm-guest-drivers-windows.git;a=summary  http://git.kernel.org/?p=virt/kvm/kvm-guest-drivers-windows.git;a=summary ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Binary Drivers ==&lt;br /&gt;
&lt;br /&gt;
Binary drivers are provided by some Linux distributions including WHQL Certified drivers.&lt;br /&gt;
&lt;br /&gt;
64-bit versions of Windows Vista and newer (this currently includes Windows Server 2008, Windows 7 and Windows Server 2008 R2) require the drivers to be [http://msdn.microsoft.com/en-us/windows/hardware/gg487332 digitally signed] to load.&lt;br /&gt;
&lt;br /&gt;
If your distribution does not provide binary drivers for Windows, you can use the package from the Fedora Project. These drivers are digitally signed, and will work on 64-bit versions of Windows:&lt;br /&gt;
&lt;br /&gt;
[http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/ Latest VirtIO drivers for Windows from Fedora ]&lt;br /&gt;
Note: as of this writing (2011-Nov-08), latest drivers are of version &amp;quot;15&amp;quot;, dated &amp;quot;15-Jun-2011&amp;quot;, with the CD image being virtio-win-0.1-mm34.iso.  In that image, WindowsXP drivers does not seem to work, it is impossible to install them using regular winXP driver interface.  But the previous drivers, version &amp;quot;14&amp;quot; as found on this [[http://alt.fedoraproject.org/pub/alt/virtio-win/ Directory], dated &amp;quot;13-Jan-2011&amp;quot;, from CD image named &amp;quot;virtio-win-1.1.16.iso&amp;quot;, installs on winXP fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Code signing drivers for the Windows 64bit platforms =&lt;br /&gt;
* Drivers should be signed for Windows 64bit platforms. &lt;br /&gt;
* Here are some links how to self sign and install self signed drivers:&lt;br /&gt;
** [http://msdn.microsoft.com/en-us/library/ff547649.aspx Installing Test-Signed Driver Packages]&lt;br /&gt;
** [http://www.microsoft.com/whdc/driver/tips/IFS_Signing.mspx How to Release-Sign File System Drivers]&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Lists,_IRC&amp;diff=4392</id>
		<title>Lists, IRC</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Lists,_IRC&amp;diff=4392"/>
		<updated>2011-11-07T22:15:08Z</updated>

		<summary type="html">&lt;p&gt;Mjt: despam (Enomer)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lists, IRC=&lt;br /&gt;
&lt;br /&gt;
== Mailing Lists ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! list&lt;br /&gt;
! topics&lt;br /&gt;
! subscribe&lt;br /&gt;
! archives&lt;br /&gt;
|-&lt;br /&gt;
| kvm@vger.kernel.org&lt;br /&gt;
| general and x86&lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm subscribe]&lt;br /&gt;
| [http://news.gmane.org/gmane.comp.emulators.kvm.devel Gmane], [http://www.spinics.net/lists/kvm spinics], [http://marc.info/?l=kvm MARC]&lt;br /&gt;
|-&lt;br /&gt;
| kvm-commits@vger.kernel.org &lt;br /&gt;
| kernel commit logs &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-commits subscribe] &lt;br /&gt;
| [http://news.gmane.org/gmane.comp.emulators.kvm.scm Gmane] &lt;br /&gt;
|-&lt;br /&gt;
| kvm-ia64@vger.kernel.org &lt;br /&gt;
| ia64 &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-ia64 subscribe] &lt;br /&gt;
| [http://www.spinics.net/lists/kvm-ia64/ spinics]&lt;br /&gt;
|-&lt;br /&gt;
| kvm-ppc@vger.kernel.org &lt;br /&gt;
| PowerPC &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-ppc subscribe] &lt;br /&gt;
| [http://marc.info/?l=kvm-ppc-devel MARC] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
While the lists are used mainly for development, user queries are welcome. No need to subscribe for a one-off question, just send an email. You may also want to check the various qemu resources on the web, as kvm shares the qemu user interface and networking.&lt;br /&gt;
&lt;br /&gt;
Please observe the usual mailing list etiquette: don&#039;t top-post, and trim excess quotations from the mail you are replying to.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t post to individual kvm developers directly.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
Join us on &#039;&#039;&#039;#kvm&#039;&#039;&#039; at [http://freenode.net Freenode]. Don&#039;t report serious bugs on IRC; they&#039;re liable to get lost. Use the list or the [[Bugs|bug tracker]].&lt;br /&gt;
&lt;br /&gt;
== Blogs and related sites ==&lt;br /&gt;
Haydn Solomon&#039;s [http://www.linux-kvm.com linux-kvm] site, featuring forums and a blog&lt;br /&gt;
&lt;br /&gt;
Avi Kivity&#039;s [http://avikivity.blogspot.com blog] &lt;br /&gt;
&lt;br /&gt;
Anthony Liguori&#039;s [http://blog.codemonkey.ws blog] &lt;br /&gt;
&lt;br /&gt;
[http://virt.kernelnewbies.org/ Linux virtualization] wiki&lt;br /&gt;
&lt;br /&gt;
== Forums ==&lt;br /&gt;
&lt;br /&gt;
[http://forums.meulie.net/viewforum.php?f=43 KVM forum]&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Guest_Support_Status&amp;diff=4391</id>
		<title>Guest Support Status</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Guest_Support_Status&amp;diff=4391"/>
		<updated>2011-11-07T22:12:27Z</updated>

		<summary type="html">&lt;p&gt;Mjt: Reverted edits by Enomer (Talk); changed back to last version by Tlambiris&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Guest Support Status=&lt;br /&gt;
&lt;br /&gt;
- This page is obsolete. qemu/kvm have much newer versions and expected to run all production OSs.&lt;br /&gt;
&lt;br /&gt;
== Windows Family ==&lt;br /&gt;
{|border=1&lt;br /&gt;
| &#039;&#039;&#039;Guest&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Guest bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host version&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host cpu&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Comments&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 2008 Essential Business Server&lt;br /&gt;
| 64&lt;br /&gt;
| qemu-kvm-0.11.0 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Installed on 800 MB RAM only. Host is: Ubuntu Server 9.10 64-bit, 3 x 2.7 GHz AMD Athlon X3 425, 2 x 1 GB DDR2 667 MHz, single channel, 4 x 250 GB SATA Samsung 7200 drives: approx. 498 GB RAID 10 volume for host OS and machine images, 4 x 1 GB RAID 0 volume for swap due to low host main memory. USB hardware key works (Hasp), Virtio drivers for LAN and HDD still testing. By Tomaszg.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 2008 Small Business Server&lt;br /&gt;
| 64&lt;br /&gt;
| qemu-kvm-0.11.0 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64&lt;br /&gt;
| Works (reboot from guest doesn&#039;t correctly work)&lt;br /&gt;
| Installed on 2 GB RAM, 1 CPU core. Host is: Ubuntu Server 9.10 64-bit, 2 x Six-Core AMD Opteron(tm) Processor 2425 HE, 8 x 4 GB DDR2, ISCSI for Guest discspace. Don&#039;t use virtio drivers (harddisc/network), use IDE (harddisc) and e1000 (network) emulation instead. By Mark.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 2008 Standard&lt;br /&gt;
| 64&lt;br /&gt;
| qemu-kvm-0.11.0 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64&lt;br /&gt;
| Works (reboot from guest doesn&#039;t correctly work)&lt;br /&gt;
| Installed on 2 GB RAM, 1 CPU core. Host is: Ubuntu Server 9.10 64-bit, 2 x Six-Core AMD Opteron(tm) Processor 2425 HE, 8 x 4 GB DDR2, ISCSI for Guest discspace. Don&#039;t use virtio drivers (harddisc/network), use IDE (harddisc) and e1000 (network) emulation instead. By Mark.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 2008 Standard&lt;br /&gt;
| 32&lt;br /&gt;
| qemu-kvm-0.11.0 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32&lt;br /&gt;
| Works &lt;br /&gt;
| Installed on 1.5 GB RAM, 2 CPU core. Host is: Fedora 14 32-bit, Intel(R) Core(TM)2 CPU 6300  @ 1.86GHz, 3 x 1 GB DDR2 + 1 x 2 GB DDR2, single SATA for host, separate SATA for guest.  Working just fine with virtio or Realtek for network.  CPU usage near 100% when viewing with KVM console, 14% when viewing through Remmina RDP.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 2008 R2 RTM &lt;br /&gt;
| 64&lt;br /&gt;
| kvm-88 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Installs and works with 1GB guest RAM. [http://twitpic.com/dxs0z/full screenshot]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 2008 R2 Standard&lt;br /&gt;
| 64&lt;br /&gt;
| qemu-kvm-0.12.5&lt;br /&gt;
| Intel &lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Installed on HP Proliant ML330 G6 with Ubuntu 10.04.1 server host (2.6.32-24-server) with kvm-kmod-2.6.32.16 using 2 CPU and 2GB guest RAM with IDE harddisc and e1000 network emulation. Works great. By Krunoslav Husak (h00s)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 2008 R2 Datacenter&lt;br /&gt;
| 64&lt;br /&gt;
| qemu-kvm-0.12.5&lt;br /&gt;
| Intel &lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Installed on HP Proliant DL530 G4 with Debian 6.0.2 (2.6.32-5-amd64). Using 4 CPU and 4GB RAM for guest. Run stable. By Alexander Pushkarev. [http://www.easyfoto.ru/20110722070342560.jpg Screenshot]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 7 Professional (Final)&lt;br /&gt;
| 64 &lt;br /&gt;
| qemu-kvm-0.12.1.2-1 ARCH-2.6.32&lt;br /&gt;
| AMD&lt;br /&gt;
| 64 &lt;br /&gt;
| Works&lt;br /&gt;
| using 2CPUs and 2GB guest RAM [http://img715.yfrog.com/img715/2143/win7profnl642proc2gb.png Screenshot]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 7 RTM &lt;br /&gt;
| 32, 64&lt;br /&gt;
| kvm-88 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Installs and works with 1GB guest RAM. [http://twitpic.com/d3gqq/full screenshot]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 7 RC &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-72+dfsg-5 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works&lt;br /&gt;
| Installs and works without any problem with 1GB guest RAM.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows 7 Beta &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-84 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works&lt;br /&gt;
| Installs and works without any problem with 512MB guest RAM.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows 7 Beta &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| Installed in about 25-30 minutes and worked flawlessly on my ThinkPad T60 (1953-7EU) with 1.5G of RAM &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows 7 Beta &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-62 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &amp;quot;-m 2048 -vnc :0 -usbdevice tablet -smp 2 -std-vga&amp;quot; on qcow2 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows Server 2008 (Datacenter) &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows Server 2008 (Datacenter) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64, 32 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows Vista Ultimate &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-84 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works  &lt;br /&gt;
| (not Aero Glass capable) by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows Vista Ultimate &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-84 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64, 32 &lt;br /&gt;
| Works &lt;br /&gt;
| (not Aero Glass capable) by Alexey.E.  &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows Server 2003 R2 (Std)&lt;br /&gt;
| 32&lt;br /&gt;
| qemu-kvm-0.11.1&lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works&lt;br /&gt;
| Well with virtio drivers by Patrick.M. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Windows Server 2003 R2 (Std)&lt;br /&gt;
| 32&lt;br /&gt;
| qemu-kvm-0.13&lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works&lt;br /&gt;
| Well with virtio drivers (1.1.13) by Alexandre D.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows Server 2003 x64 &lt;br /&gt;
| 64 &lt;br /&gt;
| qemu-kvm-0.13 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| Well with virtio drivers (1.1.13) by Alexandre D. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows Server 2003 x64 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. (setup is unstable, rerun several times) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows Server 2003 (Enterprise) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows Server 2003 (Enterprise) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows XP Pro x64 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. (setup is unstable, rerun several times) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| 32 &lt;br /&gt;
| qemu-kvm-0.11.0 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works&lt;br /&gt;
| Installed on standard IDE driver. Swapped to Virtio XP drivers both for LAN and HDD after installation from &amp;quot;NetKVM-and-viostor.iso&amp;quot;. Works well so far. by Tomaszg.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows 2000 Pro (SP4) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-64 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| use Qcow2 format. (setup is unstable, rerun several times) by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows 2000 Pro (SP4) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-64 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| use Qcow2 format. (setup is unstable, rerun several times) by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows 2000 Advanced Server &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-44 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| use Qcow2 format. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows 98SE &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-63 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Fails &lt;br /&gt;
| by Alexey.E. (halts when booting HIMEM) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows 98SE &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-80, 2.6.27.7 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| no way &lt;br /&gt;
| install crashes &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows NT Server 4.0 sp 1&lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-72, 2.6.30 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works&lt;br /&gt;
| for networking use -net nic,model=ne2k_pci and install rtl8029 guest driver (included in guest OS cd)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows NT Workstation 4.0 (no SP)&lt;br /&gt;
| 32 &lt;br /&gt;
| qemu-kvm 0.12.3, 2.6.33&lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works&lt;br /&gt;
| without any SP requires -cpu qemu64,level=1, also use -vga std&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Windows 95 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-44, 2.6.23-rc8 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64, 32 &lt;br /&gt;
| no way &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Linux Family: Fedora/RedHat Derivatives ==&lt;br /&gt;
{|border=1&lt;br /&gt;
| &#039;&#039;&#039;Guest&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Guest bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host version&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host cpu&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Comments&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CentOS 6.0&lt;br /&gt;
| 64&lt;br /&gt;
| kvm-83&lt;br /&gt;
| Intel&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CentOS 5.6&lt;br /&gt;
| 64&lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CentOS 5.5&lt;br /&gt;
| 64&lt;br /&gt;
| kvm-83-164.el5.x86_64.rpm &lt;br /&gt;
| AMD (Sempron 140)&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Enterprise Linux 5.4 / Unbreakable Linux&lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 15&lt;br /&gt;
| 64&lt;br /&gt;
| kvm-83&lt;br /&gt;
| Intel&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Requires sufficient memory(e.g. 1.5G), and vga=std - by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 13&lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 11&lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-87 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Fails &lt;br /&gt;
| Anaconda freezes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 11&lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-87 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 11 BETA&lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-84 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Fails &lt;br /&gt;
| by Alexey.E. Slowness and softlockups.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Fedora 10 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-85 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. Updated by Lennert.B.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 9 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-85 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 8 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-85 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 7 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-75 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 6 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-26 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 5 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-12 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 4 &lt;br /&gt;
| 64 &lt;br /&gt;
|  &lt;br /&gt;
| AMD &lt;br /&gt;
|  64 &lt;br /&gt;
| Works, slightly high idle cpu &lt;br /&gt;
|by  MichaelKarliner &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 3 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-78 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by George Y. Requires noacpi in boot options &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 1&lt;br /&gt;
| 32 &lt;br /&gt;
| qemu-kvm-0.12.3&lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes&lt;br /&gt;
| by Patrick.M. KVM freeze unable to kill PID.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Fedora 1&lt;br /&gt;
| 32 &lt;br /&gt;
| qemu-kvm-0.11.1&lt;br /&gt;
| Intel&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| by Patrick.M.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RHEL6 beta&lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RHEL5&lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-85&lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RHEL4 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-85&lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Frank.Q. updated by Alexey.E.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RHEL3 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-85&lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Frank.Q. updated by Alexey.E.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Red Hat Linux 9 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-51 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Red Hat Linux 8 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-64 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes &lt;br /&gt;
| Fails on init. by Frank.Q. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Red Hat Linux 7.3 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-78 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| -no-kvm is required for installation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Red Hat Linux 7 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-52 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes &lt;br /&gt;
| Fails on init. by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Scientific Linux 5.4.1&lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Trixbox (CentOS) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-12 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CentOS 5.4&lt;br /&gt;
| 32 &lt;br /&gt;
| qemu-kvm-0.12.3&lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes&lt;br /&gt;
| When installing from the netinstall image, hangs during installation of the first packet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Linux Family: Ubuntu/Debian Derivatives ==&lt;br /&gt;
{|border=1&lt;br /&gt;
| &#039;&#039;&#039;Guest&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Guest bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host version&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host cpu&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Comments&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian GNU/Linux 6.0&lt;br /&gt;
| 64&lt;br /&gt;
| kvm-83&lt;br /&gt;
| Intel&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian GNU/Linux 5.0&lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-88&lt;br /&gt;
| Intel, AMD&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| 2009/10/22 by Christian Berendt / [http://www.b1-systems.de B1 Systems]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian GNU/Linux 5.0&lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-83&lt;br /&gt;
| Intel&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ubuntu 10.10&lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ubuntu 10.04 LTS&lt;br /&gt;
| 32, 64&lt;br /&gt;
| kvm-84&lt;br /&gt;
| Intel, AMD&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| 2010/05/15 by KeithW&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ubuntu 9.04 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-84 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| It&#039;s actually Xubuntu but should be the same both block and net virtio devices working too &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ubuntu 8.10 &lt;br /&gt;
| 32&lt;br /&gt;
| kvm-85 &lt;br /&gt;
| Intel, AMD&lt;br /&gt;
| 32, 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Peter.v.V.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ubuntu 8.04 LTS &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-64 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 32, 64 &lt;br /&gt;
|  Works &lt;br /&gt;
| by Alexey.E. (some issues with virtio) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ubuntu 7.10 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-62 &lt;br /&gt;
| Intel,AMD &lt;br /&gt;
| 32, 64 &lt;br /&gt;
|  Crashes, Workaround exists &lt;br /&gt;
| Install using Qemu, remove GFX boot. by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ubuntu 7.10 Server &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-60 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| No framebuffer (black screen at first). Hit enter to start installer. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ubuntu 7.10 Server &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-60/61 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Doesn&#039;t work &lt;br /&gt;
| Installer crashes (by Ryota Ozaki) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ubuntu 7.04 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-62 &lt;br /&gt;
| Intel,AMD &lt;br /&gt;
| 32, 64 &lt;br /&gt;
|  Crashes, Workaround exists &lt;br /&gt;
| Install using Qemu, remove GFX boot. by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ubuntu 6.06 LTS Server &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-20 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| use -no-acpi &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian Lenny 5.0&lt;br /&gt;
| 64 &lt;br /&gt;
| qemu-kvm-0.12.3&lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Patrick. M.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian Lenny 5.0&lt;br /&gt;
| 64 &lt;br /&gt;
| qemu-kvm-0.11.1&lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Patrick. M.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian Lenny 5.0&lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-72/77  &lt;br /&gt;
| Intel  &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| Buggy virtio implementation (netinst), crc errors / segfaults after instalation.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian Etch 4.0 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian Etch 4.0 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-64 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64, 32 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian Etch 4.0 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-64 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| FAILS, workaround exists &lt;br /&gt;
| by Alexey.E. (manually choose i586 kernel, do not use default &amp;quot;k7&amp;quot; kernel) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian Sarge 3.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-12 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Debian Sarge 3.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-12 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Mostly works &lt;br /&gt;
| Install hangs, will install via -no-kvm. Runs fine after &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Xandros 3 OCE &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-29 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| KNOPPIX 5.1.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-18 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| use nmi_watchdog=0 or nolapic kernel parameter to boot &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Knoppix 5.2 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-18 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other Linux Distros ==&lt;br /&gt;
{|border=1&lt;br /&gt;
| &#039;&#039;&#039;Guest&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Guest bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host version&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host cpu&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Comments&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Android 2.2&lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| deactivate suspend-mode(Screen timeout), by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SUSE Linux Enterprise Server 11&lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-88&lt;br /&gt;
| Intel, AMD&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| 2009/10/22 by Christian Berendt / [http://www.b1-systems.de B1 Systems]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SUSE Linux Enterprise Server 10&lt;br /&gt;
| 32&lt;br /&gt;
| kvm-88&lt;br /&gt;
| Intel, AMD&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| 2009/10/22 by Christian Berendt / [http://www.b1-systems.de B1 Systems]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| openSUSE 11.3&lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| openSUSE 11.2&lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| openSUSE 11.1&lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-88&lt;br /&gt;
| Intel, AMD&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| 2009/10/22 by Christian Berendt / [http://www.b1-systems.de B1 Systems]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| openSUSE 11.1&lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-85 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| openSUSE 11.0 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| kvm-85 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| openSUSE 10.3 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-57 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| openSUSE 10.3 &lt;br /&gt;
| 32/64 &lt;br /&gt;
| kvm-64 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64, 32 &lt;br /&gt;
| Crashes, Workaround exists &lt;br /&gt;
| Start kvm with -no-kvm for installation. Remove graphical GRUB. by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| openSUSE 10.2 &lt;br /&gt;
| 32/64 &lt;br /&gt;
| kvm-28/kvm-51 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes, Workaround exists &lt;br /&gt;
| Start kvm with -no-kvm for installation. Remove graphical GRUB. by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SUSE Linux 10.0 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-64 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64, 32 &lt;br /&gt;
| Crashes, Workaround exists &lt;br /&gt;
| Start kvm with -no-kvm for installation. Remove graphical GRUB. by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SUSE Linux 9.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| Intel/AMD &lt;br /&gt;
| 64, 32 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Slackware 12 .2&lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-36 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Slackware 12 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-36 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Slackware 11 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-15 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
|  using test26.s kernel &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Qemu-Puppy 2.01-3 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-17/18 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Qemu-Puppy 2.13-1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-17/18 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SystemRescueCD 0.3.4 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-18 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| Works fine, except for initial X-setting &amp;quot;cirrus&amp;quot; - changed to &amp;quot;vesa&amp;quot;, then works. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Gentoo 2006.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-24 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Gentoo 2007.0 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-24 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Gentoo 20100311&lt;br /&gt;
| 64&lt;br /&gt;
| qemu-kvm-0.11.1&lt;br /&gt;
| Intel&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| using hardened kernel 2.6.32-r3&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Arch Linux (Duke) &lt;br /&gt;
|32 &lt;br /&gt;
| kvm-17 &lt;br /&gt;
|AMD &lt;br /&gt;
|64 &lt;br /&gt;
|Works &lt;br /&gt;
|Host: 2.6.21-ARCH, guest: 2.6.22-rc5-ARCH says &amp;quot;booting paravirtualized kernel on bare hardware&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Mandrake Linux 9.2 &lt;br /&gt;
|32 &lt;br /&gt;
| kvm-51 &lt;br /&gt;
|Intel &lt;br /&gt;
|64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Mandriva 2009 &lt;br /&gt;
| 32/64 &lt;br /&gt;
| kvm-75 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes, Workaround exists &lt;br /&gt;
| start kvm with -no-kvm for installation. Remove graphical GRUB. by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Mandriva 2008.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-64 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64, 32 &lt;br /&gt;
| Crashes, Workaround exists &lt;br /&gt;
| start kvm with -no-kvm for installation. Remove graphical GRUB. by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Mandriva 2008 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-51 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes, Workaround exists &lt;br /&gt;
| start kvm with -no-kvm for installation. Remove graphical GRUB. by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Mandriva 2007 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-51 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes, Workaround exists &lt;br /&gt;
| start kvm with -no-kvm for installation. Remove graphical GRUB. by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Crux Linux 2.5 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-82 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| Boots Automatically at &#039;Guest Install&#039; stage. Installs without issue. by Chris P &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Mikrotik 5.0rc3 &lt;br /&gt;
| 32 &lt;br /&gt;
| qemu-kvm-0.13.0 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| using virtio nic + vhost_net, watchdog does not work, does not support virtio block device&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UNIX Family: BSD ==&lt;br /&gt;
{|border=1&lt;br /&gt;
|&#039;&#039;&#039;Guest&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Guest bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host version&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host cpu&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Comments&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 5.0&lt;br /&gt;
| 64&lt;br /&gt;
| qemu-kvm-0.15.0, Linux 2.6.37.6 (Slackware 13.37)&lt;br /&gt;
| Intel Core2Duo E8400&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| SMP works, no need to disable mpbios anymore. Must use &#039;&#039;&#039;if=ide&#039;&#039;&#039; as the scsi interface will result in sd0(siop0) errors during install; recommend using the e1000 network driver as well. More information can be found [http://tenforward.libpcap.net:8080/2011/10/OpenBSD-5.0-supports-SMP-under-KVM here].&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.9&lt;br /&gt;
| 64&lt;br /&gt;
| qemu-kvm-0.14, linux 2.6.38.4 (Fedora 15 Beta)&lt;br /&gt;
| AMD Phenom(tm) 9650 Quad-Core &lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Disable mpbios as with 4.5&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.8&lt;br /&gt;
| 32&lt;br /&gt;
| kvm-83, linux 2.6.18 (CentOS 5.5)&lt;br /&gt;
| Intel E5700&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Disable mpbios as with 4.5&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.7&lt;br /&gt;
| 64 &lt;br /&gt;
| qemu-kvm-0.12.5&lt;br /&gt;
| Intel&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Need e1000 driver. (scsi driver does not work). Ide works out of the box. disabling the mpbios is not needed. Done with Linux 2.6.34.2 host kernel.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.6&lt;br /&gt;
| 32, 64 &lt;br /&gt;
| qemu-kvm-0.11.0-0ubuntu6.3&lt;br /&gt;
| Intel&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Need e1000 driver and disable mpbios (same as other OpenBSD &amp;gt;= 4.5 entries)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.6&lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-84-7.6 &lt;br /&gt;
| AMD&lt;br /&gt;
| 32 &lt;br /&gt;
| Works&lt;br /&gt;
| Use the e1000 driver [-net nic,model=e1000]. Does not find the network after the installation (during install is fine)  but disabling mpbios as suggested in 4.5 workaround fixes it.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.5 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-85 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Crashes &lt;br /&gt;
| Use the e1000 driver [-net nic,model=e1000] to avoid lockups and slow network speeds.  Crashes after &amp;quot;setting tty flags&amp;quot; - Jaco van der Schyff&lt;br /&gt;
4.0 would hang on me at the same place if i booted /bsd.mp but not if i boot /bsd (uniprocessor kernel) - Buck &amp;lt;br/&amp;gt;&lt;br /&gt;
4.5 can be made to boot by disabling mpbios as described [http://scie.nti.st/2009/10/4/running-openbsd-4-5-in-kvm-on-ubuntu-linux-9-04 here]; this is a workaround though, not a fix - Maxim&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.5 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-84 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| Use e1000 drivers.  Install from CD works, but then you must do the following at the next boot prompt: &amp;quot;bsd -c&amp;quot;, &amp;quot;disable mpbios&amp;quot;, then &amp;quot;quit&amp;quot;&lt;br /&gt;
Make this permanent by using &amp;quot;config -ef /bsd&amp;quot; as root, once everything has booted. -- Garry Dolley&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.4 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-78 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.2 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-58 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-72 &lt;br /&gt;
| Intel, AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.0 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-12 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenBSD 4.0 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-16 + CVS &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FreeBSD 6.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-17/18 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FreeBSD 6.2 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-12 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FreeBSD 6.2 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-16 + CVS &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FreeBSD 6.3 &lt;br /&gt;
| 32 &lt;br /&gt;
| Fedora 8 - kvm-37-7.fc8 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|FreeBSD 6.3 &lt;br /&gt;
|32 &lt;br /&gt;
|Debian Lenny, kvm-60 &lt;br /&gt;
|AMD &lt;br /&gt;
|64 &lt;br /&gt;
|Works &lt;br /&gt;
|No issues in several weeks of testing. Freddie &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|FreeBSD 6.3 &lt;br /&gt;
|64 &lt;br /&gt;
|Debian Lenny, kvm-60 &lt;br /&gt;
|AMD &lt;br /&gt;
|64 &lt;br /&gt;
|Works &lt;br /&gt;
|No issues in several weeks of testing.  Freddie &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|FreeBSD 7.0 &lt;br /&gt;
|32 &lt;br /&gt;
|Debian Lenny, kvm-60 &lt;br /&gt;
|AMD &lt;br /&gt;
|64 &lt;br /&gt;
|Works &lt;br /&gt;
|No issues in several weeks of testing.  Tested with 1 and 2 virtual CPUs.  Freddie &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|FreeBSD 7.0 &lt;br /&gt;
|64 &lt;br /&gt;
|Debian Lenny, kvm-60 &lt;br /&gt;
|AMD &lt;br /&gt;
|64 &lt;br /&gt;
|Works &lt;br /&gt;
|No issues in several weeks of testing.  Tested with 1 and 2 virtual CPUs.  Freddie &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|FreeBSD 7.0 &lt;br /&gt;
|32 &lt;br /&gt;
|OpenSUSE 10.3 kvm-63 &lt;br /&gt;
|AMD &lt;br /&gt;
|64 &lt;br /&gt;
|works &lt;br /&gt;
| disk i/o issues? &amp;quot;ad0: TIMEOUT - WRITE_DMA retrying (1 retry left) LBA=XXXXXXX&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|FreeBSD 6.0, FreeBSD 6.2, FreeBSD 7.2 &lt;br /&gt;
|32, 64&lt;br /&gt;
|debian squeeze, kvm-0.12.5, libvirt&lt;br /&gt;
|Intel Xeon &lt;br /&gt;
|64 &lt;br /&gt;
|works &lt;br /&gt;
|freeze with &amp;quot;ad0: TIMEOUT - WRITE_DMA retrying (1 retry left) LBA=XXXXXXX&amp;quot;. fix with &#039;hw.ata.ata_dma=0&#039; in /boot/loader.conf&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| FreeBSD 7.0 &lt;br /&gt;
| 64 &lt;br /&gt;
| OpenSUSE 10.3 kvm-63 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| crashes after boot loader &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FreeBSD 7.1 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-84 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works&lt;br /&gt;
| sdl graphics mess up if using kvm, setup with -nokvm then use ssh or -nographics and serial console &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|FreeBSD 7.2&lt;br /&gt;
|64&lt;br /&gt;
|kvm-86-3&lt;br /&gt;
|Intel&lt;br /&gt;
|64&lt;br /&gt;
|Works, need to install from the DVD or CD image&lt;br /&gt;
|Damon Chesser, Jadase Staff&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|FreeBSD 8.0&lt;br /&gt;
|32, 64&lt;br /&gt;
|qemu-kvm-0.11.0-0ubuntu6.3&lt;br /&gt;
|Intel&lt;br /&gt;
|64&lt;br /&gt;
|Works&lt;br /&gt;
|installed from full DVD, used NIC model=ne2k_pci &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| GNU/kFreeBSD &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-84 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| kvm module must be loaded with oos_shadow=0 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|GNU/kFreeBSD &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-15 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| GNU/kFreeBSD &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-16 + CVS &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NetBSD 3.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-17/18 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NetBSD 3.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-21 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NetBSD 4.0 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-60 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| avoid hangup on boot with --no-acpi and network card timeout by trying out a different card, e.g. -net nic,model=ne2k_pci &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NetBSD 5.0 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-88 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes/hangs&lt;br /&gt;
| Install CD image will crash or hang, depending on if ACPI is enabled or not. NetBSD 4.0 workarounds ineffective.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NetBSD 5.0.2 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm from 2.6.32-2-amd64 debian kernel on debian sid &lt;br /&gt;
| both Intel and Amd&lt;br /&gt;
| 64 &lt;br /&gt;
| Works&lt;br /&gt;
| avoid slow down/ hangs with --no-acpi and network timeout by using -net nic,model=ne2k_pci, disable both SMP and ACPI in /boot.cfg inside guest&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MirBSD 2009/10&lt;br /&gt;
| 32&lt;br /&gt;
| kvm_1:84+dfsg-0ubuntu12.4~hardy1&lt;br /&gt;
| Intel&lt;br /&gt;
| Works&lt;br /&gt;
| Use of nic,model=e1000 is strongly recommended, ne2k variants work too, emulated Realtek are crappier than metal ones and do not work.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| PC-BSD 1.4 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-56 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| By Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DragonflyBSD 1.10.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-58 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| avoid kvm-[64-67] which require -no-kvm-pit to work; use -net nic,model=e1000 to avoid network timeouts &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DragonflyBSD 2.2.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-85 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| not tried X&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UNIX Family: Solaris/OpenSolaris ==&lt;br /&gt;
{|border=1&lt;br /&gt;
| &#039;&#039;&#039;Guest&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Guest bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host version&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host cpu&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Comments&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Solaris 10 U1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-12 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| later releases will detect the CPU is 64 bit capable and try to default to run a 64 bit kernel and fail, for those you have to override Solaris autodetection by adding &amp;quot;kernel/unix&amp;quot; to the kernel multiboot entry in GRUB &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Solaris 10 U3 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-58 + patch &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| needs additional patch to kvm for [http://tapir.sajinet.com.pe/gentoo/portage/app-emulation/kvm/files/kvm-57-kernel-longmode.patch kvm kernel longmode] &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Nexenta Core 1.0 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-61 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| needs additional patch to kvm for [http://tapir.sajinet.com.pe/gentoo/portage/app-emulation/kvm/files/kvm-57-kernel-longmode.patch kvm kernel longmode].  Use -m 512 -net nic,model=e1000 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Nexenta Core 2.0 b104 rc3&lt;br /&gt;
| 32 / 64&lt;br /&gt;
| qemu-kvm-0.11.0&lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| Might need additional patch to kvm for [http://tapir.sajinet.com.pe/gentoo/portage/app-emulation/kvm/files/kvm-57-kernel-longmode.patch kvm kernel longmode]. My qemu-kvm was already patched. Had to switch of &#039;acpi&#039;, &#039;apic&#039; and &#039;pae&#039; features in guest configuration. Guest machine-type set to pc-0.10. Use -m 512 -net nic,model=e1000.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenSolaris 2008.05 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-69 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| Use -m 512 -net nic,model=e1000 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Milax 0.3.2 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-62 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| Use the kvm option -net nic,model=rtl8139 and add atapi-cd-dma-enabled=0,atapi-other-dma-enabled=0 to the kernel line in the grub menu for older releases of Milax http://www.milax.org/ in version 0.3.2 choose the Qemu grub menu entry ; tested on Ubuntu 8.04.1 by BerndSchemmer &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Belenix 0.7.1 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-62 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| Note: older releases of Belenix only work in text mode; tested on Ubuntu 8.04.1 by BerndSchemmer &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Solaris 10 U6 &lt;br /&gt;
| 32 &amp;amp; 64&lt;br /&gt;
| kvm-62 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Mostly Works (see note)&lt;br /&gt;
| Note: the grub menu entry for Solaris 10 created by the installer is wrong, to make it work add kernel/unix to the line beginning with kernel ; tested on Ubuntu 8.04.1 by BerndSchemmer &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenSolaris 2008.11 &lt;br /&gt;
| 64 &lt;br /&gt;
| kvm-62 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
|Works&lt;br /&gt;
| tested on Ubuntu 8.04.1 by BerndSchemmer &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OpenSolaris 2009.06 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| qemu-kvm-0.11.0-0ubuntu6.3&lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
|Works&lt;br /&gt;
| Used &amp;quot;-vga std&amp;quot; but don&#039;t recall why.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Solaris 11 Express 2010.11 &lt;br /&gt;
| 32, 64 &lt;br /&gt;
| qemu-kvm-0.12.1.2-2.113.el6_0.8&lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
|Works but without USB support&lt;br /&gt;
| During boot the system prints the following warning: &amp;quot;No SOF interrupts have  been  received.  This  USB  EHCI controller is unusable.&amp;quot;  As a result, no keyboard and mouse functionality from the console.  Must install with automatic networking enabled, and login via the network to use it.  Also warns at boot &amp;quot;rtls0: Failure resetting PHY&amp;quot; but networking seems to still work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other UNIX systems ==&lt;br /&gt;
{| border=1&lt;br /&gt;
|&#039;&#039;&#039;Guest&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Guest bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host version&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host cpu&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Comments&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Darwin 8.0.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-29 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MINIX 3.1.2a &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-71 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MINIX 3.1.6&lt;br /&gt;
| 32 &lt;br /&gt;
| qemu-0.12.3&lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes &lt;br /&gt;
| Only boots without -enable-kvm&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| GNU hurd live CD (20051117) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-28 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| Seems to have networking problems. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| GNU/Hurd (Debian K14) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-33 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| [http://kvm.qumranet.com/kvmwiki/Guest_Support_Status?action=AttachFile&amp;amp;do=get&amp;amp;target=hurd-k14.png screenshot] &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| GNU/Hurd (Debian K16) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-69 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| avoid kvm-[64-67] which require -no-kvm-pit to work &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| QNX 4.25 &lt;br /&gt;
| 32 &lt;br /&gt;
| qemu-kvm-0.12.3, kernel 2.6.32-24&lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| Use &amp;quot;-net nic,model=ne2k_pci&amp;quot; for network.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| QNX 6.3.2&lt;br /&gt;
| 32&lt;br /&gt;
| qemu-kvm 88, host kernel: 2.6.30&lt;br /&gt;
| Intel&lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Use &amp;quot;-net nic,model=ne2k_pci&amp;quot; for network. See also [http://community.qnx.com/sf/wiki/do/viewPage/projects.qemu/wiki/NeutrinoAsGuestInQEMU;jsessionid=82CAC3EC7E4C62A6DC51A1E021618862]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| QNX 6.4.0 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| by Arno-Can Uestuensoez / [http://www.UnifiedSessionsManager.org UnifiedSessionsManager]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| QNX 6.4.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| qemu-kvm-0.11.0, 2.6.31.5&lt;br /&gt;
| Intel&lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
{|border=1&lt;br /&gt;
| &#039;&#039;&#039;Guest&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Guest bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host version&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host cpu&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Host bitness&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| &#039;&#039;&#039;Comments&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Haiku OS &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-12 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Amiga Research OS (AROS) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-12 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| LiveCD tested.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Amiga Research OS (AROS) &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-58 &lt;br /&gt;
| Intel &lt;br /&gt;
| 32 &lt;br /&gt;
| Works &lt;br /&gt;
| LiveCD tested. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ReactOS 0.3.0 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-14 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FreeDOS 1.0 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-71 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
|  Works &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MS DOS 6.22 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-88 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| Works with &amp;quot;-cpu qemu32&amp;quot;. Do not load emm386.exe inside config.sys [http://twitpic.com/dce6g screenshot]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MS DOS 5.0&lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-62&lt;br /&gt;
| Intel &lt;br /&gt;
| 64&lt;br /&gt;
| Works&lt;br /&gt;
| Installs and boots.  Tested by Alan J.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| Syllable 0.61 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-29 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Visopsys 0.62 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-29 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Crashes &lt;br /&gt;
| by Alexey.E. &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Plan 9 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-68 &lt;br /&gt;
| Intel &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| needs -no-kvm-irqchip &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FreeDOS 7 + Novell Netware 4.1 &lt;br /&gt;
| 32 &lt;br /&gt;
| kvm-83 &lt;br /&gt;
| AMD &lt;br /&gt;
| 64 &lt;br /&gt;
| Works &lt;br /&gt;
| tested by Ruediger G. Biernat / [http://flickr.com/photos/rgbiernat/3261075882/ screenshot]&lt;br /&gt;
| tested by Anna.L Karl /  &lt;br /&gt;
[http://www.vittleende.se/ Tandblekning] &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Main_Page&amp;diff=4390</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Main_Page&amp;diff=4390"/>
		<updated>2011-11-07T21:49:32Z</updated>

		<summary type="html">&lt;p&gt;Mjt: Reverted edits by AMunoz (Talk); changed back to last version by Mianosm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Kernel Based Virtual Machine ==&lt;br /&gt;
&lt;br /&gt;
KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. KVM also requires a modified QEMU although work is underway to get the required changes upstream. &lt;br /&gt;
&lt;br /&gt;
Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.&lt;br /&gt;
&lt;br /&gt;
The kernel component of KVM is included in mainline Linux, as of 2.6.20.&lt;br /&gt;
&lt;br /&gt;
KVM is open source software.&lt;br /&gt;
&lt;br /&gt;
== Common Pages ==&lt;br /&gt;
{| style=&amp;quot;border:none&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:50%;border:none;&amp;quot;|&lt;br /&gt;
* [[KVM Forum]]&lt;br /&gt;
** [[KVM Forum 2011]]&lt;br /&gt;
** [[KVM Forum 2010]]&lt;br /&gt;
* [[LinuxPlumbers2010|Linux Plumbers Conference 2010]]&lt;br /&gt;
* [[TODO]]&lt;br /&gt;
* [[KVM-Autotest]]&lt;br /&gt;
* [[KVM Features]]&lt;br /&gt;
|style=&amp;quot;width:50%;border:none;&amp;quot;|&lt;br /&gt;
* [[Management Tools]]&lt;br /&gt;
* [[Documents]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Common External Pages ==&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;border:none&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:50%;border:none;&amp;quot;|&lt;br /&gt;
* [http://www.qemu.org/ QEMU]&lt;br /&gt;
* [http://wiki.xensource.com/xenwiki/HVM_Compatible_Processors Xen&#039;s HVM Compatible Processors List]&lt;br /&gt;
|style=&amp;quot;width:50%;border:none;&amp;quot;|&lt;br /&gt;
* [http://qemu-buch.de Book &amp;quot;qemu-kvm &amp;amp; libvirt&amp;quot;]&lt;br /&gt;
* [http://qemu-buch.de/cgi-bin/moin.cgi/ QEMU Wiki]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Virtio&amp;diff=3736</id>
		<title>Virtio</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Virtio&amp;diff=3736"/>
		<updated>2011-08-13T09:37:07Z</updated>

		<summary type="html">&lt;p&gt;Mjt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Virtio=&lt;br /&gt;
&lt;br /&gt;
== Paravirtualized drivers for kvm/Linux ==&lt;br /&gt;
* Virtio was chosen to be the main platform for IO virtualization in KVM&lt;br /&gt;
* The idea behind it is to have a common framework for hypervisors for IO virtualization&lt;br /&gt;
* More information (although not uptodate) can be found [[Media:KvmForum2007$kvm_pv_drv.pdf|here]]&lt;br /&gt;
* At the moment network/block/balloon devices are suported for kvm&lt;br /&gt;
* The host implementation is in userspace - qemu, so no driver is needed in the host.&lt;br /&gt;
&lt;br /&gt;
== How to use Virtio ==&lt;br /&gt;
* Get kvm version &amp;gt;= 60&lt;br /&gt;
* Get Linux kernel with virtio drivers for the guest&lt;br /&gt;
** Get Kernel &amp;gt;= 2.6.25 and activate (modules should also work, but take care of initramdisk)&lt;br /&gt;
*** CONFIG_VIRTIO_PCI=y (Virtualization -&amp;gt; PCI driver for virtio devices)&lt;br /&gt;
*** CONFIG_VIRTIO_BALLOON=y (Virtualization -&amp;gt; Virtio balloon driver)&lt;br /&gt;
*** CONFIG_VIRTIO_BLK=y (Device Drivers -&amp;gt; Block -&amp;gt;  Virtio block driver)&lt;br /&gt;
*** CONFIG_VIRTIO_NET=y  (Device Drivers -&amp;gt; Network device support -&amp;gt; Virtio network driver)&lt;br /&gt;
*** CONFIG_VIRTIO=y  (automatically selected)&lt;br /&gt;
*** CONFIG_VIRTIO_RING=y (automatically selected)&lt;br /&gt;
*** you can safely disable SATA/SCSI and also all other nic drivers if you only use VIRTIO (disk/nic)&lt;br /&gt;
* As an alternative one can use a standard guest kernel for the guest &amp;gt; 2.6.18 and make use sync backward compatibility option&lt;br /&gt;
** Backport and instructions can be found in [http://www.kernel.org/pub/scm/virt/kvm/kvm-guest-drivers-linux.git kvm-guest-drivers-linux.git]&lt;br /&gt;
* Use virtio-net-pci device for the network devices (or model=virtio for old -net..-net syntax) and if=virtio for disk&lt;br /&gt;
** Example&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
x86_64-softmmu/qemu-system-x86_64 -boot c -drive file=/images/xpbase.qcow2,if=virtio -m 384 -netdev type=tap,script=/etc/kvm/qemu-ifup,id=net0 -device virtio-net-pci,netdev=net0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* -hd[ab] for disk won&#039;t work, use -drive&lt;br /&gt;
* Disk will show up as /dev/vd[a-z][1-9], if you migrate you need to change &amp;quot;root=&amp;quot; in Lilo/GRUB config&lt;br /&gt;
* At the moment the kernel modules are automatically loaded in the guest but the interface should be started manually (dhclient/ifconfig)&lt;br /&gt;
* Currently performance is much better when using a host kernel configured with CONFIG_HIGH_RES_TIMERS. Another option is use HPET/RTC and -clock= qemu option.&lt;br /&gt;
* Expected performance&lt;br /&gt;
** Performance varies from host to host, kernel to kernel&lt;br /&gt;
** On my laptop I measured 1.1Gbps rx throughput using 2.6.23, 850Mbps tx.&lt;br /&gt;
** Ping latency is 300-500 usec&lt;br /&gt;
* Enjoy, more to come :)&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Virtio&amp;diff=3735</id>
		<title>Virtio</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Virtio&amp;diff=3735"/>
		<updated>2011-08-13T09:34:26Z</updated>

		<summary type="html">&lt;p&gt;Mjt: changed old -net..-net syntax to -netdev..-device&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Virtio=&lt;br /&gt;
&lt;br /&gt;
== Paravirtualized drivers for kvm/Linux ==&lt;br /&gt;
* Virtio was chosen to be the main platform for IO virtualization in KVM&lt;br /&gt;
* The idea behind it is to have a common framework for hypervisors for IO virtualization&lt;br /&gt;
* More information (although not uptodate) can be found [[Media:KvmForum2007$kvm_pv_drv.pdf|here]]&lt;br /&gt;
* At the moment network/block/balloon devices are suported for kvm&lt;br /&gt;
* The host implementation is in userspace - qemu, so no driver is needed in the host.&lt;br /&gt;
&lt;br /&gt;
== How to use Virtio ==&lt;br /&gt;
* Get kvm version &amp;gt;= 60&lt;br /&gt;
* Get Linux kernel with virtio drivers for the guest&lt;br /&gt;
** Get Kernel &amp;gt;= 2.6.25 and activate (modules should also work, but take care of initramdisk)&lt;br /&gt;
*** CONFIG_VIRTIO_PCI=y (Virtualization -&amp;gt; PCI driver for virtio devices)&lt;br /&gt;
*** CONFIG_VIRTIO_BALLOON=y (Virtualization -&amp;gt; Virtio balloon driver)&lt;br /&gt;
*** CONFIG_VIRTIO_BLK=y (Device Drivers -&amp;gt; Block -&amp;gt;  Virtio block driver)&lt;br /&gt;
*** CONFIG_VIRTIO_NET=y  (Device Drivers -&amp;gt; Network device support -&amp;gt; Virtio network driver)&lt;br /&gt;
*** CONFIG_VIRTIO=y  (automatically selected)&lt;br /&gt;
*** CONFIG_VIRTIO_RING=y (automatically selected)&lt;br /&gt;
*** you can safely disable SATA/SCSI and also all other nic drivers if you only use VIRTIO (disk/nic)&lt;br /&gt;
* As an alternative one can use a standard guest kernel for the guest &amp;gt; 2.6.18 and make use sync backward compatibility option&lt;br /&gt;
** Backport and instructions can be found in [http://www.kernel.org/pub/scm/virt/kvm/kvm-guest-drivers-linux.git kvm-guest-drivers-linux.git]&lt;br /&gt;
* Use model=virtio for the network devices and if=virtio for disk&lt;br /&gt;
** Example&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
x86_64-softmmu/qemu-system-x86_64 -boot c -drive file=/images/xpbase.qcow2,if=virtio -m 384 -netdev type=tap,script=/etc/kvm/qemu-ifup,id=net0 -device virtio-net-pci,netdev=net0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* -hd[ab] for disk won&#039;t work, use -drive&lt;br /&gt;
* Disk will show up as /dev/vd[a-z][1-9], if you migrate you need to change &amp;quot;root=&amp;quot; in Lilo/GRUB config&lt;br /&gt;
* At the moment the kernel modules are automatically loaded in the guest but the interface should be started manually (dhclient/ifconfig)&lt;br /&gt;
* Currently performance is much better when using a host kernel configured with CONFIG_HIGH_RES_TIMERS. Another option is use HPET/RTC and -clock= qemu option.&lt;br /&gt;
* Expected performance&lt;br /&gt;
** Performance varies from host to host, kernel to kernel&lt;br /&gt;
** On my laptop I measured 1.1Gbps rx throughput using 2.6.23, 850Mbps tx.&lt;br /&gt;
** Ping latency is 300-500 usec&lt;br /&gt;
* Enjoy, more to come :)&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Lists,_IRC&amp;diff=3633</id>
		<title>Lists, IRC</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Lists,_IRC&amp;diff=3633"/>
		<updated>2011-06-15T17:28:54Z</updated>

		<summary type="html">&lt;p&gt;Mjt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lists, IRC=&lt;br /&gt;
&lt;br /&gt;
== Mailing Lists ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! list&lt;br /&gt;
! topics&lt;br /&gt;
! subscribe&lt;br /&gt;
! archives&lt;br /&gt;
|-&lt;br /&gt;
| kvm@vger.kernel.org&lt;br /&gt;
| general and x86&lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm subscribe]&lt;br /&gt;
| [http://news.gmane.org/gmane.comp.emulators.kvm.devel Gmane], [http://www.spinics.net/lists/kvm spinics], [http://marc.info/?l=kvm MARC]&lt;br /&gt;
|-&lt;br /&gt;
| kvm-commits@vger.kernel.org &lt;br /&gt;
| kernel commit logs &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-commits subscribe] &lt;br /&gt;
| [http://news.gmane.org/gmane.comp.emulators.kvm.scm Gmane] &lt;br /&gt;
|-&lt;br /&gt;
| kvm-ia64@vger.kernel.org &lt;br /&gt;
| ia64 &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-ia64 subscribe] &lt;br /&gt;
| [http://www.spinics.net/lists/kvm-ia64/ spinics]&lt;br /&gt;
|-&lt;br /&gt;
| kvm-ppc@vger.kernel.org &lt;br /&gt;
| PowerPC &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-ppc subscribe] &lt;br /&gt;
| [http://marc.info/?l=kvm-ppc-devel MARC] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
While the lists are used mainly for development, user queries are welcome. No need to subscribe for a one-off question, just send an email. You may also want to check the various qemu resources on the web, as kvm shares the qemu user interface and networking.&lt;br /&gt;
&lt;br /&gt;
Please observe the usual mailing list etiquette: don&#039;t top-post, and trim excess quotations from the mail you are replying to.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t post to individual kvm developers directly.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
Join us on &#039;&#039;&#039;#kvm&#039;&#039;&#039; at [http://freenode.net Freenode]. Don&#039;t report serious bugs on IRC; they&#039;re liable to get lost. Use the list or the [[Bugs|bug tracker]].&lt;br /&gt;
&lt;br /&gt;
== Blogs and related sites ==&lt;br /&gt;
Haydn Solomon&#039;s [http://www.linux-kvm.com linux-kvm] site, featuring forums and a blog&lt;br /&gt;
&lt;br /&gt;
Avi Kivity&#039;s [http://avikivity.blogspot.com blog] &lt;br /&gt;
&lt;br /&gt;
Pete Anderssons&#039;s [http://www.billigt-flyg.org blog] &lt;br /&gt;
&lt;br /&gt;
Anthony Liguori&#039;s [http://blog.codemonkey.ws blog] &lt;br /&gt;
&lt;br /&gt;
[http://virt.kernelnewbies.org/ Linux virtualization] wiki&lt;br /&gt;
&lt;br /&gt;
== Forums ==&lt;br /&gt;
&lt;br /&gt;
[http://forums.meulie.net/viewforum.php?f=43 KVM forum]&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Lists,_IRC&amp;diff=3632</id>
		<title>Lists, IRC</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Lists,_IRC&amp;diff=3632"/>
		<updated>2011-06-15T17:24:58Z</updated>

		<summary type="html">&lt;p&gt;Mjt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lists, IRC=&lt;br /&gt;
&lt;br /&gt;
== Mailing Lists ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! list&lt;br /&gt;
! topics&lt;br /&gt;
! subscribe&lt;br /&gt;
! archives&lt;br /&gt;
|-&lt;br /&gt;
| kvm@vger.kernel.org&lt;br /&gt;
| general and x86&lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm subscribe]&lt;br /&gt;
| [http://news.gmane.org/gmane.comp.emulators.kvm.devel Gmane], [http://www.spinics.net/lists/kvm spinics], [http://marc.info/?l=kvm MARC]&lt;br /&gt;
|-&lt;br /&gt;
| kvm-commits@vger.kernel.org &lt;br /&gt;
| kernel commit logs &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-commits subscribe] &lt;br /&gt;
| [http://news.gmane.org/gmane.comp.emulators.kvm.scm Gmane] &lt;br /&gt;
|-&lt;br /&gt;
| kvm-ia64@vger.kernel.org &lt;br /&gt;
| ia64 &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-ia64 subscribe] &lt;br /&gt;
| [http://www.spinics.net/lists/kvm-ia64/ spinics]&lt;br /&gt;
|-&lt;br /&gt;
| kvm-ppc@vger.kernel.org &lt;br /&gt;
| PowerPC &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-ppc subscribe] &lt;br /&gt;
| [http://marc.info/?l=kvm-ppc-devel MARC] &lt;br /&gt;
  &lt;br /&gt;
While the lists are used mainly for development, user queries are welcome. No need to subscribe for a one-off question, just send an email. You may also want to check the various qemu resources on the web, as kvm shares the qemu user interface and networking.&lt;br /&gt;
&lt;br /&gt;
Please observe the usual mailing list etiquette: don&#039;t top-post, and trim excess quotations from the mail you are replying to.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t post to individual kvm developers directly.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
Join us on &#039;&#039;&#039;#kvm&#039;&#039;&#039; at [http://freenode.net Freenode]. Don&#039;t report serious bugs on IRC; they&#039;re liable to get lost. Use the list or the [[Bugs|bug tracker]].&lt;br /&gt;
&lt;br /&gt;
== Blogs and related sites ==&lt;br /&gt;
Haydn Solomon&#039;s [http://www.linux-kvm.com linux-kvm] site, featuring forums and a blog&lt;br /&gt;
&lt;br /&gt;
Avi Kivity&#039;s [http://avikivity.blogspot.com blog] &lt;br /&gt;
&lt;br /&gt;
Pete Anderssons&#039;s [http://www.billigt-flyg.org blog] &lt;br /&gt;
&lt;br /&gt;
Anthony Liguori&#039;s [http://blog.codemonkey.ws blog] &lt;br /&gt;
&lt;br /&gt;
[http://virt.kernelnewbies.org/ Linux virtualization] wiki&lt;br /&gt;
&lt;br /&gt;
== Forums ==&lt;br /&gt;
&lt;br /&gt;
[http://forums.meulie.net/viewforum.php?f=43 KVM forum]&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Tracing&amp;diff=3517</id>
		<title>Tracing</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Tracing&amp;diff=3517"/>
		<updated>2011-03-09T15:58:01Z</updated>

		<summary type="html">&lt;p&gt;Mjt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tracing is done by means of kernel tracepoints, the ftrace infrastructure, and trace-cmd.&lt;br /&gt;
&lt;br /&gt;
= Installing trace-cmd =&lt;br /&gt;
&lt;br /&gt;
# Install the udis86 and udis86-devel packages&lt;br /&gt;
# download trace-cmd:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git trace-cmd&lt;br /&gt;
 $ cd trace-cmd&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# build and install:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 $ make &amp;amp;&amp;amp; sudo make install&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tracing =&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 # trace-cmd record -b 20000 -e kvm&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
(trace-cmd will wait)&lt;br /&gt;
&lt;br /&gt;
run your workload, then stop trace-cmd with ctrl-C.  trace-cmd will write a trace.dat file.&lt;br /&gt;
&lt;br /&gt;
= Analyzing the trace =&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 trace-cmd report&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will format and display the contents of the trace.&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=UsingVhost&amp;diff=3509</id>
		<title>UsingVhost</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=UsingVhost&amp;diff=3509"/>
		<updated>2011-02-24T10:16:23Z</updated>

		<summary type="html">&lt;p&gt;Mjt: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of September 2010, vhost is not included in any released tarballs, so you need the git version.&lt;br /&gt;
&lt;br /&gt;
[[VhostNet]] provides better latency (10% less than e1000 on my system) and greater throughput (8x the normal virtio, around 7~8 Gigabits/sec here) for network.&lt;br /&gt;
&lt;br /&gt;
=== Obtaining the code ===&lt;br /&gt;
&lt;br /&gt;
you need the at least qemu-kvm-0.13.0 (http://sourceforge.net/projects/kvm/files/qemu-kvm/)&lt;br /&gt;
&lt;br /&gt;
=== kernel requirements ===&lt;br /&gt;
&lt;br /&gt;
On the host you need a kernel with CONFIG_VHOST_NET=y and in the guest you need a kernel with CONFIG_PCI_MSI=y&lt;br /&gt;
&lt;br /&gt;
=== example command line ===&lt;br /&gt;
To start a guest with vhost:&lt;br /&gt;
* kvm -netdev type=tap,id=guest0,script=kvm-ifup,&#039;&#039;&#039;vhost=on&#039;&#039;&#039; -device virtio-net-pci,netdev=guest0,mac=&#039;&#039;ma:c:a:dd:re:ss&#039;&#039; ..&#039;&#039;other options&#039;&#039;..&lt;br /&gt;
&lt;br /&gt;
=== Caveats ===&lt;br /&gt;
Some DHCP clients have problems with this implementation, more [http://www.spinics.net/lists/kvm/msg37660.html details here].&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=UsingVhost&amp;diff=3508</id>
		<title>UsingVhost</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=UsingVhost&amp;diff=3508"/>
		<updated>2011-02-24T10:11:48Z</updated>

		<summary type="html">&lt;p&gt;Mjt: show the important option in bold&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of September 2010, vhost is not included in any released tarballs, so you need the git version.&lt;br /&gt;
&lt;br /&gt;
[[VhostNet]] provides better latency (10% less than e1000 on my system) and greater throughput (8x the normal virtio, around 7~8 Gigabits/sec here) for network.&lt;br /&gt;
&lt;br /&gt;
=== Obtaining the code ===&lt;br /&gt;
&lt;br /&gt;
you need the at least qemu-kvm-0.13.0 (http://sourceforge.net/projects/kvm/files/qemu-kvm/)&lt;br /&gt;
&lt;br /&gt;
=== kernel requirements ===&lt;br /&gt;
&lt;br /&gt;
On the host you need a kernel with CONFIG_VHOST_NET=y and in the guest you need a kernel with CONFIG_PCI_MSI=y&lt;br /&gt;
&lt;br /&gt;
=== example command line ===&lt;br /&gt;
To start a guest with vhost:&lt;br /&gt;
* /usr/bin/kvm -netdev type=tap,id=guest0,script=kvm-ifup,&#039;&#039;&#039;vhost=on&#039;&#039;&#039; -device virtio-net-pci,netdev=guest0,mac=00:16:3e:00:00:01 ..other options..&lt;br /&gt;
&lt;br /&gt;
=== Caveats ===&lt;br /&gt;
Some DHCP clients have problems with this implementation, more [http://www.spinics.net/lists/kvm/msg37660.html details here].&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Main_Page&amp;diff=3507</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Main_Page&amp;diff=3507"/>
		<updated>2011-02-24T09:22:22Z</updated>

		<summary type="html">&lt;p&gt;Mjt: changed qemu main site link to be www.qemu.org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Kernel Based Virtual Machine ==&lt;br /&gt;
&lt;br /&gt;
KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. KVM also requires a modified QEMU although work is underway to get the required changes upstream. &lt;br /&gt;
&lt;br /&gt;
Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.&lt;br /&gt;
&lt;br /&gt;
The kernel component of KVM is included in mainline Linux, as of 2.6.20.&lt;br /&gt;
&lt;br /&gt;
KVM is open source software.&lt;br /&gt;
&lt;br /&gt;
== Common Pages ==&lt;br /&gt;
{| style=&amp;quot;border:none&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:50%;border:none;&amp;quot;|&lt;br /&gt;
* [[KVM Forum]]&lt;br /&gt;
** [[KVM Forum 2010]]&lt;br /&gt;
* [[LinuxPlumbers2010|Linux Plumbers Conference 2010]]&lt;br /&gt;
* [[TODO]]&lt;br /&gt;
* [[KVM-Autotest]]&lt;br /&gt;
* [[KVM Features]]&lt;br /&gt;
|style=&amp;quot;width:50%;border:none;&amp;quot;|&lt;br /&gt;
* [[Management Tools]]&lt;br /&gt;
* [[Documents]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Common External Pages ==&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;border:none&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:50%;border:none;&amp;quot;|&lt;br /&gt;
* [http://www.qemu.org/ QEMU]&lt;br /&gt;
* [http://wiki.xensource.com/xenwiki/HVM_Compatible_Processors Xen&#039;s HVM Compatible Processors List]&lt;br /&gt;
|style=&amp;quot;width:50%;border:none;&amp;quot;|&lt;br /&gt;
* [http://qemu-buch.de Book &amp;quot;qemu-kvm &amp;amp; libvirt&amp;quot;]&lt;br /&gt;
* [http://qemu-buch.de/cgi-bin/moin.cgi/ QEMU Wiki]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Lists,_IRC&amp;diff=3444</id>
		<title>Lists, IRC</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Lists,_IRC&amp;diff=3444"/>
		<updated>2010-12-14T22:48:26Z</updated>

		<summary type="html">&lt;p&gt;Mjt: remove spam by Garydavid, _again_&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lists, IRC=&lt;br /&gt;
&lt;br /&gt;
== Mailing Lists ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! list&lt;br /&gt;
! topics&lt;br /&gt;
! subscribe&lt;br /&gt;
! archives&lt;br /&gt;
|- &lt;br /&gt;
| kvm@vger.kernel.org&lt;br /&gt;
| general and x86&lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm subscribe]&lt;br /&gt;
| [http://news.gmane.org/gmane.comp.emulators.kvm.devel Gmane], [http://www.spinics.net/lists/kvm spinics], [http://marc.info/?l=kvm MARC]&lt;br /&gt;
|-&lt;br /&gt;
| kvm-commits@vger.kernel.org &lt;br /&gt;
| kernel commit logs &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-commits subscribe] &lt;br /&gt;
| [http://news.gmane.org/gmane.comp.emulators.kvm.scm Gmane] &lt;br /&gt;
|-&lt;br /&gt;
| kvm-ia64@vger.kernel.org &lt;br /&gt;
| ia64 &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-ia64 subscribe] &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| kvm-ppc@vger.kernel.org &lt;br /&gt;
| PowerPC &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-ppc subscribe] &lt;br /&gt;
| [http://marc.info/?l=kvm-ppc-devel MARC]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
  &lt;br /&gt;
While the lists are used mainly for development, user queries are welcome. No need to subscribe for a one-off question, just send an email. You may also want to check the various qemu resources on the web, as kvm shares the qemu user interface and networking.&lt;br /&gt;
&lt;br /&gt;
Please observe the usual mailing list etiquette: don&#039;t top-post, and trim excess quotations from the mail you are replying to.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t post to individual kvm developers directly.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
Join us on &#039;&#039;&#039;#kvm&#039;&#039;&#039; at [http://freenode.net Freenode]. Don&#039;t report serious bugs on IRC; they&#039;re liable to get lost. Use the list or the [[Bugs|bug tracker]].&lt;br /&gt;
&lt;br /&gt;
== Blogs and related sites ==&lt;br /&gt;
Haydn Solomon&#039;s [http://www.linux-kvm.com linux-kvm] site, featuring forums and a blog&lt;br /&gt;
&lt;br /&gt;
Avi Kivity&#039;s [http://avikivity.blogspot.com blog] &lt;br /&gt;
&lt;br /&gt;
Anthony Liguori&#039;s [http://blog.codemonkey.ws blog] &lt;br /&gt;
&lt;br /&gt;
[http://virt.kernelnewbies.org/ Linux virtualization] wiki&lt;br /&gt;
&lt;br /&gt;
== Forums ==&lt;br /&gt;
&lt;br /&gt;
[http://forums.meulie.net/viewforum.php?f=43 KVM forum]&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Lists,_IRC&amp;diff=3385</id>
		<title>Lists, IRC</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Lists,_IRC&amp;diff=3385"/>
		<updated>2010-11-10T22:08:40Z</updated>

		<summary type="html">&lt;p&gt;Mjt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Lists, IRC=&lt;br /&gt;
&lt;br /&gt;
== Mailing Lists ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! list&lt;br /&gt;
! topics&lt;br /&gt;
! subscribe&lt;br /&gt;
! archives&lt;br /&gt;
|- &lt;br /&gt;
| kvm@vger.kernel.org&lt;br /&gt;
| general and x86&lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm subscribe]&lt;br /&gt;
| [http://news.gmane.org/gmane.comp.emulators.kvm.devel Gmane], [http://www.spinics.net/lists/kvm spinics], [http://marc.info/?l=kvm MARC]&lt;br /&gt;
|-&lt;br /&gt;
| kvm-commits@vger.kernel.org &lt;br /&gt;
| kernel commit logs &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-commits subscribe] &lt;br /&gt;
| [http://news.gmane.org/gmane.comp.emulators.kvm.scm Gmane] &lt;br /&gt;
|-&lt;br /&gt;
| kvm-ia64@vger.kernel.org &lt;br /&gt;
| ia64 &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-ia64 subscribe] &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| kvm-ppc@vger.kernel.org &lt;br /&gt;
| PowerPC &lt;br /&gt;
| [mailto:majordomo@vger.kernel.org?body=subscribe%20kvm-ppc subscribe] &lt;br /&gt;
| [http://marc.info/?l=kvm-ppc-devel MARC]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
  &lt;br /&gt;
While the lists are used mainly for development, user queries are welcome. No need to subscribe for a one-off question, just send an email. You may also want to check the various qemu resources on the web, as kvm shares the qemu user interface and networking.&lt;br /&gt;
&lt;br /&gt;
Please observe the usual mailing list etiquette: don&#039;t top-post, and trim excess quotations from the mail you are replying to.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t post to individual kvm developers directly.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
Join us on &#039;&#039;&#039;#kvm&#039;&#039;&#039; at [http://freenode.net Freenode]. Don&#039;t report serious bugs on IRC; they&#039;re liable to get lost. Use the list or the [[Bugs|bug tracker]].&lt;br /&gt;
&lt;br /&gt;
== Blogs and related sites ==&lt;br /&gt;
Haydn Solomon&#039;s [http://www.linux-kvm.com linux-kvm] site, featuring forums and a blog&lt;br /&gt;
&lt;br /&gt;
Avi Kivity&#039;s [http://avikivity.blogspot.com blog] &lt;br /&gt;
&lt;br /&gt;
Anthony Liguori&#039;s [http://blog.codemonkey.ws blog] &lt;br /&gt;
&lt;br /&gt;
[http://virt.kernelnewbies.org/ Linux virtualization] wiki&lt;br /&gt;
&lt;br /&gt;
== Forums ==&lt;br /&gt;
&lt;br /&gt;
[http://forums.meulie.net/viewforum.php?f=43 KVM forum]&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Code&amp;diff=3360</id>
		<title>Code</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Code&amp;diff=3360"/>
		<updated>2010-10-18T18:05:24Z</updated>

		<summary type="html">&lt;p&gt;Mjt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code=&lt;br /&gt;
&lt;br /&gt;
[[Category:Architechture]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== kernel git tree ==&lt;br /&gt;
&lt;br /&gt;
The kvm kernel code is available through a git tree (like the kernel itself).  To create a repository using git, type&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.kernel.org/pub/scm/virt/kvm/kvm.git&lt;br /&gt;
&lt;br /&gt;
Alternatively, it is also accessible through the kernel.org gitweb interface:               &lt;br /&gt;
[http://git.kernel.org/?p=virt/kvm/kvm.git;a=summary]&lt;br /&gt;
&lt;br /&gt;
For subsequent upgrades use the command&lt;br /&gt;
                                       &lt;br /&gt;
 git pull&lt;br /&gt;
&lt;br /&gt;
in the git working directory.&lt;br /&gt;
&lt;br /&gt;
== userspace git tree ==&lt;br /&gt;
&lt;br /&gt;
The kvm userspace code (libkvm and qemu) is available through a git tree. To create a repository using git, type&lt;br /&gt;
                                                                                      &lt;br /&gt;
 git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git&lt;br /&gt;
&lt;br /&gt;
Alternatively, it is also accessible through the kernel.org gitweb interface:         &lt;br /&gt;
[http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=summary]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== building an external module with older kernels ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This only works for the x86 architecture.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. If you wish to use a distribution kernel (or just some random kernel you like) with kvm,&lt;br /&gt;
you can use the external module kit.  You will need the kvm-kmod repository:&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.kernel.org/pub/scm/virt/kvm/kvm-kmod.git&lt;br /&gt;
 cd kvm-kmod&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
 ./configure [--kerneldir=/path/to/kernel/dir]&lt;br /&gt;
 make sync&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
=== Tip about building against Red Hat Enterprise Linux kernels ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kvm-userspace/kernel&amp;lt;/code&amp;gt; has some compat code to allow it to compile against older kernels, and also some code specific to features that are normally not present on older kernels but are present on RHEL kernels.&lt;br /&gt;
&lt;br /&gt;
So, when building against a RHEL kernel tree, check if the &amp;lt;code&amp;gt;RHEL_*&amp;lt;/code&amp;gt; macros at &amp;lt;code&amp;gt;${kerneldir}/include/linux/version.h&amp;lt;/code&amp;gt; are defined correctly, corresponding to the RHEL version where the kernel source comes from. If those macros aren&#039;t defined correctly, the compat code that allows compilation against RHEL kernels will break and you will get build errors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== release tags ==&lt;br /&gt;
&lt;br /&gt;
kvm stable releases (based off of Qemu&#039;s stable branch) are tagged with &amp;lt;code&amp;gt;kvm-qemu-0.NN.N&amp;lt;/code&amp;gt; where &#039;&#039;N&#039;&#039; equates to the upstream Qemu branch versions. Note that kvm has them tagged not branched.&lt;br /&gt;
&lt;br /&gt;
kvm development releases are tagged with &amp;lt;code&amp;gt;kvm-nn&amp;lt;/code&amp;gt; where &#039;&#039;nn&#039;&#039; is the release number.&lt;br /&gt;
&lt;br /&gt;
== Binary Packages ==&lt;br /&gt;
&lt;br /&gt;
=== CentOS / RHEL ===&lt;br /&gt;
&lt;br /&gt;
Unofficial packages of latest releases can be found at:&lt;br /&gt;
&amp;lt;code&amp;gt;http://www.lfarkas.org/linux/packages/centos/5/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
For Debian Lenny, please use packages from backports.debian.org - for &amp;lt;em&amp;gt;both&amp;lt;/em&amp;gt; qemu-kvm and kernel (at least 2.6.32).  It is important to use more recent kernel - 2.6.26 does not work well with kvm.&lt;br /&gt;
&lt;br /&gt;
Note that package &amp;quot;kvm&amp;quot; has been renamed to &amp;quot;qemu-kvm&amp;quot; in Squeeze and in Lenny backports (and kvm is now transitional package that installs qemu-kvm automatically).&lt;br /&gt;
&lt;br /&gt;
Debian Squeeze will have qemu-kvm based on 0.12, available in standard repositories.&lt;br /&gt;
&lt;br /&gt;
Experimental 0.13 packages are available at &lt;br /&gt;
&amp;lt;code&amp;gt;http://www.corpit.ru/debian/tls/kvm/0.13/&amp;lt;/code&amp;gt; , pending upload to debian -experimental.&lt;br /&gt;
&lt;br /&gt;
== nightly snapshots ==&lt;br /&gt;
&lt;br /&gt;
Nightly snapshots, for those who are uncomfortable with git, are [http://people.qumranet.com/avi/snapshots available].  When reporting a problem with a snapshot, please quote the snapshot name (which includes the date) and the contents of the SOURCES file in the snapshot tarball.&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=VhostNet&amp;diff=3246</id>
		<title>VhostNet</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=VhostNet&amp;diff=3246"/>
		<updated>2010-09-15T13:16:17Z</updated>

		<summary type="html">&lt;p&gt;Mjt: -netdev type=tap, not -netdev tap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;vhost-net: a kernel-level virtio-net server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is vhost-net ==&lt;br /&gt;
&lt;br /&gt;
vhost is a kernel-level backend for virtio.&lt;br /&gt;
The main motivation for vhost is to reduce virtualization&lt;br /&gt;
overhead for virtio by removing system calls on data path,&lt;br /&gt;
without guest changes. For virtio-net, this removes up to&lt;br /&gt;
4 system calls per packet: vm exit for kick, reentry for kick,&lt;br /&gt;
iothread wakeup for packet, interrupt injection for packet.&lt;br /&gt;
&lt;br /&gt;
vhost is as minimal as possible. It relies on userspace for&lt;br /&gt;
all setup work.&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
vhost is fully functional, and it already shows&lt;br /&gt;
improvement over userspace virtio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to use ==&lt;br /&gt;
&lt;br /&gt;
Download, build an install kernel from:&lt;br /&gt;
&lt;br /&gt;
kernel:&lt;br /&gt;
 git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git vhost&lt;br /&gt;
userspace:&lt;br /&gt;
 git://git.kernel.org/pub/scm/linux/kernel/git/mst/qemu-kvm.git vhost&lt;br /&gt;
&lt;br /&gt;
=== Usage instructions: ===&lt;br /&gt;
&lt;br /&gt;
vhost currently requires MSI-X support in guest virtio.&lt;br /&gt;
This means guests kernel version should be &amp;gt;= 2.6.31.&lt;br /&gt;
&lt;br /&gt;
To enable vhost, simply add &amp;quot;,vhost&amp;quot; flag to nic options.&lt;br /&gt;
Example with tap backend:&lt;br /&gt;
&lt;br /&gt;
 qemu-system-x86_64 -m 1G disk-c.qcow2 \&lt;br /&gt;
 -net nic,model=virtio,netdev=foo \&lt;br /&gt;
 -netdev type=tap,id=foo,ifname=msttap0,script=/home/mst/ifup,downscript=no,&#039;&#039;&#039;vhost=on&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Older (demo) version usage:&lt;br /&gt;
Example with tap backend:&lt;br /&gt;
&lt;br /&gt;
 qemu-system-x86_64 -m 1G disk-c.qcow2 \&lt;br /&gt;
 -net tap,ifname=msttap0,script=/home/mst/ifup,downscript=no \&lt;br /&gt;
 -net nic,model=virtio,&#039;&#039;&#039;vhost&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Example with raw socket backend:&lt;br /&gt;
&lt;br /&gt;
 ifconfig eth3 promisc&lt;br /&gt;
 qemu-system-x86_64 -m 1G disk-c.qcow2 \&lt;br /&gt;
 -net raw,ifname=eth3 \&lt;br /&gt;
 -net nic,model=virtio,&#039;&#039;&#039;vhost&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: in raw socket mode, when binding to a physical&lt;br /&gt;
ethernet device, host to guest communication&lt;br /&gt;
will only work if your device is connected to a bridge&lt;br /&gt;
configured to mirror outgoing packets back at the originating link.&lt;br /&gt;
If you do not know whether this is the case, this most likely&lt;br /&gt;
means it isn&#039;t. Use another box to access the guest, or use tap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* vhost currently requires MSI-X support in guest virtio. This means guests kernel version should be &amp;gt;= 2.6.31.&lt;br /&gt;
* with raw sockets, host to guest, and guest to guest communication on the same host does not always work. Use  bridge+tap if you need that.&lt;br /&gt;
* driver unloading in guest and device hot-unplug are broken, because the relevant code in qemu is stubbed out. Need to implement them.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
Still tuning performance, especially guest to host.&lt;br /&gt;
&lt;br /&gt;
External to system numbers with bridge+tap and 10GE vxge card:&lt;br /&gt;
qemu with bridge+tap, run with: -cpu host,-rdtscp,+x2apic,&lt;br /&gt;
host+guest 2.6.33-rc2. mtu 1500.&lt;br /&gt;
&lt;br /&gt;
* netperf TCP_STREAM, default setup, 100 secs run&lt;br /&gt;
  native: 81XX Mb/s&lt;br /&gt;
  without vhost-net: 72XX Mb/s&lt;br /&gt;
  with vhost-net: 78XX Mb/s&lt;br /&gt;
&lt;br /&gt;
* TCP_RR, 100 secs run&lt;br /&gt;
  native: 48 usec/Trans&lt;br /&gt;
  without vhost-net: 395 usec/Trans&lt;br /&gt;
  with vhost-net: 86 usec/Trans&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some local numbers coutesy of Shirley Ma:&lt;br /&gt;
&lt;br /&gt;
* netperf TCP_STREAM, default setup, 60 secs run&lt;br /&gt;
  guest-&amp;gt;host increases from 3XXXMb/s to 5XXXMb/s&lt;br /&gt;
  host-&amp;gt;guest increases from 3XXXMb/s to 4XXXMb/s&lt;br /&gt;
&lt;br /&gt;
* TCP_RR, 60 secs run&lt;br /&gt;
  guest-&amp;gt;host trans/s increases from 2XXX/s to 13XXX/s&lt;br /&gt;
  host-&amp;gt;guest trans/s increases from 2XXX/s to 13XXX/s&lt;br /&gt;
&lt;br /&gt;
== TODOs ==&lt;br /&gt;
&lt;br /&gt;
=== vhost-net driver projects ===&lt;br /&gt;
* profiling would be very helpful, I have not done any yet.&lt;br /&gt;
* merged buffers. &lt;br /&gt;
* scalability tuning: figure out the best threading model to use.&lt;br /&gt;
&lt;br /&gt;
=== qemu projects ===&lt;br /&gt;
* migration support&lt;br /&gt;
* level triggered interrupts&lt;br /&gt;
* driver unloading/hotplug&lt;br /&gt;
* general cleanup and upstreaming&lt;br /&gt;
* upstream support for injecting interrupts from kernel, from qemu-kvm.git to qemu.git (this is a vhost dependency, without it vhost can&#039;t be upstreamed, or it can, but without real benefit)&lt;br /&gt;
&lt;br /&gt;
=== virtio projects ===&lt;br /&gt;
* improve small packet/large buffer performance: support &amp;quot;reposting&amp;quot; buffers, pool for indirect buffers&lt;br /&gt;
* guest kernel 2.6.31 seems to work well. Under certain workloads,&lt;br /&gt;
virtio performance has regressed with guest kernels 2.6.32 and up&lt;br /&gt;
(but still better than userspace). A patch has been posted:&lt;br /&gt;
http://www.spinics.net/lists/netdev/msg115292.html&lt;br /&gt;
&lt;br /&gt;
=== projects involing other kernel components and/or networking stack ===&lt;br /&gt;
* rx mac filtering in tun&lt;br /&gt;
* extend raw sockets to support GSO/checksum offloading, and teach vhost to use that capability [one way to do this: virtio net header support]; will allow working with e.g. macvlan&lt;br /&gt;
* improve locking: e.g. RX/TX poll should not need a lock&lt;br /&gt;
* multicast ICMPs snooping in bridge&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== long term projects ===&lt;br /&gt;
* kvm eventfd support for injecting level interrupts&lt;br /&gt;
* multiqueue (involves all of vhost, qemu, virtio, networking stack)&lt;br /&gt;
* zero copy tx for tun/raw sockets&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* More testing is always good&lt;br /&gt;
&lt;br /&gt;
== Short term plans for MST ==&lt;br /&gt;
&lt;br /&gt;
* get vhost net merged in linux kernel 2.6.33&lt;br /&gt;
* address most vhost qemu TODOs&lt;br /&gt;
* get vhost support merged in upstream qemu&lt;br /&gt;
&lt;br /&gt;
== Short term plans for IBM(Sridhar Samudrala, David Stevens, Shirley MA) ==&lt;br /&gt;
* Add GSO/checksum offload support to AF_PACKET(raw) sockets.&lt;br /&gt;
* Mergeable RX buffers support in vhost-net.&lt;br /&gt;
* Defer SKB allocation in virtio_net receive path.&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=UsingVhost&amp;diff=3245</id>
		<title>UsingVhost</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=UsingVhost&amp;diff=3245"/>
		<updated>2010-09-15T13:11:33Z</updated>

		<summary type="html">&lt;p&gt;Mjt: add a link to vhost page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of September 2010, vhost is not included in any released tarballs, so you need the git version.&lt;br /&gt;
&lt;br /&gt;
[[VhostNet]] provides better latency (10% less than e1000 on my system) and greater throughput (8x the normal virtio, around 7~8 Gigabytes/sec here) for network.&lt;br /&gt;
&lt;br /&gt;
=== Obtaining the code ===&lt;br /&gt;
&lt;br /&gt;
* git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git&lt;br /&gt;
* git checkout refs/remotes/origin/stable-0.13&lt;br /&gt;
* cd kvm&lt;br /&gt;
* compile as usual&lt;br /&gt;
&lt;br /&gt;
=== kernel requirements ===&lt;br /&gt;
&lt;br /&gt;
On the host you need a kernel with CONFIG_VHOST_NET=y and in the guest you need a kernel with CONFIG_PCI_MSI=y&lt;br /&gt;
&lt;br /&gt;
=== example command line ===&lt;br /&gt;
To start a guest with vhost:&lt;br /&gt;
* /usr/bin/kvm -netdev type=tap,id=guest0,script=kvm-ifup,vhost=on -device virtio-net-pci,netdev=guest0,mac=00:16:3e:00:00:01 ..other options..&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=UsingVhost&amp;diff=3244</id>
		<title>UsingVhost</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=UsingVhost&amp;diff=3244"/>
		<updated>2010-09-15T13:07:51Z</updated>

		<summary type="html">&lt;p&gt;Mjt: drop irrelevant command-line arguments in the example, to show only net-related ones&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of September 2010, vhost is not included in any released tarballs, so you need the git version.&lt;br /&gt;
&lt;br /&gt;
Vhost provides better latency (10% less than e1000 on my system) and greater throughput (8x the normal virtio, around 7~8 Gigabytes/sec here) for network.&lt;br /&gt;
&lt;br /&gt;
=== Obtaining the code ===&lt;br /&gt;
&lt;br /&gt;
* git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git&lt;br /&gt;
* git checkout refs/remotes/origin/stable-0.13&lt;br /&gt;
* cd kvm&lt;br /&gt;
* compile as usual&lt;br /&gt;
&lt;br /&gt;
=== kernel requirements ===&lt;br /&gt;
&lt;br /&gt;
On the host you need a kernel with CONFIG_VHOST_NET=y and in the guest you need a kernel with CONFIG_PCI_MSI=y&lt;br /&gt;
&lt;br /&gt;
=== example command line ===&lt;br /&gt;
To start a guest with vhost:&lt;br /&gt;
* /usr/bin/kvm -netdev type=tap,id=guest0,script=kvm-ifup,vhost=on -device virtio-net-pci,netdev=guest0,mac=00:16:3e:00:00:01 ..other options..&lt;/div&gt;</summary>
		<author><name>Mjt</name></author>
	</entry>
</feed>