Skip to content

v1.39

Choose a tag to compare

@arighi arighi released this 30 Nov 09:20
· 58 commits to main since this release

virtme-ng v1.39 is out!

The most noticeable change in this release is the new Model Context Protocol (MCP) server. This feature lets you connect with AI assistants such as Claude, Cursor, etc., and use natural human language to automate kernel development tasks.

In this way, AI agents can automatically configure kernels, apply patches from lore.kernel.org, and run commands within recompiled kernels. You can even have the AI agent perform bug bisection for you and run specific commands/scripts inside each recompiled version to determine whether the kernel is good or bad.

An additional feature is vCPU pinning (using the --pin CPU_LIST option), which enables binding virtual CPUs to particular physical host CPUs. This ensures more consistent performance testing within the vng guest environment.

The release also adds support for memoryless NUMA nodes, enabling users to specify size=0 with the --numa argument to create NUMA nodes without memory. This capability can be useful for simulating heterogeneous architectures, where devices like GPUs are represented as memoryless NUMA nodes to model their CPU locality relationships.

Last, but not least, there's a new --shell BINARY option which lets users choose a different shell to use within the vng session, rather than using their system's default shell and a new --empty-password option that creates empty passwords in the vng guest, instead of blocking login for other users, enabling easier debugging and SSH access during testing.

Other changes:

  • Updated Python versions in CI (dropped EOL 3.8 and 3.9)
  • Various bug fixes in virtme-init
  • Enhanced documentation and README updates
  • Improved error handling and validation

Detailed ChangeLog:

Andrea Righi (7):
      virtme/architectures: Enable topology extensions for AMD CPUs
      virtme-ng: Introduce --shell
      virtme-ng: Implement vCPU pinning
      virtme: systemd: Disable zram generator
      virtme: Support memoryless NUMA nodes
      virtme-ng: Add MCP server for AI agent integration
      virtme-ng v1.39

Ilya Leoshkevich (3):
      virtme-init: Improve nested virtme-ng performance
      virtme-init: Fix `base64: invalid input`
      virtme-init: Send guest's hostname to the DHCP server

Marc Hartmayer (3):
      virtme/commands/run: Fix TypeError
      vng: Add `--empty-passwords` support
      Improve `vng-mcp` integration

Matthieu Baerts (NGI0) (8):
      virtiofsd: run with -o cache=auto in --rw mode
      github: python: add 3.14, drop 3.9
      project: drop EOL Python 3.8 and 3.9 versions
      github: run: use virtme-ng-init in one of the runs
      github: run: use the verbose option
      github: run: switch to latest ubuntu version
      github: run: sync dependences with README
      README: docker: keep example up-to-date

Oscar Linderholm (2):
      net: option to disable automatic DHCP configuration
      Make --no-dhcp a global configuration option

Ricardo B. Marlière (5):
      virtme/run: Set virtme_root_user=1 also when using `--root` option
      virtme/run: Check read permissions of args.root
      virtme/run: Always mount cache when args.root != '/'
      virtme-sshd-script: Set SSH_HOME to virtme.cache if it's mounted
      virtme-sshd-script: Don't use the default StrictModes

Ricardo Ribalda (1):
      virtme-init: Increase timeout for udevadm settle