parch-riscv/startqemu.sh
Felix Yan 9fc89f348e
feat: Enable networking and use systemd-nspawn instead of arch-chroot (#9)
- Enable networking by default as it's often useful.
- Use systemd-nspawn instead of arch-chroot because the latter is known
  to be fragile and often results in mounts not being cleaned up
  correctly and broken images.
2022-12-01 22:06:37 +08:00

30 lines
764 B
Bash
Executable file

#!/usr/bin/bash
#
# SPDX-FileCopyrightText: 2022 Celeste Liu <coelacanthus@outlook.com>
# SPDX-License-Identifier: GPL-3.0-or-later
# shellcheck disable=1091
. /usr/share/makepkg/util.sh
colorize
parse-args() {
local OPTIND=1
shift "$(( OPTIND-1 ))"
file=${1:-archriscv-$(date --rfc-3339=date).qcow2}
}
parse-args "$@"
msg "Starting qemu"
qemu-system-riscv64 \
-nographic \
-machine virt \
-smp 8 \
-m 4G \
-netdev user,id=n0 -device virtio-net,netdev=n0 \
-bios ./opensbi_fw_payload.bin \
-device virtio-blk-device,drive=hd0 \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-rng-device,rng=rng0 \
-drive file="$file",format=qcow2,id=hd0 \
-monitor unix:/tmp/qemu-monitor,server,nowait