Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp	(revision 54910)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp	(revision 54911)
@@ -181,5 +181,5 @@
                      "                            [--triplefaultreset on|off]\n"
                      "                            [--paravirtprovider none|default|legacy|minimal|\n"
-                     "                                                hyperv]\n"
+                     "                                                hyperv|kvm]\n"
                      "                            [--hwvirtex on|off]\n"
                      "                            [--nestedpaging on|off]\n"
Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp	(revision 54910)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp	(revision 54911)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2006-2014 Oracle Corporation
+ * Copyright (C) 2006-2015 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -718,4 +718,11 @@
             else
                 pszParavirtProvider = "HyperV";
+            break;
+
+        case ParavirtProvider_KVM:
+            if (details == VMINFO_MACHINEREADABLE)
+                pszParavirtProvider = "kvm";
+            else
+                pszParavirtProvider = "KVM";
             break;
 
Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp	(revision 54910)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp	(revision 54911)
@@ -661,4 +661,6 @@
                 else if (!RTStrICmp(ValueUnion.psz, "hyperv"))
                     CHECK_ERROR(machine, COMSETTER(ParavirtProvider)(ParavirtProvider_HyperV));
+                else if (!RTStrICmp(ValueUnion.psz, "kvm"))
+                    CHECK_ERROR(machine, COMSETTER(ParavirtProvider)(ParavirtProvider_KVM));
                 else
                 {
Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 54910)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 54911)
@@ -1027,5 +1027,5 @@
   <enum
     name="ParavirtProvider"
-    uuid="f9448c17-7caa-4ca7-9349-edafe369fcb5"
+    uuid="696453ec-3742-4a05-bead-658ccbf2c944"
     >
     <desc>
@@ -1049,4 +1049,7 @@
       <desc>Microsoft Hyper-V.</desc>
     </const>
+	<const name="KVM"      value="5">
+	  <desc>Linux KVM.</desc>
+	</const>
   </enum>
 
Index: /trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp	(revision 54910)
+++ /trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp	(revision 54911)
@@ -1203,4 +1203,8 @@
             case ParavirtProvider_HyperV:
                 pcszParavirtProvider = "HyperV";
+                break;
+
+            case ParavirtProvider_KVM:
+                pcszParavirtProvider = "KVM";
                 break;
 
Index: /trunk/src/VBox/Main/src-server/MachineImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/MachineImpl.cpp	(revision 54910)
+++ /trunk/src/VBox/Main/src-server/MachineImpl.cpp	(revision 54911)
@@ -1254,4 +1254,5 @@
         case ParavirtProvider_None:
         case ParavirtProvider_HyperV:
+        case ParavirtProvider_KVM:
         case ParavirtProvider_Minimal:
             break;
@@ -1301,4 +1302,11 @@
                         *aParavirtProvider = ParavirtProvider_HyperV;
                     }
+                    else if (   mUserData->s.strOsType == "Debian"      /** @todo add more. */
+                             || mUserData->s.strOsType == "Debian_64"
+                             || mUserData->s.strOsType == "Ubuntu"
+                             || mUserData->s.strOsType == "Ubuntu_64")
+                    {
+                        *aParavirtProvider = ParavirtProvider_KVM;
+                    }
                     else
                         *aParavirtProvider = ParavirtProvider_None;
@@ -1312,5 +1320,6 @@
     Assert(   *aParavirtProvider == ParavirtProvider_None
            || *aParavirtProvider == ParavirtProvider_Minimal
-           || *aParavirtProvider == ParavirtProvider_HyperV);
+           || *aParavirtProvider == ParavirtProvider_HyperV
+           || *aParavirtProvider == ParavirtProvider_KVM);
     return S_OK;
 }
Index: /trunk/src/VBox/Main/xml/Settings.cpp
===================================================================
--- /trunk/src/VBox/Main/xml/Settings.cpp	(revision 54910)
+++ /trunk/src/VBox/Main/xml/Settings.cpp	(revision 54911)
@@ -2856,4 +2856,6 @@
                 else if (strProvider == "HyperV")
                     hw.paravirtProvider = ParavirtProvider_HyperV;
+                else if (strProvider == "KVM")
+                    hw.paravirtProvider = ParavirtProvider_KVM;
                 else
                     throw ConfigFileError(this,
@@ -4179,4 +4181,5 @@
             case ParavirtProvider_Minimal:      pcszParavirtProvider = "Minimal";  break;
             case ParavirtProvider_HyperV:       pcszParavirtProvider = "HyperV";   break;
+            case ParavirtProvider_KVM:          pcszParavirtProvider = "KVM";      break;
             default:            Assert(false);  pcszParavirtProvider = "None";     break;
         }
