First install OpenSuse Leap 16 as 64-bit VM (if you have enough disk space, use
at least 20GB). This requires three steps:
a) Install Virtualbox (latest version), the expansion pack, and any guest
additions. See https://www.virtualbox.org/wiki/Downloads for the software.
b) Create a Linux virtual machine by downloading and installing a distribution
as a new machine(recommended - OpenSuse Leap 16 iso from
https://download.opensuse.org/distribution/leap/16.0).
This process would create a virtual disc (vdi) image.
c) Make sure you install the following required/recommended software packages.
Required packages are those for programming (gcc related, kernel-devel etc),
but you need not install all at once.  

Note 1: These packages are from Leap 15.6, so you may need to use zypper search
to verify if the name of a package has changed (although this is rare).
Note 2: If you use other distro, find the relevant ones for your Linux distro,
e.g. don't forget build-essential package if you use ubuntu).

A) (From yast2) or as root from command line: zypper install <these packages>
binutils
autoconf
automake
make
makedepend
curl
man-db
man
man-dev
cppman
(manuals)
netstat
nmap
procps-debuginfo
libncurses6-debuginfo
libnuma1
libnuma1-debuginfo
libprocps3-debuginfo 
rpm

GCC and GNU TOOLS
-----------------
gcc (and all related, gcc-c++ gcc-static)
gcc-c++ (or g++)
glibc-debuginfo-2.xxx.x86_64
glibc-debuginfo
glibc-devel-debuginfo
glibc-static

UART TERMINAL (Serial connection)
---------------------------------
minicom

In Windows for communication to VM:
check usb works (VM settings, USB2)
ssh etc via mingw (e.g. in omnet)
shared folders (VM settings, automount, directory)

Maybe this is not all.

QUICK SEARCH
---------------------------------------------------------------------
mlocate (useful for quick search using updatedb, and locate)

KERNEL (for compiling kernel modules, useful)
---------------------------------------------
for kernel-source(s)

zypper install kernel-source-vanilla
zypper install kernel-devel
bison bison-lang flex libfl2 libfl-devel m4
zypper install ncurses-devel
zypper install openssl
zypper install  libopenssl-1_1-devel      
zypper install bc
zypper install grubby

kernel-syms
kernel-devel
kernel-docs
kernel-docs.pdf
kernel-default-devel
kernel-shark
(check if make menuconfig and make modules  work?)

PDF
---
evince

LATEX
-----
texlive-standalone
texlive-comment
texlive-acronym
texlive-tikzscale
texlive-glossaries
texlive-todonotes
tabularx
texlive-cleverref
texlive-cleveref

X11
---
libX11-devel
xorg-x11-devel
motif-devel
ncurses
ncurses-devel

VARIOUS EVENTS, THERMAL, CPUPOWER
---------------------------------
eventstat
evtest
libevdev-tools
libnetfilter-queue-devel
tmon (thermal)
cpupower-devel
cpupower-bench

BLUETOOTH
---------
bluez-tools?
bluez-test?


NETWORK TOOLS
-------------
nmap
ncat
netstat
strace
ltrace
iperf
wireshark
tcpdump
grace
grace-devel
gtkwave

ARDUINO PROJECTS
----------------
arduino
python-serial for Arduino.mk (make upload, without IDE)

TXT Graphics
------------
ncurses
ncurses-devel
ncurses-utils

Device Info
-----------
lshw
lspci
lsusb
