Skip to content

Building from Source

This guide explains how to build ryu_ldn_nx from source.

  • Docker
  • Docker Compose
  • devkitPro with devkitA64
  • libnx
  • Atmosphere-libs (submodule)
  • libtesla (for overlay)

The easiest way to build is using Docker:

Terminal window
# Clone the repository
git clone --recursive https://github.com/Ethiquema/ryu_ldn_nx.git
cd ryu_ldn_nx
# Build sysmodule
docker-compose run --rm build
# Build overlay
docker-compose run --rm overlay
# Run tests
docker-compose run --rm test

After building:

  • Sysmodule: sysmodule/ryu_ldn_nx.nsp
  • Overlay: overlay/ryu_ldn_nx_overlay.ovl
  • Debug symbols: sysmodule/ryu_ldn_nx.elf

If you prefer building natively:

Follow the devkitPro getting started guide.

Terminal window
# Install required packages
dkp-pacman -S switch-dev libnx
Terminal window
git clone --recursive https://github.com/Ethiquema/ryu_ldn_nx.git
cd ryu_ldn_nx
Terminal window
cd sysmodule
make -j$(nproc)
Terminal window
# Install libtesla
git clone https://github.com/WerWolv/libtesla.git /opt/libtesla
cd overlay
make LIBTESLA=/opt/libtesla

To create a release-ready ZIP:

Terminal window
# Build everything
docker-compose run --rm build
docker-compose run --rm overlay
# Create package structure
mkdir -p release/atmosphere/contents/4200000000000010
mkdir -p release/switch/.overlays
# Copy files
cp sysmodule/ryu_ldn_nx.nsp release/atmosphere/contents/4200000000000010/exefs.nsp
cp sysmodule/ryu_ldn_nx.npdm release/atmosphere/contents/4200000000000010/main.npdm
cp sysmodule/res/*.json release/atmosphere/contents/4200000000000010/
cp overlay/ryu_ldn_nx_overlay.ovl release/switch/.overlays/
# Create ZIP (config is generated on first boot)
cd release && zip -r ../ryu_ldn_nx.zip .
Terminal window
git submodule update --init --recursive
Terminal window
dkp-pacman -S libnx

Make sure you have the correct version:

Terminal window
cd sysmodule/Atmosphere-libs
git checkout <required-version>

Set the LIBTESLA environment variable:

Terminal window
export LIBTESLA=/path/to/libtesla