Releases: arighi/virtme-ng
virtme-ng v1.32
Happy new year! virtme-ng v1.32 is out!
We're kicking off with an exciting new release with some new features. The most notable being the remote console (vsock), thanks to @matttbe, and SSH support.
The remote console (--console / --console-client
) allows you to open a console session on a running vng instance from another terminal, which can be really useful for inspecting tests/workloads while they're running in the primary console.
The SSH support (--ssh / --ssh-client
) enables direct ssh/scp access to a running vng instance, making it particularly useful to transfer data, such as large test outputs, from the guest to the host and vice-versa. Since these are all new features, I expect to see some bugs, so don't hesitate to report them.
Additionally, there's a new command --numa-distance
, that can be used to simulate heterogeneous NUMA nodes with different distance costs.
Enjoy!
Detailed ChangeLog:
Andrea Righi (6):
numa: introduce --numa-distance
virtme-init: Start udev after mounting all filesystems
virtme: enable ssh support
virtme-ng: introduce --console and --ssh shortcuts
sshd: generate a custom sshd_config
virtme-ng v1.32
Marcos Paulo de Souza (1):
virtme-init: Enable lvm usage
Matthieu Baerts (NGI0) (24):
net: support multiple interfaces
udhcpc: add default route if announced
net: allow to specify the bridge iface
net: option to force net MAC address
github: pylint: new supported versions
feat: vsock support for remote console access
vsock: connect: generate helper script
vsock: connect: pass command to execute
vsock: connect: avoid issues with modified script
make: build virtme-ng-init by default
vsock: connect: support commands without tty
vsock: connect: execute given cmd with right user
vsock: connect: only use 'su' if needed
vng: pass '--user root' to virtme-run
vsock: connect: respect '--user' if defined
vsock: connect: respect '--pwd' and '--cwd' if defined
vsock: 'socat' is required
vsock: rename options to --client/--server
console: port: switch to 2222 by default
console: --client and --server are mutually excl
console: client: support --dry-run
README: mention 'socat' in the requirements
github: restrict builds on push to the main branch
sshd: look for overlayfs before modifying auth keys
Michal Suchanek (1):
setup.py: Do not fail when argparse-manpage is not available
Tamir Duberstein (2):
Revert "Merge pull request #184 from hramrach/main"
Restore bash completions
jeromecst (1):
Update README.md
v1.31
virtme-ng v1.31 released!
This is a minor release to fix a packaging issue, after an attempt to modernize the build system we realized that we were not installing the bash completion file anymore, so we have temporarily reverted the change to cut this new release.
This is mostly for distro that may have missed the bash completion and the default config file with the previous release (v1.30).
In addition to this packaging fix, there is also the initial support to run virtme-ng on macOS, which is pretty cool (thanks @tamird)!
Detailed ChangeLog:
Andrea Righi (2):
setup.py: update contact email
virtme-ng v1.31
Michal Suchanek (1):
Revert "Modernize build system"
Tamir Duberstein (4):
Make it build on macOS
Remove redundant initialization
Remove usage of os.uname
Make qemu work on macOS
v1.30
virtme-ng v1.30 is out!
The most noticeable changes in this new version are the initial support for NVIDIA GPUs passthrough (thanks to @ianm-nv), the possibility to use pre-compiled -rc kernels from Ubuntu mainline builds, the possibility to use virtiofs natively on arm64, some improvements to run virtme-ng cross-architecture and cross-distro and the usual set of bug fixes.
Future plans include the generalization of PCI passthrough support (not only GPUs) and improving the cross-architecture support.
Detailed ChangeLog:
Andrea Righi (13):
vng: allow to use -rc kernels from Ubuntu mainline builds
virtme: fix lint warnings in architectures.py
virtme: fix regex lint warning
virtme: fix "too many arguments" warning in cpiowriter
virtme-ng: fix "too many positional arguments" lint warnings
architectures: GPU passthrough
virtme-ng: fix incorrect cross-compile override
virtme-ng: handle undefined release with --root
virtme-ng: auto-detect host architecture
virtme-ng: allow to specify multiple --rwdir and --rodir
doc: update contact email
readme: add Linux Foundation mentorship session about virtme-ng
virtme-ng v1.30
Andrew Kreimer (2):
readme: fix a typo
virtme: fix typos
Anisse Astier (2):
virtme: fix regex expecting a group
virtme-ng: only match a single downloaded kernel on arm64
Ian May (2):
vng: add support for passthrough NVIDIA GPUs
doc: update README.md with gpu passthrough setup
Jean-Baptiste Denis (1):
Add Kernel Recipies 2024 talk link in the README
Jens Axboe (1):
virtme: enable virtiofs support for arm64
Marcos Paulo de Souza (4):
virtme: commands: run.py: Make get_kernel_version more accurate
virtme: Enable -r argument to work on more architectures
virtme: commands: run.py: Search for kernel version of the file name as fallback
virtme: architectures: Add "image" as s390x image name
Matthieu Baerts (NGI0) (2):
Revert "fix command to install vng_init in pipx"
version: fallback if no git tags
Ricardo B. Marliere (1):
Add hint when trying to create root filesystem outside a Debian host
Tamir Duberstein (1):
Modernize build system
patso (2):
add setuptools to requirements.txt
fix command to install vng_init in pipx
v1.29
virtme-ng v1.29 has been released just with a minor packaging fix, addressing an issue where the requirements.txt
file was missing from the source tarball published on PyPI.
This won't affect anyone, unless you're trying to build virtme-ng directly from the tarball available on PyPI.
v1.28
virtme-ng v1.28 is out!
No major changes in this release, just a few bug fixes that are worth for cutting a new release and a small boot time improvement, so, it's pretty safe to update.
Detailed ChangeLog:
Andrea Righi (4):
setup.py: include dependencies parsing requirements.txt
virtme-ng: fix typo in command help
virtme-configkernel: disable nvram support
virtme-ng v1.28
Jim Cromie (6):
configkernel: config comment cosmetics
configkernel: act more like kernel's make O=outdir
vng-run: get kdir from O=outdir
vng: propagate --verbose to configkernel
vng: alias --custom to --config
run.py: add a --qemu-opts='...' option bundling hint to help
Ricardo Ribalda (1):
init: Always create /run/tmp folder
Stephen Brennan (2):
Don't require ".git" to be a directory
Specify "refs/heads/__virtme__" in git push
v1.27
There are no changes in this new v1.27 release, just bumping up the version to fix a packaging issue with Pypi.
<insert "Nothing to see here. Please disperse." meme>
Detailed ChangeLog
Andrea Righi (2):
version: introduce VNG_PACKAGE to force a proper packaging version
virtme-ng v1.27
v1.26
virtme-ng v1.26 is out!
The most noticeable changes are: the proper integration with Arch Linux (thanks for the CachyOS https://cachyos.org/ community for the help!), the inclusion of a vng manpage, the host's /tmp
is now also visible from the guest, a new --configitem
option that allows to quickly change specific kernel config options (with --build
) and the usual set of bug fixes.
Detailed ChangeLog below.
Andrea Righi (19):
virtme-ng: export real /tmp to guest
init: move all temp files to /run/tmp
virtme-ng: provide a man page for vng
virtme-ng: check validity of rwdir paths
virtme-ng: set both CC and HOSTCC with --compiler
virtme-ng: deprecate --compiler option
virtme-ng: boot with nokaslr when --debug is used
virtme: introduce option --gdb
doc: document the new --gdb option
virtme-configkernel: fix coding style
virtme-ng-init: resync submodule
version: generate verison string based on git information
version: run git describe from the path of the python file
version: make sure to get the git version from a virtme-ng git repo
version: try to get version from pip
virtme: get rid of virtme/scripts symlink
virtme: pass "debug" to the boot options when running in verbose mode
virtme: properly show/redirect kernel log when running in command mode
virtme-ng v1.26
Fredrik Lönnegren (2):
Add cross-compile argument
Fix review comments
Jim Cromie (8):
configkernel: add --configitem and --verbose
prefix BLK_DEV_INITRD=y with CONFIG_
vng/run: expose configkernel --configitem option
vng/run: handle user-config 1st, allow --configs after
readme: same kernel as the host
add Makefile install target
run git describe in Makefile
Makefile - add install-top-only target
Johannes Thumshirn (1):
virtme-ng: fix virtiofsd search path on openSUSE
Juerg Haefliger (1):
init: Fall back to mounting without xino option
Marcos Paulo de Souza (1):
setup.py: Check if argparse-manpage is present to vng.1
Matthieu Baerts (NGI0) (4):
virtme-configkernel: 'O=' takes precedence over KBUILD_OUTPUT
version: move the non-local case out of the try/catch
version: fallback to PKG_VERSION if git describe failed
virtme: switch back to hypervisor console
v1.25
virtme-ng v1.25 is out!
This is a minor release with just a small change, but it was worthwhile to cut a new version, because it can significantly improve boot time with the microvm architecture (simply by enabling the RTC and avoiding unnecessary boot time that most kernels spend probing for a non-existent RTC).
And with this applied I can break the 1s boot-time limit on my laptop and start a vng instance in only ~0.93s!
arighi@gpd ~/src/linux (master)> time vng -- uname -r
6.9.0-rc1-virtme
________________________________________________________
Executed in 931.57 millis fish external
usr time 838.65 millis 0.00 micros 838.65 millis
sys time 690.61 millis 404.00 micros 690.20 millis
Detailed ChangeLog below.
Andrea Righi (6):
Merge pull request #111 from matttbe/kvm
virtme: make sure RTC is enabled with microvm
Merge pull request #112 from arighi/microvm-enable-rtc
virtme-ng: silent lint errors
Merge pull request #113 from arighi/silent-lint-error
virtme-ng v1.25
Matthieu Baerts (NGI0) (1):
github: new test with KVM support
v1.24
A new release of virtme-ng is out!
The most noticeable changes include the support for the loop network type and the possibility to specify the --network
command multipe times, both useful for kernel selftests testing (thanks to Jiri Pirko).
Moreover, there is a boot-time improvement in environments where the kvm acceleration is not available, such as container, cloud environments, etc. (using the q35
arch in qemu - thanks to Ricardo Ribalda for driving this topic).
Notably, this new version is expected to enhance the performance of GitHub workflows that use virtme-ng.
Detiled ChangeLog below.
== virtme-ng ChangeLog ==
Andrea Righi (10):
Merge pull request #100 from jfernandez/virtiofsd-arch
Merge pull request #102 from lorenzo-stoakes/ljs-fix-cross-compile-heuristic
Merge pull request #103 from jpirko/net_loop
Merge pull request #105 from l-0-l/patch-2
Merge pull request #104 from l-0-l/patch-1
virtme-ng-init: resync submodule
Merge pull request #109 from arighi/update-virtme-ng-init
virtme: default to q35 architecture when kvm is not available
Merge pull request #110 from arighi/q35-arch
virtme-ng v1.24
Jiri Pirko (2):
virtme: introduce loop network type
virtme: allow user to ask for multiple network devices
Jose Fernandez (1):
Add additional path for virtiofsd executable
Lorenzo Stoakes (1):
config: avoid accidentally specifying invalid cross-compile
l-0-l (2):
Update README.md
Update README.md
== virtme-ng-init ChangeLog ==
Andrea Righi (1):
add Cargo.lock
virtme-ng v1.23 is out
A new version of virtme-ng is out to address a few bug fixes, especially a breakage with QEMU 8.2.2 (kudos to @matttbe and @ishitatsuyuki for investigating and figuring out the fix), that is the most noticeable change.
There is also a small behavior change with --kconfig
, that will always override the .config
if present (since there is not reason to use --kconfig
and not update the .config
).
Moreover, it is now possible to force the legacy cgroup v1 using the option -a "SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1"
: the vng init script will mimic systemd behavior and mount cgroup v1, instead of v2.
Detailed ChangeLog:
== virtme-ng ChangeLog ==
Andrea Righi (11):
setup.py: properly detect when the virtme-ng-init submodule is missing
init: allow to mount legacy cgroupfs (v1)
Merge pull request #85 from arighi/support-cgroup-v1
virtme-ng-init: resync submodule
Merge pull request #93 from arighi/fix-virtme-ng-init-console
Merge pull request #94 from matttbe/home
Merge pull request #91 from matttbe/config
Merge pull request #96 from matttbe/config
Merge pull request #98 from matttbe/docker-privileged
Merge pull request #99 from matttbe/qemu-8.2.2
virtme-ng v1.23
Matthieu Baerts (NGI0) (9):
init: set the HOME env var if root
config: always append virtme configs
config: override the kernel config if asked
config: option not to update if there is a config file
vng: override kconfig with '--force'
vng: --kconfig: override the .config
readme: docker: recommend using --privileged option
readme: docker: add virtiofsd
qemu: remove unnecessary '-serial none' arg
== virtme-ng-init ChangeLog ==
Andrea Righi (4):
virtme-ng-init: allow to mount legacy cgroupfs (v1)
Merge pull request #7 from matttbe/home
virtme-ng-init: properly configure terminal line settings
add Cargo.lock
Matthieu Baerts (NGI0) (1):
init: set the HOME env var if root