Background

Crosvmis a device model based onRustlanguage.Chrome OSusesCrosvmalong withKVMto provide virtualization solution.

Install Rust and Dependencies

sudo apt-get install -y libcap-dev libfdt-dev
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env 

BuildCrosvm

git clone https://github.com/calinyara/crosvm.git
cd crosvm
./build.sh

Compiledcrosvmwill be located in crosvm/target/release/.

InstallCrosvm

sudo cp minijail/libminijail.so /usr/lib
sudo cp crosvm/target/release/crosvm /usr/bin

Build Kernel and Rootfs with Buildroot

git clone https://github.com/buildroot/buildroot.git cd buildroot wget https://raw.githubusercontent.com/calinyara/crosvm/master/configs/buildroot.config mv buildroot.config .config cd Board wget HTTP: / / https://raw.githubusercontent.com/calinyara/crosvm/master/configs/linux.config-5.3.x-x86_64 / PC CD.. /.. make

CompiledbzImageandrootfs.ext4will be located in output/images.

Try Crosvm

Start a VM, login with root without password

crosvm run --disable-sandbox --rwroot rootfs.ext4 -s crosvm.sock bzImage

Stop the VM, in another shell window run following command

crosvm stop crosvm.sock