Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Key Additions
vortex.def: Apptainer Definition File
Base Image: ubuntu:22.04
System Dependencies Installed: Compiler toolchains: gcc, g++, make, verilator, etc.
Libraries: libcairo2, libtheora0, libpango, libavformat58, libavcodec58, etc.
JDK: openjdk-11
Python 3.9, CMake 3.26 (manually installed)
Environment Setup:
UTF-8 locales
Boost and OpenSSL library paths added to LD_LIBRARY_PATH
Post Section Enhancements:
Package lock handling and cleanup
fakeroot, wget, and USB/pci support
Locale and symlink fixes
Labels & Test Section: Metadata and verification of base environment functionality
install_boost_openssl.sh: Boost/OpenSSL Installer
Installs boost-1.66 and openssl-1.1 from .deb packages
Extracts .deb using ar and tar --zstd
Copies to /opt/ and verifies directory structure
Used in %post section of vortex.def
run_apptainer.sh: Launcher Script
Simplifies container launch with environment variables:
GIT_REPO_PATH, CONTAINER_IMAGE, VORTEX_TOOLCHAIN_PATH, etc.
Uses apptainer shell with:
--fakeroot and --cleanenv
Bind mounts for PCI/USB, firmware, Xilinx tools, and code repositories
README Additions
Interactive Slurm session setup (e.g. salloc -p rg-fpga ...)
apptainer build --no-https vortex.sif vortex.def
chmod +x run_apptainer.sh && ./run_apptainer.sh
Device access (e.g., lsusb) inside the container
SIMX, RTLSIM, XRTSIM via blackbox.sh
Toolchain install (ci/toolchain_install.sh) and setup
Bitstream generation with Xilinx U50 platform and Vitis
Running FPGA jobs with ./ci/blackbox.sh --driver=xrt
Benefits:
Reproducible Environment: Same setup for simulation and hardware across machines
HPC Compatibility: Targets research clusters where Apptainer is standard
Minimal Host Requirements: Only Apptainer and bound paths needed on host
Support for USB/PCI & FPGA workflows