Default to adding USB2 for new enough KVM

We enable this for virt-install as well. To avoid it, you can do either

--controller usb,model=none or --controller usb
This commit is contained in:
Cole Robinson 2013-10-02 15:51:01 -04:00
parent 9194feb1f5
commit 9c57c72eac
14 changed files with 128 additions and 3 deletions

View File

@ -19,6 +19,16 @@
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/test-hv</emulator>
<controller type="usb" index="0" model="ich9-ehci1"/>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
</controller>
<interface type="user">
<mac address="00:11:22:33:44:55"/>
</interface>
@ -47,6 +57,16 @@
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/test-hv</emulator>
<controller type="usb" index="0" model="ich9-ehci1"/>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
</controller>
<interface type="user">
<mac address="00:11:22:33:44:55"/>
</interface>

View File

@ -43,6 +43,16 @@
<source file="/tmp/__virtinst_cli_exist1.img"/>
<target dev="vda" bus="virtio"/>
</disk>
<controller type="usb" index="0" model="ich9-ehci1"/>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
</controller>
<interface type="network">
<source network="default"/>
<mac address="00:11:22:33:44:55"/>
@ -99,6 +109,16 @@
<source file="/tmp/__virtinst_cli_exist1.img"/>
<target dev="vda" bus="virtio"/>
</disk>
<controller type="usb" index="0" model="ich9-ehci1"/>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
</controller>
<interface type="network">
<source network="default"/>
<mac address="00:11:22:33:44:55"/>

View File

@ -19,6 +19,16 @@
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<controller type="usb" index="0" model="ich9-ehci1"/>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
</controller>
<interface type="network">
<source network="default"/>
<mac address="00:11:22:33:44:55"/>

View File

@ -31,6 +31,7 @@
<target dev="hdc" bus="ide"/>
<readonly/>
</disk>
<controller type="usb" index="0"/>
<interface type="network">
<source network="default"/>
<mac address="00:11:22:33:44:55"/>
@ -76,6 +77,7 @@
<target dev="hdc" bus="ide"/>
<readonly/>
</disk>
<controller type="usb" index="0"/>
<interface type="network">
<source network="default"/>
<mac address="00:11:22:33:44:55"/>
@ -121,6 +123,7 @@
<target dev="hdc" bus="ide"/>
<readonly/>
</disk>
<controller type="usb" index="0"/>
<interface type="network">
<source network="default"/>
<mac address="00:11:22:33:44:55"/>

View File

@ -9,6 +9,16 @@
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<controller type="usb" index="0" model="ich9-ehci1"/>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
</controller>
<interface type="network">
<source network="default"/>
<mac address="00:11:22:33:44:55"/>

View File

@ -19,6 +19,16 @@
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<controller type="usb" index="0" model="ich9-ehci1"/>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
</controller>
<interface type="network">
<source network="default"/>
<mac address="00:11:22:33:44:55"/>

View File

@ -22,6 +22,16 @@
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<controller type="usb" index="0" model="ich9-ehci1"/>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
</controller>
<interface type="network">
<source network="default"/>
<mac address="00:11:22:33:44:55"/>

View File

@ -19,6 +19,16 @@
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/test-hv</emulator>
<controller type="usb" index="0" model="ich9-ehci1"/>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
</controller>
<interface type="user">
<mac address="00:11:22:33:44:55"/>
</interface>
@ -47,6 +57,16 @@
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/test-hv</emulator>
<controller type="usb" index="0" model="ich9-ehci1"/>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
</controller>
<interface type="user">
<mac address="00:11:22:33:44:55"/>
</interface>

View File

@ -32,6 +32,7 @@
<target dev="hdc" bus="ide"/>
<readonly/>
</disk>
<controller type="usb" index="0" model="none"/>
<interface type="user">
<mac address="00:11:22:33:44:55"/>
</interface>
@ -72,6 +73,7 @@
<target dev="hdc" bus="ide"/>
<readonly/>
</disk>
<controller type="usb" index="0" model="none"/>
<interface type="user">
<mac address="00:11:22:33:44:55"/>
</interface>
@ -112,6 +114,7 @@
<target dev="hdc" bus="ide"/>
<readonly/>
</disk>
<controller type="usb" index="0" model="none"/>
<interface type="user">
<mac address="00:11:22:33:44:55"/>
</interface>

View File

@ -468,7 +468,7 @@ c.add_valid("--nodisks --boot hd --paravirt --arch i686") # 32 on 64 xen
c = vinst.add_category("kvm", "--connect %(KVMURI)s --noautoconsole")
c.add_compare("--os-variant fedora14 --file %(EXISTIMG1)s --location %(TREEDIR)s --extra-args console=ttyS0 --cpu host", "kvm-f14-url") # F14 Directory tree URL install with extra-args
c.add_compare("--os-variant fedora14 --disk %(NEWIMG1)s,size=.01 --location %(TREEDIR)s --extra-args console=ttyS0 --quiet", "quiet-url") # Quiet URL install should make no noise
c.add_compare("--cdrom %(EXISTIMG2)s --file %(EXISTIMG1)s --os-variant win2k3 --wait 0 --sound", "kvm-win2k3-cdrom") # HVM windows install with disk
c.add_compare("--cdrom %(EXISTIMG2)s --file %(EXISTIMG1)s --os-variant win2k3 --wait 0 --sound --controller usb", "kvm-win2k3-cdrom") # HVM windows install with disk
c.add_compare("--os-variant fedora14 --nodisks --boot hd --paravirt", "kvm-xenner") # xenner
c.add_compare("--os-variant fedora14 --nodisks --boot cdrom --virt-type qemu --cpu Penryn", "qemu-plain") # plain qemu
c.add_compare("--os-variant fedora14 --nodisks --boot network --nographics --arch i686", "qemu-32-on-64") # 32 on 64
@ -486,7 +486,7 @@ c.add_invalid("--nodisks --boot network --paravirt --arch mips") # Invalid arch
c = vinst.add_category("misc", "--nographics --noautoconsole")
c.add_compare("", "noargs-fail") # No arguments
c.add_compare("--hvm --nodisks --pxe --print-step all", "simple-pxe") # Diskless PXE install
c.add_compare("--hvm --cdrom %(EXISTIMG2)s --file %(EXISTIMG1)s --os-variant win2k3 --wait 0 --vcpus cores=4", "w2k3-cdrom") # HVM windows install with disk
c.add_compare("--hvm --cdrom %(EXISTIMG2)s --file %(EXISTIMG1)s --os-variant win2k3 --wait 0 --vcpus cores=4 --controller usb,model=none", "w2k3-cdrom") # HVM windows install with disk
c.add_compare("""--hvm --pxe \
--controller usb,model=ich9-ehci1,address=0:0:4.7,index=0 \
--controller usb,model=ich9-uhci1,address=0:0:4.0,index=0,master=0 \

View File

@ -533,7 +533,12 @@ def build_guest_instance(conn, options):
if not guest.get_devices("console") and not guest.get_devices("serial"):
guest.add_default_console_device()
if not guest.get_devices("video") and guest.get_devices("graphics"):
guest.add_device(virtinst.VirtualVideoDevice(guest.conn))
guest.add_default_video_device()
do_default_usb = all([d.type != "usb" for d in
guest.get_devices("controller")])
if do_default_usb:
guest.add_default_usb_controller()
# Install options
cli.set_os_variant(guest, options.distro_type, options.distro_variant)

View File

@ -1513,6 +1513,7 @@ class vmmCreate(vmmGObjectUI):
guest.add_default_console_device()
if self.config.get_new_vm_sound():
guest.add_default_sound_device()
guest.add_default_usb_controller()
except Exception, e:
self.err.show_err(_("Error setting up default devices:") + str(e))
return None

View File

@ -531,6 +531,17 @@ class Guest(XMLBuilder):
return
self.add_device(virtinst.VirtualVideoDevice(self.conn))
def add_default_usb_controller(self):
if self.os.is_container():
return
if not self.os.is_x86():
return
if not self.conn.check_conn_support(
self.conn.SUPPORT_CONN_DEFAULT_USB2):
return
for dev in virtinst.VirtualController.get_usb2_controllers(self.conn):
self.add_device(dev)
def _set_transient_device_defaults(self, install):
def do_remove_media(d):
# Keep cdrom around, but with no media attached,

View File

@ -330,6 +330,8 @@ SUPPORT_CONN_DISK_SD = _make(version=1001002)
# here, but until someone tests things I'm going to be a bit conservative.
SUPPORT_CONN_DEFAULT_QCOW2 = _make(
version=8000, drv_version=[("qemu", 1002000), ("test", 0)])
SUPPORT_CONN_DEFAULT_USB2 = _make(
version=9007, drv_version=[("qemu", 1000000), ("test", 0)])
# Domain checks
SUPPORT_DOMAIN_GETVCPUS = _make(function="virDomain.vcpus", args=())