Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

By default, vm will be ran using crosvm. Option -vm_manager allows us to use qemu instead.

Code Block
HOME=$(pwd) ./bin/launch_cvd -vm_manager qemu_cli -report_anonymous_usage_stats=n --start_webrtc=false

...

Cuttlefish comes with a prebuilt upstream QEMU (very recent, tracking master), located in bin/x86_64-linux-gnu/qemu/, and coming from cvd package.

...

Code Block
$ cat ../qemu-system-x86_64 
#!/usr/bin/env bash

set -euo pipefail

log()
{
    echo "$@" 1>&2
}

qemu=/home/user/.work/qemu/build/qemu-system-x86_64
sleep 1
log -------------------------------------------------------
$qemu --version
log -------------------------------------------------------
args="$(echo $@)"
args="$(echo "$args" | sed -e 's/accel=kvm/accel=tcg/g' -e 's/-cpu host/-cpu max/g') -monitor unix:$HOME/qemu-monitor-socket,server,nowait"
log "$qemu $(echo $args | tr ' ' '\n' | sed -e 's/$/ \\/')"
log -------------------------------------------------------
$qemu $args
log -------------------------------------------------------

# Now we run launch_cvd with this:
$ HOME=$(pwd) ./bin/launch_cvd -vm_manager qemu_cli -report_anonymous_usage_stats=n --start_webrtc=false -qemu_binary_dir=$(pwd)/..
...
-------------------------------------------------------
QEMU emulator version 9.0.92 (v9.1.0-rc2-68-g8d7c8cc9081)
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
-------------------------------------------------------
/home/user/.work/qemu/build/qemu-system-x86_64 -name \
guest=cvd-1,debug-threads=on \
-machine \
pc,nvdimm=on,accel=tcg,usb=off,dump-guest-core=off \
-m \
size=4096M,maxmem=4102M,slots=2 \
-overcommit \
mem-lock=off \
-smp \
2,cores=2,threads=1 \
...