import os import shutil import subprocess sysroot = os.environ['MEADOW_SYSROOT'] native_root = os.environ['MEADOW_NATIVE_ROOT'] tmp = os.environ['MEADOW_TEMP'] bsp = os.path.join(sysroot, 'boot', 'rosetta-system.bsp') kernel_exe = os.path.join(sysroot, 'boot', 'magenta_kernel') kernel_exe_elf32 = os.path.join(tmp, 'magenta_kernel.elf32') e64patch = os.path.join(native_root, 'bin', 'e64patch') shutil.copyfile(kernel_exe, kernel_exe_elf32) subprocess.run([ e64patch, kernel_exe_elf32 ]) qemu_args = [ 'qemu-system-x86_64', '-m', '128M', '-cpu', 'qemu64,+rdrand', '-kernel', kernel_exe_elf32, '-initrd', bsp, '-serial', 'stdio', '--append', 'kernel.early-console=ttyS0' ] try: subprocess.run(qemu_args) except KeyboardInterrupt: pass