mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-03-08 04:58:29 +03:00
guest: Use virtio-scsi for arm machvirt CDROM
Since it's the only option we have to actually use the CDROM
This commit is contained in:
parent
67b36a086c
commit
26828b52cc
91
tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml
Normal file
91
tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml
Normal file
@ -0,0 +1,91 @@
|
||||
<domain type="qemu">
|
||||
<name>foobar</name>
|
||||
<uuid>00000000-1111-2222-3333-444444444444</uuid>
|
||||
<memory>65536</memory>
|
||||
<currentMemory>65536</currentMemory>
|
||||
<vcpu>1</vcpu>
|
||||
<os>
|
||||
<type arch="aarch64" machine="virt">hvm</type>
|
||||
<loader>CODE.fd</loader>
|
||||
<nvram template="VARS.fd"/>
|
||||
<boot dev="cdrom"/>
|
||||
<boot dev="hd"/>
|
||||
</os>
|
||||
<features>
|
||||
<acpi/>
|
||||
<apic/>
|
||||
<pae/>
|
||||
</features>
|
||||
<cpu mode="custom" match="exact">
|
||||
<model>cortex-a57</model>
|
||||
</cpu>
|
||||
<clock offset="utc"/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>destroy</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/bin/qemu-system-aarch64</emulator>
|
||||
<disk type="file" device="disk">
|
||||
<driver name="qemu" type="qcow2"/>
|
||||
<source file="/dev/default-pool/testvol1.img"/>
|
||||
<target dev="vda" bus="virtio"/>
|
||||
</disk>
|
||||
<disk type="file" device="cdrom">
|
||||
<driver name="qemu" type="qcow2"/>
|
||||
<source file="/dev/default-pool/testvol2.img"/>
|
||||
<target dev="sda" bus="scsi"/>
|
||||
<readonly/>
|
||||
</disk>
|
||||
<controller type="scsi" index="0" model="virtio-scsi"/>
|
||||
<interface type="bridge">
|
||||
<source bridge="eth0"/>
|
||||
<mac address="00:11:22:33:44:55"/>
|
||||
<model type="virtio"/>
|
||||
</interface>
|
||||
<console type="pty"/>
|
||||
</devices>
|
||||
</domain>
|
||||
<domain type="qemu">
|
||||
<name>foobar</name>
|
||||
<uuid>00000000-1111-2222-3333-444444444444</uuid>
|
||||
<memory>65536</memory>
|
||||
<currentMemory>65536</currentMemory>
|
||||
<vcpu>1</vcpu>
|
||||
<os>
|
||||
<type arch="aarch64" machine="virt">hvm</type>
|
||||
<loader>CODE.fd</loader>
|
||||
<nvram template="VARS.fd"/>
|
||||
<boot dev="hd"/>
|
||||
</os>
|
||||
<features>
|
||||
<acpi/>
|
||||
<apic/>
|
||||
<pae/>
|
||||
</features>
|
||||
<cpu mode="custom" match="exact">
|
||||
<model>cortex-a57</model>
|
||||
</cpu>
|
||||
<clock offset="utc"/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>restart</on_crash>
|
||||
<devices>
|
||||
<emulator>/bin/qemu-system-aarch64</emulator>
|
||||
<disk type="file" device="disk">
|
||||
<driver name="qemu" type="qcow2"/>
|
||||
<source file="/dev/default-pool/testvol1.img"/>
|
||||
<target dev="vda" bus="virtio"/>
|
||||
</disk>
|
||||
<disk type="block" device="cdrom">
|
||||
<target dev="sda" bus="scsi"/>
|
||||
<readonly/>
|
||||
</disk>
|
||||
<controller type="scsi" index="0" model="virtio-scsi"/>
|
||||
<interface type="bridge">
|
||||
<source bridge="eth0"/>
|
||||
<mac address="00:11:22:33:44:55"/>
|
||||
<model type="virtio"/>
|
||||
</interface>
|
||||
<console type="pty"/>
|
||||
</devices>
|
||||
</domain>
|
@ -525,6 +525,7 @@ c.add_compare("--arch armv7l --machine virt --boot kernel=/f19-arm.kernel,initrd
|
||||
c.add_compare("--arch armv7l --boot kernel=/f19-arm.kernel,initrd=/f19-arm.initrd,kernel_args=\"console=ttyAMA0,1234 rw root=/dev/vda3\",extra_args=foo --disk %(EXISTIMG1)s --os-variant fedora20", "arm-defaultmach-f20")
|
||||
c.add_compare("--arch aarch64 --machine virt --boot kernel=/f19-arm.kernel,initrd=/f19-arm.initrd,kernel_args=\"console=ttyAMA0,1234 rw root=/dev/vda3\",extra_args=foo --disk %(EXISTIMG1)s", "aarch64-machvirt")
|
||||
c.add_compare("--arch aarch64 --boot kernel=/f19-arm.kernel,initrd=/f19-arm.initrd,kernel_args=\"console=ttyAMA0,1234 rw root=/dev/vda3\",extra_args=foo --disk %(EXISTIMG1)s", "aarch64-machdefault")
|
||||
c.add_compare("--arch aarch64 --cdrom %(EXISTIMG2)s --boot loader=CODE.fd,nvram_template=VARS.fd --disk %(EXISTIMG1)s", "aarch64-cdrom")
|
||||
c.add_compare("--arch ppc64 --machine pseries --boot network --disk %(EXISTIMG1)s --os-variant fedora20 --network none", "ppc64-pseries-f20")
|
||||
c.add_compare("--arch ppc64 --boot network --disk %(EXISTIMG1)s --os-variant fedora20 --network none", "ppc64-machdefault-f20")
|
||||
c.add_compare("--disk none --location /tmp/fake.iso --nonetworks", "location-iso") # Using --location iso mounting
|
||||
|
@ -655,9 +655,9 @@ class Guest(XMLBuilder):
|
||||
|
||||
for dev in self.get_all_devices():
|
||||
dev.set_defaults(self)
|
||||
self._add_implied_controllers()
|
||||
self._check_address_multi()
|
||||
self._set_disk_defaults()
|
||||
self._add_implied_controllers()
|
||||
self._set_net_defaults()
|
||||
self._set_input_defaults()
|
||||
self._set_graphics_defaults()
|
||||
@ -809,16 +809,39 @@ class Guest(XMLBuilder):
|
||||
self.features.hyperv_spinlocks_retries = 8191
|
||||
|
||||
def _add_implied_controllers(self):
|
||||
for dev in self.get_all_devices():
|
||||
# Add spapr-vio controller if needed
|
||||
if (dev.address.type == "spapr-vio" and
|
||||
dev.virtual_device_type == "disk" and
|
||||
not any([cont.address.type == "spapr-vio" for cont in
|
||||
self.get_devices("controller")])):
|
||||
ctrl = VirtualController(self.conn)
|
||||
ctrl.type = "scsi"
|
||||
ctrl.address.set_addrstr("spapr-vio")
|
||||
self.add_device(ctrl)
|
||||
has_spapr_scsi = False
|
||||
has_virtio_scsi = False
|
||||
has_any_scsi = False
|
||||
for dev in self.get_devices("controller"):
|
||||
if dev.type == "scsi":
|
||||
has_any_scsi = True
|
||||
if dev.address.type == "spapr-vio":
|
||||
has_spapr_scsi = True
|
||||
if dev.model == "virtio":
|
||||
has_virtio_scsi = True
|
||||
|
||||
# Add spapr-vio controller if needed
|
||||
if not has_spapr_scsi:
|
||||
for dev in self.get_devices("disk"):
|
||||
if dev.address.type == "spapr-vio":
|
||||
ctrl = VirtualController(self.conn)
|
||||
ctrl.type = "scsi"
|
||||
ctrl.address.set_addrstr("spapr-vio")
|
||||
self.add_device(ctrl)
|
||||
break
|
||||
|
||||
# Add virtio-scsi controller if needed
|
||||
if (self.os.is_arm_machvirt() and
|
||||
not has_any_scsi and
|
||||
not has_virtio_scsi):
|
||||
for dev in self.get_devices("disk"):
|
||||
if dev.bus == "scsi":
|
||||
ctrl = VirtualController(self.conn)
|
||||
ctrl.type = "scsi"
|
||||
ctrl.model = "virtio-scsi"
|
||||
self.add_device(ctrl)
|
||||
break
|
||||
|
||||
|
||||
def _check_address_multi(self):
|
||||
addresses = {}
|
||||
@ -880,6 +903,8 @@ class Guest(XMLBuilder):
|
||||
d.bus = "virtio"
|
||||
elif self.os.is_pseries():
|
||||
d.bus = "scsi"
|
||||
elif self.os.is_arm_machvirt() and d.is_cdrom():
|
||||
d.bus = "scsi"
|
||||
elif self.os.is_arm():
|
||||
d.bus = "sd"
|
||||
else:
|
||||
|
Loading…
x
Reference in New Issue
Block a user