SDK Installation
XCENA SDK package provides the software stack required to interface with XCENA devices, including drivers, libraries, tools, and example applications.
Prerequisites
Refer to System requirements
1. Install from SDK Package
Note
Ubuntu 24.04 is the officially supported target. openSUSE Leap 16 and RHEL 9 are experimental — download the tarball whose name ends in
_opensuse-leap_16.0or_el9. See System Requirements.
Download the SDK package from GitHub Releases.
$ wget <URL_to_sdk_xxx.tar.xz>
$ tar xvf sdk_xxx.tar.xz
$ cd sdk_xxx
$ ./install.sh
Note
The installation process includes the installation of the device driver (mxdriver).
A system reboot is required to complete the installation and activate the driver.
CXL devdax host setup — required for device memory
install.shinstalls the software but does not change the host’s boot/memory policy by default. Run the host setup once and reboot to make the CXL memory usable asdevdax:
sudo ./scripts/setup_host.sh
sudo reboot
Or run the installer with
./install.sh --with-host-setup. See System Requirements → CXL devdax host setup.
2. Verify Installation
After installation and reboot, run validate_host.sh to verify the entire setup:
wget https://raw.githubusercontent.com/xcena-dev/public_sdk_release/refs/heads/main/scripts/validate_host.sh
bash validate_host.sh
Example Output
XCENA Host Environment Validation
2026-02-12 09:21:03
--- System Environment ----------------------
[ INFO ] OS Ubuntu 24.04.3 LTS
[ INFO ] Kernel 6.17.0-14-generic
[ INFO ] Environment Native
--- PCI / Hardware --------------------------
[ OK ] XCENA PCI device detected
01:00.0 CXL [0502]: Device [20a6:0100] (rev 01)
11:00.0 CXL [0502]: Device [20a6:0100] (rev 01)
--- CXL / DAX -------------------------------
[ OK ] cxl command found
[ OK ] daxctl command found
[ OK ] CEDT ACPI table present
[ OK ] CXL kernel modules loaded
[ OK ] CXL region detected
region0 size=229.0 GB type=ram state=commit
region1 size=229.0 GB type=ram state=commit
[ OK ] DAX device found
dax0.0 perm=666 size=229.0 GB mode=devdax
dax1.0 perm=666 size=229.0 GB mode=devdax
--- Driver ----------------------------------
[ OK ] mx_dma module loaded
[ OK ] /dev/mx_dma/ devices found
[ OK ] /dev/mx_dma/ device permissions OK
--- PXL Library -----------------------------
[ OK ] libpxl installed (v2.0.0)
[ OK ] pxl_resourced service active
[ OK ] pxl_resourced service enabled
--- CLI & Tools -----------------------------
[ OK ] xcena_cli found
[ OK ] Number of devices : 2
[0] mx1p BDF=0000:01:00.0 computable=True
[1] mx1p BDF=0000:11:00.0 computable=True
[ OK ] xtop found
--- MU Toolchain ----------------------------
[ OK ] MU library installed
[ OK ] MU LLVM installed (21.1.2/r4)
Validation Categories
System Environment
- Host OS distribution and version, Linux kernel version, and execution environment type (Native or Docker).
- Ensures the system meets the minimum platform requirements for the SDK.
PCI / Hardware
- Detects XCENA CXL Type 3 devices on the PCIe bus via
lspci. - At least one device must be present for the SDK to operate.
CXL / DAX
- Verifies CXL userspace utilities (
cxl,daxctl) and CEDT ACPI table presence. - Checks CXL kernel module loading and CXL region commitment.
- Validates DAX device availability with correct permissions and
devdaxmode.
Driver
- Checks that the
mx_dmakernel module is loaded. - Verifies
/dev/mx_dma/character device nodes are created with proper permissions for DMA communication.
PXL Library
- Confirms the PXL shared library is installed.
- Verifies the
pxl_resourcedresource management daemon is active (running) and enabled (auto-start on boot).
CLI & Tools
- Verifies that
xcena_clican enumerate connected devices. - Checks that monitoring tools such as
xtopare available in the system PATH.
MU Toolchain
- Checks installation of the MU firmware library.
- Verifies the MU LLVM cross-compiler toolchain required for building device-side MU kernel binaries.
Tip All items should show
[ OK ]or[ INFO ]. If any item shows[ FAIL ]or[ WARN ], follow the guidance in the output or refer to the Troubleshooting guide.[ WARN ] MU LLVMis expected if the MU toolchain is not required for your use case.
Important
The CXL device must be in
devdaxmode for computing. Ifvalidate_host.shshows a DAX mode warning, run the host setup and reboot — it installsxcena-devdax.service, which re-applies the conversion on every boot:sudo ./scripts/setup_host.sh sudo rebootFor a one-off manual conversion (does not persist across reboots):
sudo daxctl reconfigure-device --mode=devdax dax0.0 sudo systemctl restart pxl_resourcedIf it fails with
Device or resource busy, the memory was already onlined as system-ram — see CXL devdax host setup.