virt-install: Add --boot dtb=DTB support

Allows passing in a device tree binary to the guest. Needed for
some non-x86 configurations.
This commit is contained in:
Cole Robinson
2013-08-16 19:25:26 -04:00
parent 5fd874e231
commit e02fa9b4fe
6 changed files with 12 additions and 2 deletions

View File

@ -350,6 +350,12 @@ network PXE boot. Additionally enable BIOS boot menu prompt.
Have guest permanently boot off a local kernel/initrd pair, with the
specified kernel options.
=item B<--boot kernel=KERNEL,initrd=INITRD,dtb=DTB
Have guest permanently boot off a local kernel/initrd pair with an
external device tree binary. DTB can be required for some non-x86
configurations like ARM or PPC
=item B<--boot loader=BIOSPATH>
Use BIOSPATH as the virtual machine BIOS. Only valid for fully virtualized

View File

@ -646,7 +646,7 @@ vinst.add_valid("install", "--hvm --cdrom %(ROIMG)s") # Using ro path as a cd m
vinst.add_valid("install", "--paravirt --location %(TREEDIR)s --os-variant none") # Paravirt location with --os-variant none
vinst.add_valid("install", "--hvm --location %(TREEDIR)s --os-variant fedora12") # URL install with manual os-variant
vinst.add_valid("install", "--hvm --pxe --boot menu=on") # Boot menu
vinst.add_valid("install", "--hvm --pxe --boot kernel=/tmp/foo1.img,initrd=/tmp/foo2.img,kernel_args='ro quiet console=/dev/ttyS0' ") # Kernel params
vinst.add_valid("install", "--hvm --pxe --boot kernel=/tmp/foo1.img,initrd=/tmp/foo2.img,dtb=/tmp/foo2.dtb,kernel_args='ro quiet console=/dev/ttyS0'") # Kernel params
vinst.add_valid("install", "--hvm --pxe --boot cdrom,fd,hd,network,menu=off") # Boot order
vinst.add_valid("install", "--hvm --boot network,hd,menu=on") # Boot w/o other install option
vinst.add_invalid("install", "--hvm --pxe --virt-type bogus") # Bogus virt-type

View File

@ -10,6 +10,7 @@
<kernel>foo.img</kernel>
<initrd>bar.img</initrd>
<cmdline>ks=foo.ks</cmdline>
<dtb>/baz.dtb</dtb>
<boot dev="cdrom"/>
</os>
<features>

View File

@ -218,6 +218,7 @@ class XMLParseTest(unittest.TestCase):
check("enable_bootmenu", False, True)
check("kernel", None, "foo.img")
check("initrd", None, "bar.img")
check("dtb", None, "/baz.dtb")
check("kernel_args", None, "ks=foo.ks")
self._alter_compare(guest.get_xml_config(), outfile)

View File

@ -1310,6 +1310,7 @@ def parse_boot(guest, optstring):
set_param("enable_bootmenu", "menu", menu)
set_param("kernel", "kernel")
set_param("initrd", "initrd")
set_param("dtb", "dtb")
set_param("loader", "loader")
set_param("kernel_args", ["kernel_args", "extra_args"])

View File

@ -77,7 +77,7 @@ class OSXML(XMLBuilder):
_XML_ROOT_XPATH = "/domain/os"
_XML_PROP_ORDER = ["arch", "os_type", "loader",
"kernel", "initrd", "kernel_args",
"kernel", "initrd", "kernel_args", "dtb",
"_bootdevs"]
def _get_bootorder(self):
@ -95,6 +95,7 @@ class OSXML(XMLBuilder):
kernel = XMLProperty(xpath="./os/kernel")
initrd = XMLProperty(xpath="./os/initrd")
kernel_args = XMLProperty(xpath="./os/cmdline")
dtb = XMLProperty(xpath="./os/dtb")
init = XMLProperty(xpath="./os/init")
loader = XMLProperty(xpath="./os/loader")