Installation Guide

1 Introduction

This document describes how installations of Intel® Simics® Simulator (hereafter called "the simulator") work and how to manage Intel Simics Projects, also called "user projects". It identifies the hardware and software requirements for installing and running the simulator. It should be read by users doing installations on their own, and all administrators.

About formatting and style, see Documentation Contents.

2 Hardware and Software Requirements

2.1 Hardware requirements

The minimum hardware requirements are:

More RAM and/or disk is often necessary, depending on the requirements of the simulated machine.

For best performance, we recommend:

For maximum performance when simulating Intel® Architecture targets, the Intel® Simics® Simulator can use virtualization (also known as VMP or VMXMON). The use of virtualization requires an Intel processor with Intel® Virtualization Technology (Intel® VT) for IA-32, Intel® 64 and Intel® Architecture (Intel® VT-x).

2.2 Linux (64-bit)

Run Time Requirements

A modern Linux distribution (1), with at least

Supported examples are Suse Linux Enterprise Server 12 (and newer) and Red Hat Enterprise Linux 8 (and newer).

When running Simics with a user provided Python, or when using Simics as a Python module, Python version 3.10 or later is required.

Model Builder Requirements

2.3 Microsoft Windows (64-bit)

Run Time Requirements

When running Simics with a user provided Python, or when using Simics as a Python module, Python version 3.10 or later is required.

Model Builder Requirements



2.4 Python requirements

Simics needs a Python installation to run. The minimum required Python version is 3.10. A few Python packages are also required to run Simics. These are downloaded and installed automatically when setting up a Simics project (4), into a project local standard Python virtual environment.

If no Python is available on the host, a Python installation is provided in Simics package 1033. If that is installed, Simics will normally find and use Python from there.

  1. Installing additional packages may be necessary.
  2. The Intel® Simics® SystemC* library has its own compiler requirements, see the SystemC* Library programming guide for details.
  3. The Microsoft Visual C++ compilers are only supported for C++ modules.
  4. Setting up a project using project-setup and addon-manager does not require any extra Python packages.

3 Installing Packages

As a customer you should have received instructions that describes which packages to install and where to find them. If this is not the case, contact your provider to obtain this information.

For the installation, use the Intel® Simics® Package Manager (ISPM). ISPM can be used to check for updated packages, download and install/uninstall, and manage Intel Simics Projects, also called "user projects". It supports both command line (batch) mode and GUI mode.

The simulator is delivered in packages, each one containing different parts of the functionality. There is a Simics Base package and several add-on packages. The most common packages are:

Once ISPM has installed Simics Base and one or more platform packages it can create user projects. A user project is a directory for adding user files and developing simulation models, and is typically set up for a combination of a few packages of certain versions. Thus such projects enable users to work with different package combinations just by switching between projects.

New users are suggested to study the Getting Started guide which describes how to launch the simulator and run the QSP-x86 platform.

ISPM can, at any time, install more packages, other versions of already installed packages, or uninstall packages or versions no longer used.

3.1 Installing VMP

VMP uses direct execution to simulate x86 systems at near native speed. A kernel module is needed to communicate directly with the host hardware, and installing the kernel module requires a separate step.

The VMP feature requires that the host machine running the simulator has the Intel® Virtualization Technology (Intel® VT) for IA-32, Intel® 64, and that Intel® Architecture (Intel® VT-x) is enabled in the host machine firmware (the UEFI/BIOS) and visible to the VMXMON kernel module.

For more information and known limitations, see Simics User's Guide, chapter "Simulation Performance".

3.1.1 Linux

Installing and managing VMP kernel modules requires sudo privileges. Installing will compile the kernel module and therefore also requires an environment to build kernel modules. Which packages you need for building kernel modules depend on the distribution of Linux that you are using, but at least for certain Red Hat based distributions you would need gcc-c++, kernel-headers, and kernel-devel. Change directory to the user project and run:

[project]$ bin/vmp-kernel-install

The script will compile and persistently install the kernel modules that are used by VMP. It will echo what needs to be done, which involves running scripts in the [simics]/vmxmon/scripts/ directory.

Disable VMP temporarily by running the bin/vmp-kernel-unload script, and enable VMP with the bin/vmp-kernel-load script. Permanently uninstall VMP from your host by running the bin/vmp-kernel-uninstall script.

If the installation is read-only, or if you for some other reason want to have the built VMP artifacts outside of the installation, you can give a directory to the relevant VMP scripts, for example:

[project]$ bin/vmp-kernel-install /somewhere/directory
[project]$ bin/vmp-kernel-load /somewhere/directory

3.1.2 Windows

The kernel module can be loaded and unloaded by running the bin\vmp-kernel-load.bat respective bin\vmp-kernel-unload.bat scripts as administrator. To do that, open a command shell as administrator and run:

[project]> bin\vmp-kernel-load.bat

Another way to perform the same action would be to right-click on vmp-kernel-load.bat and select run as administrator.

The /AUTO and /DEMAND options select the start option for the VMP service. With /AUTO (default), the service will be available after restart whereas with /DEMAND makes the service available just until shutdown or reboot, and then VMP has to be loaded again when needed.

If the script fails, see the Windows event log for more information. The most common reason is that Intel® VT-x technology or the NX feature is not enabled in the UEFI/BIOS. The kernel module will also fail to load if the Hyper-V feature is enabled.

4 Upgrading Major Versions

4.1 Upgrading from Version 4.8, 5, and 6

Intel® Simics® Simulator 7 is binary compatible with recent models from version 6 but it is not directly compatible with neither version 4.8 nor 5. However, the simulator supports the same structure of installation and multi-user configuration, so upgrading should be simple.

For version 4.8, select the 4.8 API to get access to deprecated parts of the API. This is described in the Simics Migration Guide.

For both version 4.8 and 5, some Python source code may have to be updated before recompiling.

4.2 Upgrading Minor 7 Releases

Version 7 releases are binary compatible, so nothing special needs to be done when upgrading. Unless specifically mentioned in their Release Notes, add-on packages should work with any installation of Simics Base, version 7. A more detailed description of compatibility issues for user-created modules is available in the Simics Migration Guide.

5 Advanced Installation Options

This section provides additional information for users who need deeper information about some issues.

5.1 Manual Package Management

The Intel® Simics® Package Manager (ISPM) works well for many advanced use cases. However, sometimes it is necessary to use the addon-manager or the project-setup programs.

Note: The examples are run on Linux but everything works the same on Windows, except file paths and file suffixes.

Packages are not installed on top of any other package. Instead each package, and different versions of it, stay in separate directories. Each user project is bound to a particular installation of Simics Base, and it keeps its own list of paths to selected add-on packages that makes them available to the simulation engine at run-time. To manually configure this list or bind to another installation of Simics Base, use the addon-manager and project-setup programs.

Here are a few examples of what those programs can do:

5.1.1 Listing Add-on Packages

This example will list the add-on packages configured for the particular user project.

[project]$ bin/addon-manager
=== Using the package list in project ([project]) ===

Configured add-on packages:
   QSP-x86  7.0.0  ../simics-qsp-x86-7.0.0

If there are any invalid entries (their paths do not exist anymore, or the necessary information files are invalid), the addon-manager will suggest to remove them right away.

5.1.2 Adding Add-on Packages

This example will add a package to the list for the particular user project.

[project]$ bin/addon-manager -s [simics]/simics-gdb-7.0.0

...
Configured add-on packages:
   QSP-x86  7.0.0   ../simics-qsp-x86-7.0.0

The following operations will be performed:
   -> Add  GDB  7.0.0  ../simics-gdb-7.0.0

New package list:
   GDB      7.0.0  ../simics-gdb-7.0.0
   QSP-x86  7.0.0  ../simics-qsp-x86-7.0.0

Do you want to update the package list? (y/n) [y] <ENTER>
Package list updated
Do you want to update the project? (y/n) [y] <ENTER>
Project updated successfully

5.1.3 Removing Add-on Packages

This example will remove an add-on package from the list for the particular user project.

[project]$ bin/addon-manager -d ../simics-gdb-7.0.0/

...
Configured add-on packages:
   GDB      7.0.0  ../simics-gdb-7.0.0
   QSP-x86  7.0.0  ../simics-qsp-x86-7.0.0

The following operations will be performed:
   -> Remove  GDB 7.0.0  ../simics-gdb-7.0.0

New package list:
   QSP-x86  7.0.0  ../simics-qsp-x86-7.0.0

Do you want to update the package list? (y/n) [y] <ENTER>
...

5.1.4 Upgrade Version of Simics Base

To manually change which installation of Simics Base a user project is bound to, use the project-setup program of the installation to bind to.

[project]$ [simics]/bin/project-setup .
Project-local package list updated successfully.
Project updated successfully

The program will save any edited files it wants to update into the project's .backup directory.

When building custom modules or extensions on Windows, bin\make.bat must be setup to find the executables of MinGW. If needed it can be updated by using project-setup with the --mingw-dir option.


For more options and information about the addon-manager and project-setup programs, see the Simics Reference Manual.

5.2 Multi-user Installations

5.2.1 Shared Installations

By default, the simulator is organized so that the installed packages can be left read-only in a common location accessible to all users. And users create custom Intel® Simics® project areas, as described in our manuals.

5.2.2 Shared Configuration

Historically each installation of Simics Base kept its own list of paths to all installed add-on packages. Some organizations tweaked the list to create a "shared configuration" of selected add-on packages.

It is now recommended to use ISPM and instead share manifest files with the users.

However, if necessary an installation of Simics Base can be configured with specific add-on packages in the same way as manually managing user projects as described in a previous section of this chapter. For more information, see about the addon-manager in the Simics Reference Manual.

5.3 Third-Party Products (Windows)

On Windows some functionality of the simulator requires support from third-party products. This section describes those products.

6 Open Source Software

All source code for "copyleft" open source software used by, or with, the simulator is bundled with the same package as the binary is distributed in.

7 Security Considerations

The simulator runs as a user application with standard privileges and is secure at its core. However, it has some features that present potential vulnerabilities which are good to be aware of before enabling them. None of them are enabled by default.

Add-on packages often include software intended to run in the simulated target systems. This software is supplied for demonstration and training purposes only, and is not intended to be used as part of production setups.