From: Waldemar Kozaczuk <[email protected]> Committer: Waldemar Kozaczuk <[email protected]> Branch: master
scripts: update firecracker.py to properly support aarch64 Signed-off-by: Waldemar Kozaczuk <[email protected]> --- diff --git a/scripts/firecracker.py b/scripts/firecracker.py --- a/scripts/firecracker.py +++ b/scripts/firecracker.py @@ -20,6 +20,8 @@ devnull = open('/dev/null', 'w') +osv_base = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..') + host_arch = os.uname().machine def stty_save(): @@ -265,22 +267,15 @@ def main(options): firecracker = start_firecracker(firecracker_path, socket_path) # Prepare arguments we are going to pass when creating VM instance - kernel_path = options.kernel - if not kernel_path: - kernel_path = os.path.join(dirname, '../build/last/kernel.elf') - - qemu_disk_path = options.image - if not qemu_disk_path: - qemu_disk_path = os.path.join(dirname, '../build/last/usr.img') - raw_disk_path = disk_path(qemu_disk_path) + raw_disk_path = disk_path(options.image_path) cmdline = options.execute if not cmdline: with open(os.path.join(dirname, '../build/last/cmdline'), 'r') as f: cmdline = f.read() if options.arch == 'aarch64': - cmdline = "console=tty --disable_rofs_cache %s" % cmdline + cmdline = "console=tty --nopci %s" % cmdline else: cmdline = "--nopci %s" % cmdline @@ -323,7 +318,7 @@ def main(options): if options.networking: client.add_network_interface('eth0', 'fc_tap0') - client.create_instance(kernel_path, cmdline) + client.create_instance(options.kernel_path, cmdline) print_time("Created OSv VM with cmdline: %s" % cmdline) if not options.api: @@ -362,6 +357,10 @@ def main(options): if __name__ == "__main__": # Parse arguments parser = argparse.ArgumentParser(prog='firecracker') + parser.add_argument("-d", "--debug", action="store_true", + help="start debug version") + parser.add_argument("-r", "--release", action="store_true", + help="start release version") parser.add_argument("-c", "--vcpus", action="store", type=int, default=1, help="specify number of vcpus") parser.add_argument("-m", "--memsize", action="store", default="128M", @@ -385,7 +384,16 @@ def main(options): parser.add_argument("--arch", action="store", choices=["x86_64","aarch64"], default=host_arch, help="specify Firecracker architecture: x86_64, aarch64") - cmd_args = parser.parse_args() - if cmd_args.verbose: + cmdargs = parser.parse_args() + cmdargs.opt_path = "debug" if cmdargs.debug else "release" if cmdargs.release else "last" + if cmdargs.arch == 'aarch64': + default_kernel_file_name = "loader.img" + default_image_file_name = "disk.img" + else: + default_kernel_file_name = "kernel.elf" + default_image_file_name = "usr.img" + cmdargs.kernel_path = os.path.abspath(cmdargs.kernel or os.path.join(osv_base, "build/%s/%s" % (cmdargs.opt_path, default_kernel_file_name))) + cmdargs.image_path = os.path.abspath(cmdargs.image or os.path.join(osv_base, "build/%s/%s" % (cmdargs.opt_path, default_image_file_name))) + if cmdargs.verbose: verbose = True - main(cmd_args) + main(cmdargs) -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/0000000000006ba2e305c482b59f%40google.com.
