What is the SDK?

SDK overview

The software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific to a hardware platform and operating system combination.

The SDK can take the form of application programming interfaces (APIs) in the form of on-device libraries of reusable functions used to interface to a particular programming language, or it may be as complex as hardware-specific tools that can communicate with a particular embedded system.

The SDK facilitates adaptor development in the MDM environment.

Prerequisites

The following prerequisites must be met before installing and using the SDK.

  • The SDK installation is supported on the following platforms:
    • RHEL. The RHEL 9 operating system must be installed on the host. The NSP Installation and Upgrade Guide provides detailed instructions for the RHEL OS installation.

    • Mac. Supported operating system version — macOS Sequoia (version 15) and above. For more information, see SDK on Mac

    • Microsoft Windows. Supported operating system version — Windows 11 and above. For more information, see SDK on Microsoft Windows

  • Docker-CE version 29.x with compatible Docker Compose is required for the SDK.

  • To start the installation, log in as the root user on the SDK host.

  • The deployer host must have following utilities: Openssl, Curl, and Wget.

Server size requirements

The deployer host must have at least 6 CPU cores, 32 GB of memory, 16 GB of swap memory and a minimum of 200 GB disk space available to run the SDK.

Recommendations for SDK Usage on MAC/Windows system

  • Power Management — To prevent interruptions to long-running SDK processes such as adapter builds, configure the system’s power, sleep, and battery settings.

  • Process Behavior (Lock/Sleep):
    • Locked — When the system is locked, active SDK processes may pause and typically resume when it is unlocked.

    • Sleep — When the system enters sleep mode, SDK processes might pause or, in some instances, terminate. A process must be manually restarted if it terminates.

  • Build Processes — To ensure stability and prevent resource contention, avoid triggering parallel builds. Execute one build process at a time, waiting for its completion before initiating another.

  • User Accounts — To optimize memory use, it is recommended to utilize a single, default user account for the SDK. System memory may be adversely affected by the creation of several user accounts.

  • Code Server Instances — Close any unused code server instances to conserve memory and improve performance.

  • SDK Startup — The SDK must be manually started after the system boots or reboots. Following steps need to be performed after reboot:

    For MAC:
    • Access Colima VM via SSH.

      colima ssh

    • Switch to root user.

      su – root

    • Navigate to the <sdk-installation-directory> directory.

      For example, cd /Users/<username>/<sdk-installation-directory>

    • Start the SDK application. See How do I start the SDK application?.

    • Start the Code-Server application. See How do I start the Code-Sever?

    For Windows:
    • Open Windows PowerShell and execute the following command to connect to WSL VM.

      wsl -d Ubuntu-24.04

    • Switch to root user.

      su – root

    • Navigate to the <sdk-installation-directory> directory.

      For example, cd /Users/<username>/<sdk-installation-directory>

    • Start the SDK application. See How do I start the SDK application?.

    • Start the Code-Server application. See How do I start the Code-Sever?

  • Windows Terminal Sessions — For the SDK application to run on Windows (using WSL/Ubuntu), the PowerShell terminal session that was used to launch it must remain open.

  • System Resources:

    Recommended Specifications:
    • MAC — A minimum of 6 CPU cores, 12 GB of RAM,  8 GB of SWAP and 100 GB of disk space are recommended for optimal SDK performance.

    • Windows — A minimum of 8 CPU cores, 12 GB of RAM,  8 GB of SWAP and 100 GB of disk space are recommended for optimal SDK performance.

    Performance:
    • High-end systems will generally provide a superior user experience due to better performance.

  • Mac/Colima File Paths — For Mac and Colima environments, it is recommended to use a path located under /Users/<username>.

SDK on Mac

Before installing SDK on Mac, the following steps need to be performed.

  1. Install Colima. Open a terminal window and execute following command.

    brew install colima

  2. Install Docker.

    brew install docker

  3. Install Rosetta.

    softwareupdate --install-rosetta --agree-to-license

  4. Start Colima Virtual Machine with custom resource configuration.

    colima start --cpu 6 --memory 12 --disk 100 --runtime docker --arch aarch64 --vm-type=vz --vz-rosetta --network-address --dns 8.8.8.8

    Note: Rosetta is not necessary for Apple on Intel chips, and we can start Colima with the following command.

    colima start --cpu 6 --memory 12 --disk 100 --runtime docker --network-address --dns 8.8.8.8

  5. Configure Docker context to use Colima.

    unset DOCKER_HOST

    docker context use Colima

  6. Access Colima VM via SSH.

    colima ssh

  7. Set or update root user password inside Colima.

    sudo passwd root

    The following prompt is displayed to set root password.

    New password:

    A prompt to re-enter the password is displayed.

    Retype new password:

    Success message is displayed.

  8. Switch to root user.

    su – root

  9. Configure swap memory for improved performance.

    sudo fallocate -l 8G /swapfile &&

    sudo chmod 600 /swapfile && \

    sudo mkswap /swapfile && \

    sudo swapon /swapfile

  10. Go to How do I install the SDK?.

SDK on Microsoft Windows

Before installing SDK on Microsoft Windows, the following steps need to be performed. Before proceeding, ensure that Virtualization Technology (VT) is enabled; if not, enable it. Additionally, verify that WSL2 is installed on Windows, and install it if necessary.

  1. Create a configuration file, .wslconfig with following content and place it in the user directory, "C:\Users\<username>

    [wsl2]

    memory=12GB

    processors=8

    localhostForwarding=true

    swap=8GB

    kernelCommandLine = "sysctl.vm.swappiness=90"

  2. Open Windows PowerShell and execute the following command to install WSL.

    wsl --install -d Ubuntu-24.04

    The following prompt is displayed to create default user and password.

    Create a default Unix user account: <username>

    New password:

    A prompt to re-enter the password is displayed.

    Retype new password:

    Success message is displayed.

  3. Once the default user is created you can update the root password by executing the following command.

    sudo passwd root

    The following prompt is displayed to set root password.

    New password:

    A prompt to re-enter the password is displayed.

    Retype new password:

    Success message is displayed.

  4. Log in as root user.

    su - root

  5. Install and start the Docker.

  6. Go to How do I install the SDK?.

Restore configurations of Mac and Windows

If the user want to remove or uninstall SDK from their stations, or if there is an issue with setting up SDK and want to start a new configuration, follow these steps.

Cleanup in Mac:

  1. Access Colima VM via SSH.

    colima ssh

  2. Switch to root user.

    su - root

  3. Navigate to the <sdk-installation-directory> directory.

    For example, cd /Users/<username>/<sdk-installation-directory>

  4. Stop the Code-Server application. See How do I stop the Code-Sever?.

    ./code-server.sh stop

  5. Stop the SDK application. See Command line arguments.

    ./nsp-mdm-sdk.sh stop

  6. Delete the docker images.

    docker image prune -a -f

  7. Delete the SDK installation directory.

    For example, rm -rf /Users/<username>/<sdk-installation-directory>

  8. Exit from root user login.

    exit

  9. Exit from Colima VM.

    exit

  10. Stop the Colima VM.

    colima stop

  11. Remove the existing Colima VM and container data.

    colima delete

  12. Clean up residual Lima virtualization resources and unused disk artifacts.

    limactl prune

  13. Uninstall the Docker CLI and associated binaries.

    brew uninstall docker

  14. Uninstall the Colima CLI and remove local configuration binaries.

    brew uninstall Colima

Cleanup in Microsoft Windows:

  1. List the installed distributions.

    wsl -l -v

  2. Removes WSL distribution and associated data.

    wsl --unregister Ubuntu-24.04

Port information

The following table describes the list of ports available on the SDK.

Table 3-1: Port information

Default Port

Type

Encryption Info

Description

80

TCP

There is no encryption.

This port redirects to port 443.

3002

TCP

Encryption provided by TLS. Strong ciphers are supported.

This port provides an HTTPS interface to the web application.

443

TCP

Encryption provided by TLS. Strong ciphers are supported.

This port provides an HTTPS interface to the web application.

22

TCP

Dynamic encryption is used. The cipher suite and strength as per RFC 4253.

This port provides remote access through the SSH/SCP/SFTP protocols.

8101

TCP

Dynamic encryption is used. The cipher suite and strength as per RFC 4253.

This port provides remote access through the SSH/SCP/SFTP protocols.

8181

TCP

There is no encryption.

This is a Web console port.

5005

TCP

There is no encryption.

This port is for Java debugging.

162

UDP

When SNMPv3 is configured, static encryption is used. The cipher suite and strength are dependent on the network element.

This server port receives SNMP traps from network elements by default.

8282

TCP

Encryption provided by TLS. Strong ciphers are supported.

This port provides an HTTPS interface to the web application.