As it does not seem to be mentioned a lot elsewhere, I’m reporting my experiences with running KiCad builds in a Windows 10 VM below. Your report on other host and guest systems may help new users set up an use a virtualization solution for isolated or cross-platform testing.
To share your experiences, you can use:
Host and Guest system
VM tools that work
VM tools with issues
KiCad debugging hints
as a template.
Host and Guest system
host: Windows 7 Professional SP1 64bit (6.1.7601)
guest: Windows 10 Professional (Build 9200)
For Win10, Winaero Tweaker is a good way to turn off most of the nuisance “features” and unsolicited data collection
VM tools that work
VMWare Player 15 (15.5.6 build-16341506) (free for non-commercial use)
VMWare Workstation 15 Pro (15.5.6 build-16341506) (provides snapshot creation before installing and uninstalling KiCad versions)
VM tools with issues
VirtualBox 5: OpenGL 2.1 requirement not satisfied
VirtualBox <= 6.1.10: crashes, Win10 rendering problems, OpenGL buffers upside-down, menus and dialogs not clickable
All of these don’t result in stable operation with 3D acceleration (all tested)
The problem with upside-down rendering is an issue reported several months ago and as of yet unsolved, so VirtualBox is currently not usable.
https://www.virtualbox.org/ticket/19237
qualification criteria (opinion)
This is definitely a best-effort topic, as you may well be exploring a combination of systems and problem presentations that hasn’t been covered on the KiCad forum or bug tracker.
- make sure the machine is running with 3D acceleration enabled and no issues on the guest side. Guest tools / extensions need to be installed
- A recent, stable release (5.1.6-1 as of this writing) needs to run with no issues. Please take a few minutes to make sure there are no immediate problems that can be ascribed to the virtualization itself
- use additional tools (dxdiag, OpenGL Checker) if needed
KiCad debugging hints
Some problems are hard to reproduce and may be specific to your system. If you are already familiar with debugging using GDB or similar, nobody will stop stop you from giving debugging a shot. Developers can provide builds with debug symbols enabled, so you don’t need to be able to build KiCad to be able to debug it.
Additionally, MSFT offers tools like WinDBG in their platform SDKs.
Windows SDK for Win7 https://www.microsoft.com/en-us/download/details.aspx?id=8279
Windows SDK for Win10 https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/
VirtualBox offers a WarpDrivePercentage parameter, which changes the machine clock, but not the execution speed. This might be used for timer events manipulation.
This seems to be of limited use though. Variable execution speed might be achieved by reducing thenumber of VM cores to 1 and running a process that uses up most of the CPU time.
using multiple KiCad versions side-by-side (Win7+)
the following example assumes two KiCad builds installed in different directories.
- kicad test build in C:\Program Files\KiCad\
- kicad nightly build in C:\Program Files\KiCad-nightly\
Windows likes to hide path information when opening files, so it is not clear which one of the executables sharing the same name is actually being used.
To circumvent this problem, extension specific “open with” items can be created by adding a set of entries to HKEY_CLASSES_ROOT (see .reg file, please open with a text editor and make sure the paths are appropriate before double-clicking to execute).
multiple_kicad_versions_context_menu.reg (4.2 KB)
my part of the story
Recently I’ve tried to contribute by reporting bugs in KiCad test builds and nightlies, but encountered some challenges:
- observations, even if plausible (e.g. differential testing against versions shown to run on the target OS) are rejected when the OS is not officially supported
- problems will be encountered when setting up a dedicated virtual machine for testing
- the goalpost may be moved from “OS not supported” to “the problems observed are due to virtualization”
On the one hand, some aspects are unavoidable, like running into problems with newer VM tool releases on both host and guest sides. On the other hand, I would have wished for more clarity about the testing requirements.
Thus, I’d like to propose that we collect
- combination matrix entries of the host and guest systems you’re using, listing name and revision of tools that are proven to work and some guidance regarding setup and use (e.g. platform-specific debug tools)
- requirements for qualification of each VM