MCPcopy Create free account
hub / github.com/ClangBuiltLinux/boot-utils / run

Method run

boot-qemu.py:288–338  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

286 self._qemu_path = Path(qemu_path)
287
288 def run(self) -> None:
289 # Make sure QEMU binary is configured and available
290 self._set_qemu_path()
291
292 # Locate kernel (may be done earlier in subclasses)
293 self._set_kernel_vars()
294
295 # EFI:
296 if self.efi:
297 self._qemu_args += [
298 '-drive', f"if=pflash,format=raw,file={self._efi_img},readonly=on",
299 '-drive', f"if=pflash,format=raw,file={self._efi_vars}",
300 '-object', 'rng-random,filename=/dev/urandom,id=rng0',
301 '-device', 'virtio-rng-pci',
302 ] # fmt: off
303
304 # Kernel options
305 if self.interactive or self.gdb:
306 self.cmdline.append('rdinit=/bin/sh')
307 if self.gdb:
308 self.cmdline.append('nokaslr')
309 if self.cmdline:
310 self._qemu_args += ['-append', ' '.join(self.cmdline)]
311 if self._dtbs:
312 self._qemu_args += ['-dtb', self._find_dtb()]
313 self._qemu_args += ['-kernel', self.kernel]
314 self._qemu_args += ['-initrd', self._prepare_initrd()]
315
316 # KVM
317 if self.use_kvm:
318 if not self.smp:
319 self.smp = self._get_default_smp_value()
320 self._qemu_args += ['-cpu', ','.join(self._kvm_cpu), '-enable-kvm']
321
322 # Machine specs
323 self._qemu_args += ['-m', self.memory]
324 if self.smp:
325 self._qemu_args += ['-smp', str(self.smp)]
326
327 # Show information about QEMU
328 utils.green(f"QEMU location: \033[0m{self._qemu_path.parent}")
329 utils.green(f"QEMU version: \033[0m{self._get_qemu_ver_string()}")
330
331 if self.gdb:
332 self._qemu_args += ['-s', '-S']
333
334 self._run_gdb()
335 else:
336 self._qemu_args += ['-serial', 'mon:stdio']
337
338 self._run_fg()
339
340
341class ARMEFIQEMURunner(QEMURunner):

Callers 15

_get_kernel_ver_tupleMethod · 0.45
_get_qemu_ver_stringMethod · 0.45
_run_fgMethod · 0.45
_run_gdbMethod · 0.45
runMethod · 0.45
_can_use_kvmMethod · 0.45
runMethod · 0.45
runMethod · 0.45
__init__Method · 0.45
runMethod · 0.45
runMethod · 0.45
runMethod · 0.45

Calls 8

_set_qemu_pathMethod · 0.95
_set_kernel_varsMethod · 0.95
_find_dtbMethod · 0.95
_prepare_initrdMethod · 0.95
_get_qemu_ver_stringMethod · 0.95
_run_gdbMethod · 0.95
_run_fgMethod · 0.95

Tested by

no test coverage detected