No description
Find a file
Dennis Kempin e577c91efc dev_container: Always run as root inside container
Since we default to podman, we can get rid of the _user container and
run as root inside the container, which greatly simplifies the tooling.

This also allows us to provide a single, default devcontainer.json
for local development as well as codespaces.

podman can be used with this devcontainer.json as well, e.g. in
VSCode by setting:

"dev.containers.dockerPath": "podman"

The with_kvm/devcontainer.json can be used to add access to kvm, which
may not be available on all machines. So it's an optional config.

BUG=b:273529620
TEST=Open with devcontainer in VSCode with both docker and podman,
run `presubmit --no-delta`
TEST=tools/dev_container tools/presubmit --no-delta

Change-Id: I10e04898a0e1adb6e4939f6f2e0259dc9b9aa62d
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4419666
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Zihan Chen <zihanchen@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2023-04-25 21:33:42 +00:00
.cargo tools: Do not use pip to install python packages 2023-02-27 19:24:18 +00:00
.config tools/run_tests2: Prepare for CI usage 2023-02-09 00:09:02 +00:00
.devcontainer dev_container: Always run as root inside container 2023-04-25 21:33:42 +00:00
.github Cleanup: Remove old, deprecated and no longer used files 2022-09-20 21:05:57 +00:00
.vscode Document feature flags and introduce new feature sets 2022-10-14 20:31:19 +00:00
aarch64 aarch64: Merge adjacent regions in FDT memory node. 2023-04-20 10:23:20 +00:00
acpi_tables acpi: Mark structs as repr(C, packed) 2023-02-08 21:32:43 +00:00
anti_tamper kiwi: clean anti_tamper and metrics related code 2023-01-04 00:08:27 +00:00
arch arch: Create GuestMemory with MemoryRegionOptions 2023-03-29 00:52:24 +00:00
argh_helpers Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
audio_util tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
base base: remove redundant &format!() reference 2023-04-17 21:20:57 +00:00
bit_field bit_field: suppress clippy cast warnings 2023-04-10 23:41:28 +00:00
broker_ipc Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
common p9: account for header in maximum message size 2023-04-24 19:25:36 +00:00
crash_report metrics: Add missing process types 2023-02-22 20:01:38 +00:00
cros_async cros_async: rename TimerAsync::next_val to TimerAsync::wait 2023-04-19 08:44:15 +00:00
cros_fdt crosvm: fdt: Add option to dump generated devicetree blob 2023-03-16 18:16:28 +00:00
cros_tracing cros_tracing: Add trace_marker integration tests 2023-04-12 01:21:39 +00:00
crosvm-fuzz tree-wide: remove unnecessary casts 2023-04-17 23:43:59 +00:00
crosvm_cli crosvm_cli: implement exit_context() for Option 2023-03-28 20:13:06 +00:00
crosvm_control balloon: return balloon_actual with wss 2023-04-17 21:32:23 +00:00
crosvm_plugin Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
devices Revert "devices: Add some log for debugging purpose." 2023-04-25 19:33:50 +00:00
disk tree-wide: remove unnecessary casts 2023-04-17 23:43:59 +00:00
docs/book crosvm: cmdline: allow cfg to be used in configuration files 2023-04-25 06:30:48 +00:00
e2e_tests Cargo.toml: remove crosvm-direct binary 2023-04-17 23:54:48 +00:00
fuse tree-wide: remove unnecessary casts 2023-04-17 23:43:59 +00:00
gpu_display gpu_display: allow xlib::Window to u64 casts 2023-04-10 19:55:20 +00:00
hypervisor tree-wide: remove unnecessary casts 2023-04-17 23:43:59 +00:00
infra Roll recipe dependencies (trivial). 2023-04-24 22:44:23 +00:00
io_uring tree-wide: remove unnecessary casts 2023-04-17 23:43:59 +00:00
jail seccomp: aarch64: Allow pwrite64 for block device 2023-04-11 17:19:35 +00:00
kernel_cmdline Rust 1.65: Fix clippy derive_partial_eq_without_eq lints 2022-12-01 01:32:30 +00:00
kernel_loader tree-wide: remove unnecessary casts 2023-04-17 23:43:59 +00:00
kvm kvm: Add some riscv cfg guards 2023-04-25 00:13:57 +00:00
kvm_sys kvm_sys: initial riscv64 bindings 2023-04-25 00:13:57 +00:00
libcras_stub devices: snd: Use PCM device client_type and stream_type for CRAS 2023-03-02 06:22:40 +00:00
linux_input_sys crosvm: Convert DataInit to zerocopy 10/n 2023-03-24 18:12:38 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
media tree-wide: remove unnecessary casts 2023-04-17 23:43:59 +00:00
metrics metrics: Add missing process types 2023-02-22 20:01:38 +00:00
net_sys Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
net_util base: fix unsafe overlapped read/write marked safe. 2023-03-14 18:42:38 +00:00
power_monitor tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
prebuilts prebuilds/testvm: Retry downloads 2023-03-09 23:04:20 +00:00
proto_build_tools proto_build_tools: dont fail silently 2023-01-31 18:03:00 +00:00
protos Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
qcow_utils Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
resources resource: system_allocator: introduce GPE allocator 2023-02-06 22:02:37 +00:00
rutabaga_gfx rutabaga_gfx: nuke unnecessary gfxstream flags 2023-04-25 17:32:51 +00:00
sandbox vhost-user: snd: Implement Windows broker & device setup 2023-02-28 21:34:01 +00:00
serde_keyvalue Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
src rutabaga_gfx: nuke unnecessary gfxstream flags 2023-04-25 17:32:51 +00:00
swap swap: fix deadlock on the vmm-swap enable operation 2023-04-03 06:03:18 +00:00
system_api Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
tests Enable parallel execution of plugin and e2e tests 2023-01-26 20:38:57 +00:00
third_party crosvm: Convert DataInit to zerocopy 10/n 2023-03-24 18:12:38 +00:00
tools dev_container: Always run as root inside container 2023-04-25 21:33:42 +00:00
tpm2 Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
tpm2-sys Uprev the libtpm2 to 96017dcdb110 2023-03-07 04:05:49 +00:00
tube_transporter crosvm: Uprev rust toolchain and dev container 2023-02-08 20:26:30 +00:00
usb_sys Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
usb_util devices: usb: Set the PORT SPEED field in the PORTSC register to a correct value 2023-04-05 07:44:42 +00:00
vfio_sys bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
vhost tree-wide: remove unnecessary casts 2023-04-17 23:43:59 +00:00
virtio_sys bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
vm_control vm_control: refresh Irqchip Event tokens on restore. 2023-04-21 18:18:12 +00:00
vm_memory tree-wide: remove unnecessary casts 2023-04-17 23:43:59 +00:00
win_audio devices: virtio: snd: Implement file backend for VirtioSnd 2023-03-21 07:46:05 +00:00
win_util win_util: upgrade to windows 0.39.0. 2023-04-11 21:56:19 +00:00
x86_64 tree-wide: remove unnecessary casts 2023-04-17 23:43:59 +00:00
.dockerignore add docker supported builds and tests 2019-05-15 13:36:19 -07:00
.envrc Automatically register tools/ on PATH 2023-03-03 00:33:15 +00:00
.gitignore Automatically register tools/ on PATH 2023-03-03 00:33:15 +00:00
.gitmodules health-check: Add infra checks 2022-08-18 00:17:04 +00:00
.rustfmt.toml rustfmt, win_util: update to 2021 edition 2022-05-31 23:35:02 +00:00
ARCHITECTURE.md jail: create jail crate from jail_helpers.rs 2023-02-14 00:24:55 +00:00
Cargo.lock Update argh to 0.1.10 2023-04-21 05:21:02 +00:00
Cargo.toml Update argh to 0.1.10 2023-04-21 05:21:02 +00:00
CONTRIBUTING.md book: Reviewed CONTRIBUTING.md 2023-03-03 02:28:37 +00:00
DIR_METADATA DIR_METADATA: Add public buganizer component 2022-09-21 17:43:59 +00:00
LICENSE Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
mypy.ini Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
OWNERS OWNERS: Add takayas@ to OWNERS 2023-04-24 11:15:25 +00:00
OWNERS_COUNCIL Require council review for changes to Cargo.lock 2022-12-01 18:50:48 +00:00
PRESUBMIT.cfg Cleanup: Remove old, deprecated and no longer used files 2022-09-20 21:05:57 +00:00
pyproject.toml Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
README.chromeos.md crosvm: update book and doc links to crosvm.dev 2022-07-29 22:54:01 +00:00
README.md Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
rust-toolchain rust-toolchain: Add llvm-tools-preview 2023-02-10 20:47:41 +00:00

crosvm - The ChromeOS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linuxs KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the ChromeOS platform. Compared to QEMU, crosvm doesnt emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on ChromeOS devices.

Logo