shithub: wiki.9front.org

Download patch

ref: fb7323b2d03904e8ada25974c5edd5e3a5cee00e
parent: 4f831b5f21af05a557657dc4e18b135a80fee637
author: kws <kws@cirno>
date: Sat Oct 28 20:27:53 EDT 2023

qemu-arm64: remove guide

--- a/qemu-arm64.md
+++ /dev/null
@@ -1,49 +1,0 @@
-QEMU arm64
-==========
-
-The existing arm64 kernels for the RPi and IMX.8 are unsuitable for use
-in hardware-accelerated VMs because they rely on specific CPU features (such as 64K page sizes and physical timers) which are not available on all hypervisors (such as Apple's Hypervisor.framework). Additionally, they do not support QEMU-emulated hardware such as the ECAM-based PCIe bus nor VirtIO drivers.
-
-Thankfully, there is a community kernel which provides all the modifications available to run fully hardware-accelerated VMs via KVM (Linux) or Hypervisor.framework (macOS) through QEMU.
-
-## Kernel Build and Installation Image
-
-Clone and build the kernel:
-
-	cd /sys/src/9/
-	git/clone git://shithub.us/kws/qemu
-	cd qemu
-	mk
-
-Then, on a host machine, download the MNT Reform image which is suitable as a base system (available in the Downloads section).
-
-## Install
-
-Create a plan9.ini which describes the QEMU configuration (this is required because the kernel does not parse device trees for memory and CPU topology), e.g. for 4 CPUs and 4GB of RAM:
-
-	console=0
-	*ncpu=4
-	*maxmem=0x140000000
-
-Create an installation disk:
-
-	qemu-img create -f qcow2 9front.qcow2 64G
-
-Perform an install e.g. for macOS Hypervisor.framework:
-
-	qemu-system-aarch64 -M virt-2.12,accel=hvf,gic-version=3 \
-		-cpu host -smp 4 -m 4G \
-		-device loader,file=9qemu,addr=0x40200000,force-raw=on,cpu-num=0 \
-		-device loader,file=plan9.ini,addr=0x40100000,force-raw=on \
-		-drive file=9front.reform.img,format=raw,if=none,id=reform \
-		-drive file=9front.qcow2,if=none,id=disk \
-		-device virtio-blk-pci-non-transitional,drive=reform \
-		-device virtio-blk-pci-non-transitional,drive=disk \
-		-serial stdio
-
-Explanation:
-
-* `virt-2.12` is required because newer virt versions place ECAM is high memory which is a headache
-* `gic-version=3` is required as the kernel assumes GICv3 but QEMU defaults to GICv2
-* The `-device loader` lines place the kernel and configuration in specific regions of memory so we can avoid the use of a bootloader altogether which results in instantaneous boot times
-* VirtIO devices require the `non-transistional` flag, otherwise they use the old version of the emulated device which has a broken configuration layout