Skip to content

Releases: arighi/virtme-ng

v1.30

13 Oct 07:44

Choose a tag to compare

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

11 Sep 06:47

Choose a tag to compare

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

05 Sep 08:04

Choose a tag to compare

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

30 Jul 17:01

Choose a tag to compare

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

29 Jul 21:18

Choose a tag to compare

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

21 May 20:26

Choose a tag to compare

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

03 May 10:55

Choose a tag to compare

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

29 Mar 08:21

Choose a tag to compare

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

virtme-ng v1.22 is out

24 Feb 09:18

Choose a tag to compare

Very calm release, only bug fixes this time, but I wanted to cut a new version anyway to make sure that no other people are hitting the permission errors with sudo.

Most noticeable changes:

  • fix potential sudo errors (in openSUSE, Fedora, CachyOS)
  • propagate /proc/sys/fs/nr_open from host to guest
  • more robust parsing of upstream kernel versions
  • small command help improvements
== virtme-ng ChangeLog ==

Andrea Righi (11):
      Merge pull request #73 from WOnder93/fix-traceback-config
      Merge pull request #74 from WOnder93/fix-setup
      virtme: propagate /proc/sys/fs/nr_open from host to the guest
      virtme-ng: hide additional sudo settings
      Merge pull request #77 from arighi/propagate-nr-open
      virtme-ng: more robust parsing of upstream versions
      virtme-ng: improve help of --run command
      virtme-ng: print a hint to exit from the virtme-ng session
      Merge pull request #82 from arighi/improve-help
      Merge pull request #83 from paulmenzel/fix-typo-in-warning-in-setup.py
      virtme-ng v1.22

Ondrej Mosnáček (2):
      virtme: fix traceback with --kdir when .config doesn't exist
      setup.py: fix logic around the virtme_ng_init submodule

Paul Menzel (1):
      setup.py: Fix typo in *submodule* in warning

== virtme-ng-init ChangeLog ==

Andrea Righi (4):
      virtme-ng-init: handle command line option nr_open
      virtme-ng-init: apply limits after mounting kernel filesystems
      virtme-ng-init: hide additional sudo settings
      virtme-ng-init: print a hint to exit from virtme-ng

virtme-ng v1.21 is out

16 Feb 15:03

Choose a tag to compare

This new version of virtme-ng includes some new enhancements focused at improving its integration in CI/CD environments, alongside with the usual set of miscellaneous fixes.

Most noticeable changes in this release:

  • When running in script mode do not hang in case of kernel panic, but return the special error code 255 (this allows to automate catching kernel panics)
  • Redirect kernel log to stderr on the host when running in interactive mode: this allows to easily save the kernel log to a file (or pipe it to another tool), simply by runing a vng -vr 2>/tmp/kernel.log
  • vng --dump can now generate a memory dump compatible with drgn
  • It is now possible to use virtiofsd with a btrfs root filesystem on the host (e.g., default openSUSE setup)
  • It is not possible to to use the microvm architecture with kernels that don't have built-in virtio-pci / virtio-mmio (e.g., stock openSUSE Tumbleweed kernel)
== virtme-ng ChangeLog ==

Andrea Righi (21):
      virtme-ng: redirect kernel log to stderr in interactive mode
      Merge pull request #66 from arighi/kernel-log-stderr
      virtme-ng: generate drgn compatible memory dumps
      Merge pull request #67 from arighi/drgn-support
      doc: replace the screenshot with a video in README.md
      Merge pull request #68 from arighi/video-demo
      virtme-init: always override sudoers
      virtme-ng: deprecate --skip-config
      Merge pull request #69 from arighi/fix-sudo
      virtme-ng: fix sending kernel log to stderr in script mode
      virtme-ng: return 255 on panic in script mode instead of hanging
      Merge pull request #70 from arighi/detect-kernel-panic
      doc: add "Additional resources" section to README.md
      Merge pull request #71 from arighi/readme-additional-resources
      virtme: properly detect rootfs when /lib is symlinked to /usr/lib
      virtme: use --no-announce-submounts with virtiofsd
      setup.py: always add site-packages to PYTHONPATH
      virtme: always add modules required by microvm to the initramfs
      Merge pull request #72 from arighi/tumbleweed-fixes
      setup.py: automatically initialize virtme-ng-init submodule
      virtme-ng v1.21

== virtme-ng-init ChangeLog ==

Andrea Righi (2):
      virtme-ng-init: allow virtme-ng to specify a console device
      virtme-ng-init: always override sudoers