Thanks for the contribution! See below for questions.

In message: [PATCH v4 1/1] crosvm: add recipe for ChromeOS Virtual Machine 
Monitor (VMM)
on 19/02/2026 Keerthivasan Raghavan wrote:

> Introduces a new recipe for integrating crosvm into the
> meta-virtualization layer. crosvm is a lightweight, Rust-based virtual

We can drop the "meta-virtualization layer" from the description,
we know the layer just by it being here :)

> machine monitor originally developed for ChromeOS, and provides an
> alternative to traditional VMMs such as QEMU.
> 
> Adding crosvm to meta-virtualization offers users of the layer a modern,
> secure-by-design VMM option suited for embedded, containerized, and edge
> computing deployments.

We can drop the marketing for crosvm from the commit. Users
will make their own choice on what they want to use, so we
don't need the elevator pitch.

> 
> Build tested using meta-qcom MACHINE(qcs9100-ride-sx, aarch64)
> and meta-qcom-distro DISTRO(qcom-distro-kvm). Runtime is validated by
> running VM till boot-to-shell. The kernel and rootfs used are same
> as that of the target.

Which unfortunately means I'd have no way of being able to
build and test it myself. Getting this working under
genericarm64 or better qemuarm64 machine definitions (at list
minimal functionality is critical for being able to support
it).

> 
> Command used to run the VM:
> crosvm --log-level "debug,disk=off" run \
>        --disable-sandbox  /boot/Image \
>        --block /rootfs.img,root \
>        -p "console=ttyS0 root=/dev/vda rw"

I've started creating a pytest infrastructure for new packages
(and eventually the old ones) in the layer. If we get a machine
working that is more generic, we can add those. At a minimum
a README along side the recipe with testing instructions should
be done.

> 
> Signed-off-by: Keerthivasan Raghavan <[email protected]>
> ---
>  recipes-devtools/crosvm/crosvm-crates.inc | 966 ++++++++++++++++++++++
>  recipes-devtools/crosvm/crosvm_0.1.0.bb   |  26 +
>  2 files changed, 992 insertions(+)
>  create mode 100644 recipes-devtools/crosvm/crosvm-crates.inc
>  create mode 100644 recipes-devtools/crosvm/crosvm_0.1.0.bb
> 
> diff --git a/recipes-devtools/crosvm/crosvm-crates.inc 
> b/recipes-devtools/crosvm/crosvm-crates.inc
> new file mode 100644
> index 00000000..5cc3fa9e
> --- /dev/null
> +++ b/recipes-devtools/crosvm/crosvm-crates.inc
> @@ -0,0 +1,966 @@
> +# Autogenerated with 'bitbake -c update_crates crosvm'
> +
> +# from Cargo.lock
> +SRC_URI += " \
> +    crate://crates.io/addr2line/0.21.0 \
> +    crate://crates.io/adler/1.0.2 \
> +    crate://crates.io/ahash/0.8.6 \
> +    crate://crates.io/aho-corasick/0.7.18 \

<snip>

> +    crate://crates.io/zerocopy-derive/0.8.14 \
> +    crate://crates.io/zeroize/1.5.7 \
> +    crate://crates.io/zstd/0.13.2 \
> +    crate://crates.io/zstd-safe/7.2.1 \
> +    crate://crates.io/zstd-sys/2.0.13+zstd.1.5.6 \
> +"
> +
> +SRC_URI[addr2line-0.21.0.sha256sum] = 
> "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
> +SRC_URI[adler-1.0.2.sha256sum] = 
> "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
> +SRC_URI[ahash-0.8.6.sha256sum] = 
> "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"

<snip>

> +SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = 
> "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
> +SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = 
> "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
> +SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = 
> "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
> +SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = 
> "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
> diff --git a/recipes-devtools/crosvm/crosvm_0.1.0.bb 
> b/recipes-devtools/crosvm/crosvm_0.1.0.bb
> new file mode 100644
> index 00000000..4cbe9879
> --- /dev/null
> +++ b/recipes-devtools/crosvm/crosvm_0.1.0.bb
> @@ -0,0 +1,26 @@
> +SUMMARY = "crosvm"

crossvm is a little bit short for SUMMARY :)

> +
> +DESCRIPTION = "Rust-based KVM virtual machine monitor with a minimal, \
> +               security-focused architecture and sandboxed device processes."
> +
> +HOMEPAGE = "https://github.com/google/crosvm";
> +
> +LICENSE = "BSD-3-Clause-Clear"

With that many crates. Are there really no variation in
the license at all ? Note: other recipes are guilty of this as
well, and it's on my list to fix the up as well.

> +LIC_FILES_CHKSUM = 
> "file://${COMMON_LICENSE_DIR}/BSD-3-Clause-Clear;md5=7a434440b651f4a472ca93716d01033a"
> +
> +inherit cargo pkgconfig cargo-update-recipe-crates features_check
> +
> +SRC_URI = 
> "gitsm://chromium.googlesource.com/crosvm/crosvm.git;branch=main;protocol=https"

I'm on the record as really not liking gitsm fetched repos
(see the ones I've expanded in meta-virtualization previously),
since it makes it very hard to bump the components of have
visibility into what is being cloned.

I probably won't insist on it, but have you tried breaking
this down into the individual clones ?

> +SRCREV = "b04c13a65b93034010b20612e3566d4f9d83c4f0"
> +
> +PKGV = "0.1.0+git${SRCPV}"

I think there are some stragglers in the layer, and maybe it
is my memory of PV crossing with PKGV (I prefer we use PV), but
do we need the ${SRCPV} ? the +git normally triggers it to
be filled in.

> +
> +DEPENDS += "libcap wayland wayland-native protobuf-native wayland-protocols"

With the hard dependency on wayland, is this always graphical ?

> +
> +REQUIRED_DISTRO_FEATURES = "kvm"
> +
> +COMPATIBLE_HOST = "(aarch64|x86_64).*-linux.*"
> +
> +BBCLASSEXTEND = "native"

Why the native variant ?

Bruce

> +
> +require crosvm-crates.inc
> -- 
> 2.34.1
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#9601): 
https://lists.yoctoproject.org/g/meta-virtualization/message/9601
Mute This Topic: https://lists.yoctoproject.org/mt/117952091/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-virtualization/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

  • Re: [meta-virtualization] [PATCH... Bruce Ashfield via lists.yoctoproject.org

Reply via email to