Versions Compared

Key

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

...

Note: I have not been able to launch any aarch64 image vm from a Linux/Windows x64 host. It seems like command line generated is incorrect for any Android image (>= 7.0). So virtualization seems to be the only solution working nowadays.

...

4. Run Cuttlefish

By default, image 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 \
...