# Installing SST The links to download SST source code are available here [http://sst-simulator.org/SSTPages/SSTMainDownloads/]. This guide is using the most recent SST version (11.0.0) as of September 2021. The following guide assumes `$SST_CORE_HOME` as the location where SST will be installed. ## SST-Core ### Downloading the SST-Core Source Code ```sh wget https://github.com/sstsimulator/sst-core/releases/download/v11.1.0_Final/sstcore-11.1.0.tar.gz tar xf sstcore-11.1.0.tar.gz ``` ### Installing SST-Core ```sh cd sstcore-11.1.0 ./configure --prefix=$SST_CORE_HOME --with-python=/usr/bin/python3-config \ --disable-mpi # optional, used when MPI is not available. make all -j$(nproc) make install ``` Update `PATH`, ```sh export PATH=$SST_CORE_HOME/bin:$PATH ``` ## SST-Elements ### Downloading the SST-Elements Source Code ```sh wget https://github.com/sstsimulator/sst-elements/releases/download/v11.1.0_Final/sstelements-11.1.0.tar.gz tar xf sstelements-11.1.0.tar.gz ``` ### Installing SST-Elements ```sh cd sst-elements-library-11.1.0 ./configure --prefix=$SST_CORE_HOME --with-python=/usr/bin/python3-config \ --with-sst-core=$SST_CORE_HOME make all -j$(nproc) make install ``` Adding `PKG_CONFIG_PATH` to `.bashrc` (so pkg-config can find SST .pc file), ```sh echo "export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$SST_CORE_HOME/lib/pkgconfig/" >> ~/.bashrc ``` ### Building gem5 library At the root of gem5 folder, ```sh scons build/RISCV/libgem5_opt.so -j $(nproc) --without-tcmalloc ``` ### Compiling the SST integration At the root of gem5 folder, ```sh cd ext/sst make ``` ### Running an example simulation Running the simulation ```sh sst --add-lib-path=./ sst/example.py ``` The example SST system configuration will instantiate the gem5 system as specified in the gem5 system configuration located at `gem5/configs/example/sst/riscv_fs.py`. This configuration will download the `bbl-busybox-boot-exit` resource, which contains an m5 binary, and `m5 exit` will be called upon the booting process reaching the early userspace. More information about building a bootloader containing a Linux Kernel and a customized workload is available at [https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/develop/src/riscv-boot-exit-nodisk/].