blob: 9a815a6a20416a71407ccc6c2981cc95083a8380 [file] [log] [blame] [view]
# Getting started
## Getting access
Read access to the source is provided to all Googlers (members of
`nonconf-mirror@prod`, to be precise). Permission to submit CLs requires
membership of `hafnium-access@prod`. Full administrative rights are only granted
to members of `hafnium-admin@prod`.
## Getting the source code
``` shell
git clone --recurse-submodules sso://hafnium/hafnium && (cd hafnium && f=`git rev-parse --git-dir`/hooks/commit-msg ; curl -Lo $f https://gerrit-review.googlesource.com/tools/hooks/commit-msg ; chmod +x $f)
```
To upload a commit for review:
``` shell
git push origin HEAD:refs/for/master
```
Browse source at [go/hafnium-repo](https://goto.google.com/hafnium-repo).
Review CLs at [go/hafnium-review](https://goto.google.com/hafnium-review).
## Compiling the hypervisor
Install prerequisites:
``` shell
sudo apt install make binutils-aarch64-linux-gnu
```
By default, the hypervisor is built with clang for a few target platforms along
with tests.
``` shell
make
```
The compiled image can be found under `out/`, for example the QEMU image is at
at `out/qemu_aarch64_clang/hafnium.bin`.
## Running on QEMU
You will need at least version 2.9 for QEMU. The following command line can be
used to run Hafnium on it:
``` shell
qemu-system-aarch64 -M virt -cpu cortex-a57 -nographic -machine virtualization=true -kernel out/qemu_aarch64_clang/hafnium.bin
```
Though it is admittedly not very useful because it doesn't have any virtual
machines to run. Follow the [Hafnium RAM disk](HafniumRamDisk.md) instructions
to create an initial RAM disk for Hafnium with Linux as the primary VM.
The following command line will run Hafnium, with the RAM disk just created,
which will then boot into the primary Linux VM:
``` shell
qemu-system-aarch64 -M virt -cpu cortex-a57 -nographic -machine virtualization=true -kernel out/qemu_aarch64_clang/hafnium.bin -initrd initrd.img -append "rdinit=/sbin/init"
```
## Running tests
After building, presubmit tests can be run with the following command line:
``` shell
./kokoro/ubuntu/test.sh
```
Read about [testing](Testing.md) for more details about the tests.