Building ARMv8 world/host/guest. (On a FreeBSD virtual machine)
The scripts can be found in this utils repository: https://github.com/FreeBSD-UPB/bhyvearm64-utils
Change the paths in `host.json`, `guest_kernel.json` and `disk.json` accordingly.
./build.py --config config/arm64/host.json --build buildworld
./build.py --config config/arm64/guest_kernel.json --build buildkernel
./build.py --config config/arm64/host.json --build buildkernel
./build.py --config config/arm64/host.json --build installworld
./build.py --config config/arm64/host.json --build installkernel
ARM Foundation Platform emulator - Cortex A53
(On a FreeBSD virtual machine - utils repository)
./disk.py --config config/arm64/disk.json
(On Linux host)
Copy the generated `disk.img` from the FreeBSD virtual machine on the Linux host.
./run_image.sh
An XTerm terminal will show up. Inside it, the following script will start a virtual machine:
./virtio_run.sh
On ESPRESSOBin
After `installworld` and `installkernel`, in the filesystem's root directory, copy the `virtio_run.sh` script from the utils repository and the guest kernel.
Start the host FreeBSD and run the `virtio_run.sh` script. It will load the `vmm` module, load the guest kernel using `bhyveload` and start the virtual machine.
At this point the virtual machine supports only one vcpu.
---------------
The auxiliary files (custom kernel configs or device trees) have been moved in the utils repository, in the `freebsd` directory.