DetourLite on Linux — install .NET 8 and run
DetourLite is one self-contained ELF executable: no dotnet DetourLite.dll command line, no
loose managed DLLs, no runtimeconfig.json next to it. It is framework-dependent, so the
machine still needs the .NET 8 runtime — nothing else from Microsoft is required.
Pick the file that matches uname -m:
uname -m |
module | file |
|---|---|---|
x86_64 |
detour/DetourLite-linux-x64 |
DetourLite |
aarch64 / arm64 |
detour/DetourLite-linux-arm64 |
DetourLite-arm64 |
arm64 status: the arm64 executable is built from the same source as the x64 and Windows builds and passes the static checks (genuine AArch64 ELF; every embedded assembly AnyCPU, which is what previously broke DetourLite on Jetson), but it has not yet been started on real ARM hardware — no aarch64 machine was available at release time. Treat the first run on your Jetson as the acceptance test and report anything that differs. The file can be renamed to
DetourLiteif you prefer; a single-file build does not care about its own file name.
1. Install the .NET 8 runtime
Check what is already there first:
dotnet --list-runtimes
You need a line starting with Microsoft.NETCore.App 8.. On Debian/Ubuntu, install just the
runtime (not the SDK):
sudo apt-get install -y dotnet-runtime-8.0
No administrator rights? Use Microsoft's installer into your own home directory:
curl -fsSL https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
chmod 700 dotnet-install.sh
./dotnet-install.sh --channel 8.0 --runtime dotnet --install-dir ~/.dotnet
export DOTNET_ROOT=~/.dotnet
export PATH="$DOTNET_ROOT:$PATH"
Package names and repository setup vary by distribution — see Microsoft's Linux package guide or the non-admin installer guide. DetourLite has no graphical desktop requirement: its interface is served over HTTP, so a headless server install of the runtime is enough.
2. Download and run
mkdir -p ~/Detour && cd ~/Detour
curl -fsSL -o DetourLite https://dl.lessokaji.com/api/v1/modules/detour/DetourLite-linux-x64/file
curl -fsSL -o libOpenCvSharpExtern.so https://dl.lessokaji.com/api/v1/modules/detour/libOpenCvSharpExtern-x64/file
chmod +x DetourLite
./DetourLite
On an aarch64 machine use the arm64 pair instead:
curl -fsSL -o DetourLite-arm64 https://dl.lessokaji.com/api/v1/modules/detour/DetourLite-linux-arm64/file
curl -fsSL -o libOpenCvSharpExtern.so https://dl.lessokaji.com/api/v1/modules/detour/libOpenCvSharpExtern-arm64/file
chmod +x DetourLite-arm64
./DetourLite-arm64
Verify each download against the sha256 in https://dl.lessokaji.com/api/v1/modules.
Startup prints Startup complete; the web interface is then on http://<machine>:4321/ and the
agent API on 127.0.0.1:14321.
3. What has to sit beside the executable
| File | Where it comes from | Needed for |
|---|---|---|
libOpenCvSharpExtern.so |
this catalog, matching your architecture | always — loaded at startup |
detour.json |
your site configuration | sensors, odometry, maps |
*.2dlm map file |
your survey | localization against an existing map |
<fingerprint>.dlic2 |
your licence | capture and 3D lidar beyond 60 minutes |
plugins/, regcore* |
this catalog | GroundTex / optional backends only |
Without a detour.json DetourLite starts with an empty configuration; edit it in the web interface
or drop your own file in the working directory.
4. When it does not start
| Message | Cause and fix |
|---|---|
You must install .NET to run this application |
.NET 8 runtime missing — step 1. |
Failed to run as a self-contained app … 'DetourLite.runtimeconfig.json' was not found |
You are running the portable DetourLite.dll with dotnet, and its runtime config is missing. Either use this native executable, or also download the DetourLite.runtimeconfig.json module and keep it beside the DLL. |
DllNotFoundException: Unable to load shared library 'libOpenCvSharpExtern' |
The native bridge is missing or is the wrong architecture. Download the module matching uname -m. |
Access to the path '/tmp/io_shared' is denied |
A stale 256 MB shared-memory file from another user owns /tmp. Remove it, or run as the user that created it. |
failed to load regcore |
Harmless unless you use GroundTex localization. |
Verified
x86_64: Ubuntu 22.04.5 (kernel 6.8), .NET runtime 8.0.31, real site configuration
detour.json (9,750 B, SHA-256 8C427937…F472F) and mainmap.2dlm (244,754 B, SHA-256
C3D76AAD…BBBB2, 25 keyframes): the downloaded executable reached Startup complete, loaded the
map, started odometry_0 and the mainmap correlator, and served /api/agent/status
(1.7.28-terrace). No WLR722 lidar exists on that network, so the sensors stay in "waiting for
frame" — every other subsystem came up.
aarch64: static only. file reports ELF 64-bit LSB pie executable, ARM aarch64; the embedded
assembly audit reports ARCH: PASS — no AMD64-only embedded assemblies and DEDUPE: PASS over all
18 embedded assemblies (CycleGUI 0.5.4-strata, DetourCore 1.7.28-terrace, DetourDance and the
third-party set). The same source built for x64 passes the runtime ABI probe
(runtime-abi: PASS DetourLite=0.3.41-terrace … CycleGUI=0.5.4-strata). Nothing was executed on ARM.