You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Allow running
╭───── VM Created ──────╮
│ Created VM 'sbx-ohm'. │
╰───────────────────────╯
VM Details
┌─────────┬─────────────────────────┐
│ Name │ sbx-ohm │
│ Status │ running │
│ OS │ ubuntu │
│ Started │ 2026-06-26 17:17:51 UTC │
└─────────┴─────────────────────────┘
Next: smolvm sandbox shell sbx-ohm
SSH: smolvm sandbox ssh sbx-ohm
Info: smolvm sandbox info sbx-ohm inside a SmolVM sandbox guest.
Changes:
- backends.py: add _running_inside_smolvm_guest() that detects nested
context via SMOLVM_NESTED env var or /run/smolvm-guest marker file;
auto-selects QEMU backend when nested instead of Firecracker
- qemu_args.py: force TCG accelerator when running inside a guest
(no KVM available); reads SMOLVM_QEMU_ACCEL env var first so it
can still be overridden explicitly
- comm/select.py: disable vsock when nested (no /dev/vhost-vsock in
guest); falls back to SSH for the control channel
- cloud_init.py: write nested env vars to /etc/environment (not just
profile.d), add /etc/pip.conf, write /run/smolvm-guest in bootcmd,
install arch-aware qemu-system package in runcmd
- Dockerfile.base-rootfs: bake python3-pip, python3-venv, qemu-utils,
qemu-system-arm/x86 (arch-detected), nftables into the base image
- preset-init.sh: write /run/smolvm-guest marker and /etc/pip.conf
at PID 1 startup on every boot
- tests/test_qemu_args.py: patch _KVM_DEV and _SMOLVM_GUEST_MARKER
in autouse fixture so Linux host simulation works from macOS runner
After image rebuild and new release, the user flow becomes:
smolvm sandbox create --name my-computer --memory 2048
smolvm sandbox ssh my-computer
pip install smolvm
smolvm sandbox create --name inner --os ubuntu --memory 512 --boot-timeout 300
0 commit comments