Software Installation

This section describes how to get your host development environment set up with the necessary software including the system requirements before you begin installing the software. To make sure your system meets all the pre-requisites, the Palette installation script, install.py, automatically runs through the dependencies checklist.

The pre-requisites for installing the Palette software are listed in the Installation Requirements table below.

Installation Requirements

For more information on requirements, see System Requirements.

Requirement Type

Requirement Details

Operating Systems

  • Ubuntu LTS 22.04

  • Windows 10 Pro / 11 Pro

Docker Engine

  • Ubuntu Docker Engine v20.10.21 or above

  • Windows Docker Engine v23.0.5

Python

  • Python 3.8.10 or above

Open Ports

  • A port within the range 49132–65535 should be utilized.

Firewall access

  • Port 80 (HTTP) ingoing and outgoing traffic

  • Docker communication with external networks

  • Access to connect to remote devices through SSH using port 22

System

An x86_64 machine with:

  • A minimum of 4 CPU available cores

  • A minimum of 16 GB of RAM

  • A minimum of 30 GB of local storage

  • [Recommended] SSD storage for faster installations

Palette and MLSOC Firmware

  • Palette: 1.6.0_Palette_SDK_master_B202

  • MLSoC Firmware: 1.6.0_Palette_FW_master_B1658

Downloading Palette Software

Download Now

Installing on Linux

Steps

  1. Unzip the downloaded software to a local directory and change your directory to 1.6.0_Palette_SDK_master_B202/sima-cli/:

    sima-user@sima-user-machine:~$ cd Downloads
    sima-user@sima-user-machine:~/Downloads$ unzip 1.6.0_Palette_SDK_master_B202.zip
       Archive: 1.6.0_Palette_SDK_master_B202.zip
       creating: 1.6.0_Palette_SDK_master_B202/
       creating: 1.6.0_Palette_SDK_master_B202/sima-cli/
       inflating: 1.6.0_Palette_SDK_master_B202/sima-cli/uninstall.py
       inflating: 1.6.0_Palette_SDK_master_B202/sima-cli/release-notes.txt
       inflating: 1.6.0_Palette_SDK_master_B202/sima-cli/stop.py
       inflating: 1.6.0_Palette_SDK_master_B202/sima-cli/start.py
       inflating: 1.6.0_Palette_SDK_master_B202/sima-cli/install.py
       inflating: 1.6.0_Palette_SDK_master_B202/sima-cli/1.6.0_Palette_SDK_master_B202.tar
       inflating: 1.6.0_Palette_SDK_master_B202/sima-cli/preinstall.py
    sima-user@sima-user-machine:~/Downloads$ cd 1.6.0_Palette_SDK_master_B202/sima-cli/
    sima-user@sima-user-machine:~/Downloads/1.6.0_Palette_SDK_master_B202/sima-cli$ ls
       install.py  release-notes.txt  start.py  uninstall.py  preinstall.py  1.6.0_Palette_SDK_master_B202.tar  stop.py
    

    The output of the command will be as shown above. It will take approximately a couple of minutes to complete the Docker image extraction.

    Note

    The Palette software package is delivered using the Docker container application; you must add your user to the Docker group if you have not done it already. Additionally, update your Docker application to the latest version. Follow the Docker post-installation steps at official documentation. For the Docker Desktop, follow the steps at official installation docs. To add a user to the Docker Engine see the code below.

    sima-user@sima-user-machine:~$ sudo apt-get update
    sima-user@sima-user-machine:~$ sudo apt-get install docker-engine
    
  2. If you have previously installed the Palette software, stop the Docker container before proceeding to install this latest version of the Palette software. This ensures graceful termination of any ongoing processes using the Palette software.

  3. Install all the necessary packages. See code below.

    sima-user@docker-image-id:~$ sudo apt-get install python3
    sima-user@docker-image-id:~$ sudo apt-get install python3-pip
    sima-user@docker-image-id:~$ sudo apt-get install net-tools
    

Dependencies Checklist

The installation script install.py checks for the system requirements needed to ensure all dependencies are met for a successful installation of the Palette software. Additionally, the install.py script launches the Docker daemon if not already running on the host machine. Note that the user is prompted for consent before launching the Docker daemon.

See the System Requirements Report below.

sima-user@sima-user-machine:~/Downloads/1.6.0_Palette_SDK_master_B202/sima-cli$ python3 install.py
1.6.0_Palette_SDK_master_B202 Palette Dependency Checklist
**********************************

This script checks the necessary dependencies a system needs to meet to ensure compatibility and
readiness for Palette installation and use. Please review and verify each of the following dependencies.

Once all the dependencies are verified, a final report will be displayed. And the installation script automatically proceeds with installing the software.

___________________________________________________________________________
SYSTEM REQUIREMENTS REPORT

+-----------------+-------------------+-----------------------+----------+
| Component       | Requirement       | Found                 | Result   |
+=================+===================+=======================+==========+
| OS Version      | 20.04/22.04       | 22.4                  | [PASS]   |
+-----------------+-------------------+-----------------------+----------+
| Docker          | v20.10.21         | 27.0.2                | [PASS]   |
+-----------------+-------------------+-----------------------+----------+
| Python          | 3.8.10            | 3.12.3                | [PASS]   |
+-----------------+-------------------+-----------------------+----------+
| CPU/RAM         | 4 Cores/16 GB RAM | 24 Cores/67.15 GB RAM | [PASS]   |
+-----------------+-------------------+-----------------------+----------+
| Free space      | 30 GB free        | 1406.9 GB             | [PASS]   |
+-----------------+-------------------+-----------------------+----------+
| Firewall status | disabled          | disabled              | [PASS]   |
+-----------------+-------------------+-----------------------+----------+
--------------------------------------------------------------------------
Result:


[PASS] All system requirements are successfully met. You may proceed to Palette installation.


Using port 4912 for the installation.
Docker daemon is not running. Do you want to start it? [y/n]: y

However, if you wish to only check for system readiness, pass the --check-dependencies flag when running the install.py script as shown below. The install.py script verifies all the dependencies and then stops; it does not proceed with installation of the software.

sima-user@sima-user-machine:~/Downloads/1.6.0_Palette_SDK_master_B202/sima-cli$ python3 install.py --check-dependencies

Installing the Software

Follow the steps below to install the Palette software.

Steps

  1. Run python3 install.py and set up the Docker shared directory.

    The install.py script prompts the user for consent and launches the Docker daemon if not already running on the host machine. Once the Docker container is running, you will create a working directory and mount it inside the Docker container as shown in the prompt below. This work directory will be shared between the Docker SDK image and the host machine; and in this folder you can place most of your development files so that they persist even after the container is shut down. In this case, the default directory is shown, but you may choose any other directory on the host machine.

    sima-user@sima-user-machine:~/Downloads/1.6.0_Palette_SDK_master_B202/sima-cli$ python3 install.py
       ...
    

Note

The default work directory suggested by the install script will not be the same for all users.

Running/Launching Software

Steps

  1. Start the Docker container and log in. Note that the start.py script verifies whether the Docker container is running before proceeding to launch the CLI SDK.

    sima-user@sima-user-machine:~/Downloads/1.6.0_Palette_SDK_master_B202/sima-cli$ python3 start.py
    Set no_proxy to localhost,127.0.0.1
    Checking if the container is already running...
    ==> Container is already running. Proceeding to start an interactive shell.
    sima-user@docker-image-id:/home$: ps aux
       USER          PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
       sima-user       1  4.6  0.1  30928 22596 pts/0    Ss+  05:52   0:00 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/conf.d/
       sima-user       7  0.0  0.0   7244  3712 pts/1    Ss   05:52   0:00 bash
       sima-user      21  199  1.2 7570224 205076 pts/0  Sl   05:52   0:03 java -jar rpm-service.jar
       sima-user      22  205  1.2 7570224 210388 pts/0  Sl   05:52   0:04 java -jar plugin-compilation.jar
       sima-user      23 33.0  0.0   2908  1792 pts/0    S    05:52   0:00 /usr/local/bin/device_status_shadow -v
       sima-user      24  221  1.2 7570224 209960 pts/0  Sl   05:52   0:04 java -jar gst-generator-service.jar
       sima-user      25 35.5  0.0   2908  1792 pts/0    S    05:52   0:00 /usr/local/bin/local_port_forwarding -v
       sima-user      26  210  1.3 5495088 215624 pts/0  Sl   05:52   0:04 java -Xmx2048m -jar packaging-service.jar
       sima-user      27 38.5  0.0   2908  1792 pts/0    S    05:52   0:00 /usr/local/bin/pcie_forwarding -v
       sima-user      28  140  0.8 7570224 145372 pts/0  Sl   05:52   0:02 java -jar performance-estimator.jar
       sima-user      29 19.0  0.0   2908  1664 pts/0    S    05:52   0:00 /usr/local/bin/remote_port_forwarding -v
       sima-user     127 31.0  0.6 479800 99848 pts/0    Sl   05:52   0:00 /usr/local/bin/remote_port_forwarding -v
       sima-user     128 61.0  0.7 129396 115032 pts/0   S    05:52   0:00 /usr/local/bin/device_status_shadow -v
       sima-user     129 57.0  0.7 500208 116800 pts/0   Sl   05:52   0:00 /usr/local/bin/local_port_forwarding -v
       sima-user     141 53.0  0.6 480952 104888 pts/0   Sl   05:52   0:00 /usr/local/bin/pcie_forwarding -v
       sima-user     164  0.0  0.6 279012 105364 pts/0   Sl   05:52   0:00 /usr/local/bin/local_port_forwarding -v
       sima-user     187  0.0  0.0   8896  2944 pts/1    R+   05:52   0:00 ps aux
    

Verifying the Installation

Steps

  1. To verify installation, run the build and deploy software contained in the Palette software, the mpk package.

    sima-user@docker-image-id:/home$ mpk --help
        usage: mpk [-h] [-d] [-q] [-v] {pe,model,remote-log,device,create,debug,deploy,firmware-upgrade,kill,launch,list,remove} ...
    
        SiMa CLI Tool
    
        options:
        -h, --help            show this help message and exit
        -d, --debug           full application debug mode
        -q, --quiet           suppress all console output
        -v, --version         show program's version number and exit
    
        sub-commands:
        {pe,model,remote-log,device,create,debug,deploy,firmware-upgrade,kill,launch,list,remove}
            pe                  pe controller
            model               model controller
            remote-log          remote-log controller
            device              device controller
            create              create mpk from directory
            debug               debug a running package or deploy mpk in debug mode
            deploy              Deploy mpk to target
            firmware-upgrade    Upgrade or Reset a device
            kill                Kill the current running package.
                                Note: 1. In case -i/--id parameter isn't provided, it will kill the latest active deployment.
                                      2. Incase only -i/--id parameter is provided, the latest deployed mpk (to a target) with the given id is killed.
                                      3. In case both -i/--id and -t/--target parameters are provided, only the latest active deployment with given id on given target will be killed.
            launch              Launch previously deployed mpk
            list                List the current running packages
            remove              Remove previously deployed mpk
    

Installing on Windows using Hyper-V

The Palette software supports Windows OS in Hyper-V mode, the setup and installation steps are described below.

Note

The Docker application (Docker Desktop or Docker Engine) must be installed before installing the Palette software.

Follow the link below for downloading and installing the Docker Desktop application. https://docs.docker.com/desktop/install/windows-install/

Use the build version 4.26.1 or lower. See, https://docs.docker.com/desktop/release-notes/ for details.

In the Configuration window, do not click in the first checkbox, thereby the Hyper-V option will be enabled in the Docker Desktop application.

../../_images/Palette_windows_Hyper_V.png

Steps

  1. Reboot your PC and make sure that the Hyper-V option is enabled automatically as shown in the below image. If not, please select Hyper-V manually.

    ../../_images/Palette_windows_Hyper_V.png
  2. Launch the Docker Desktop application and open settings. Under resources, increase the memory to 6 GB as shown in the below image and choose Apply & Restart option.

    ../../_images/docker_resources.png
  3. Unzip the Palette software file.

  4. Launch Windows powershell as an administrator and navigate to the sima-cli folder of the downloaded Palette software uncompressed file.

  5. Make sure Python is installed on the computer by running the below command in powershell.

    PS C:\Users\SiMaUser> python --version
    Python 3.10.8
    
  6. Launch the Docker Engine application and continue without sign-in if required.

  7. Install the Palette software.

     PS C:\Users\SiMaUser\Downloads\1.6.0_Palette_SDK_master_B202\sima-cli> python ./install.py
    
  8. Enter the workspace directory of your choice (this is the directory which gets mounted in the container) and wait untill installation completes. Typical flow is mentioned below.

  9. If prompted for file sharing permission from Docker, accept it.

    ../../_images/docker_permissions.png
  10. Launch the Palette software.

     PS C:\Users\SiMaUser\Downloads\1.6.0_Palette_SDK_master_B202\sima-cli> python ./start.py
    

Uninstalling the Palette Software

  1. Run the following command.

    sima-user@sima-user-machine:/Downloads/1.6.0_Palette_SDK_master_B202/sima-cli$ python ./uninstall.py