# Target Setup for the STM32MP135f and other Linux based targets

This guide aims to explain how to setup a Linux based target for the Software Renderer Platform and how to build a player for this target. The guide was tested on the STM32MP135f but the setup should be similar on most other Linux platforms that support DRM/KMS.

### <span lang="EN-US">Before you begin</span>

<span lang="EN-US">Before starting with the setup guide, we recommend the following to get familiar with CGI-Studio:</span>

- <span lang="EN-US">Explore CGI-Studio  
    Read the <span style="color: rgb(230, 126, 35);">[Quick Start Guide](https://doc316en.candera.eu/books/getting-started/chapter/quick-start-guide)</span>.   
    </span>
- <span lang="EN-US">Learn to create SceneComposer Solutions  
    The documentation provides instructions on how to create simple SceneComposer solutions. To access SceneComposer navigate to:  
    *&lt;cgi-studio-installation-path&gt;\\bin\\SceneComposer\\SceneComposer.exe*</span>
- <span lang="EN-US">Generate Assets for Simulation and Target Environments  
    You can find guidance on generating assets from solutions (binary files containing solution information for the player) for both simulation and target environments in the <span style="color: rgb(230, 126, 35);">[documentation](https://doc316en.candera.eu/books/asset-library-generation)</span>.  
    </span>

<span lang="EN-US">With this knowledge you should be fit to complete this guide.</span>

#### <span lang="EN-US">Target and build setup</span>

<span lang="EN-US">For setup of the ST32MP135f-DK follow the guide provided by STM: <span style="color: rgb(230, 126, 35);">[Populate the target and boot the image - stm32mpu](https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP135x-DK/Let%27s_start/Populate_the_target_and_boot_the_image)</span></span>

<span lang="EN-US">For setup of the SDK (inside a WSL or Linux host PC) to build a player for the STM32 follow this guide provided by STM: <span style="color: rgb(230, 126, 35);">[Install the SDK - stm32mpu](https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP135x-DK/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Install_the_SDK)</span></span>

#### <span lang="EN-US">Building the Player</span>

<span lang="EN-US">tested inside an Ubuntu WSL:</span>

1. <span lang="EN-US">source the SDK like described in the Install the SDK Guide from STM</span>
2. <span lang="EN-US"> within the root directory of cgi trunk:</span>
    1. <span lang="EN-US">mkdir build &amp;&amp; cd build</span>
    2. <span lang="EN-US"><span data-teams="true">cmake -DCMAKE\_TOOLCHAIN\_FILE="../cgi\_studio\_devices/src/SoftwareRenderer2D/ToolchainFiles/GCC-toolchain-STM32MP135f-DrmKms-Linux.txt" -DCGIDEVICE\_EVDEV\_INPUT\_ENABLED=ON ../cmake/Candera/Player/ &amp;&amp; make -j</span></span>

<span lang="EN-US"><span data-teams="true">The Player should now be built and can be uploaded to the Target.</span></span>

#### Uploading Player and Asset file to the target

1. Connect an USB-C Cable to CN7 USB-C of the target to the host pc
2. Connect USB-C Power cable to the PWR USB-C port
3. After the device boots a ssh connection can be established to the device: 
    1. ssh [root@192.168.7.162](mailto:root@192.168.7.162) #the static ip address of the target
    2. It might be necessary to kill weston if it is still running. It NEEDS to be killed otherwise there will be a conflict with the Player over display access
4. Copy the compiled player and in Scene Composer generated Asset.bin file to the target (using WinScp or scp) and run them like so: 
    1. ./Player Asset.bin