1. Overview[edit | edit source]
This stage explains how to install the SDK.
The SDK for OpenSTLinux distribution provides a standalone cross-development toolchain and libraries tailored to the contents of the specific image flashed onto the board.
2. Host computer configuration[edit | edit source]
2.1. Install extra packages[edit | edit source]
Additional Ubuntu packages must be installed to perform basic development tasks, basic cross-compilation (via Developer Package) or more complex cross-compilation such as OpenEmbedded does (via Distribution Package):
- Packages required by OpenEmbedded/Yocto (details here):
PC $> sudo apt-get update PC $> sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 pylint xterm PC $> sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto PC $> sudo apt-get install libmpc-dev libgmp-dev
- Packages needed for some "Developer Package" use cases:
PC $> sudo apt-get install libncurses5 libncurses5-dev libncursesw5-dev libssl-dev linux-headers-generic u-boot-tools device-tree-compiler bison flex g++ libyaml-dev libmpc-dev libgmp-dev
- Package for repo (used to download the "Distribution Package" source code):
Please follow the installation instructions described in repo. For Ubuntu 20.04, first sets python3 as default: PC $> sudo apt install python-is-python3
- Useful tools:
PC $> sudo apt-get install coreutils bsdmainutils sed curl bc lrzsz corkscrew cvs subversion mercurial nfs-common nfs-kernel-server libarchive-zip-perl dos2unix texi2html diffstat libxml2-utils
2.2. Additional configurations[edit | edit source]
Additional configurations have to be installed to support up to 16 partitions per MMC. By default, on Linux® systems, a maximum of 8 partitions are allowed on MMC. All Packages (Starter Package, ...) need more than 10 partitions for the storage device. In order to extend the number of partitions per device to 16, the following options must be added to modprobe:
PC $> echo 'options mmc_block perdev_minors=16' > /tmp/mmc_block.conf PC $> sudo mv /tmp/mmc_block.conf /etc/modprobe.d/mmc_block.conf
3. Download the SDK[edit | edit source]
3.1. For STM32MP13x lines
[edit | edit source]
- The STM32MP1 SDK is delivered through a tarball file named : SDK-x86_64-stm32mp13-disco-openstlinux-5.10-dunfell-mp13-21-11-30.tar.xz
STM32MP1 Developer Package SDK - STM32MP13-Ecosystem-v3.1.0.ALPHA release | |
---|---|
Download |
If you didn't retrieve yet the file SDK-x86_64-stm32mp13-disco-openstlinux-5.10-dunfell-mp13-21-11-30.tar.xz, please follow instructions on the downloading instructions page. |
- Uncompress the tarball file to get the SDK installation script
PC $> cd $HOME/STM32MPU_workspace/tmp
PC $> tar xvf SDK-x86_64-stm32mp13-disco-openstlinux-5.10-dunfell-mp13-21-11-30.tar.xz
3.2. For STM32MP15x lines
[edit | edit source]
- Download the Developer Package SDK into the following directory: $HOME/STM32MPU_workspace/tmp
- Uncompress the tarball file to get the SDK installation script
PC $> cd $HOME/STM32MPU_workspace/tmp
PC $> tar xvf en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17.tar.xz
4. Run the SDK installation script[edit | edit source]
4.1. For STM32MP13x lines
[edit | edit source]
- Create your STM32MP13 Developer Package SDK directory on your host computer
PC $> mkdir -p $HOME/STM32MPU_workspace/STM32MP13-Ecosystem-v3.1.0/Developer-Package/SDK
- Change the permissions of the SDK installation script so that it is executable
PC $> chmod +x stm32mp13-disco-openstlinux-5.10-dunfell-mp13-21-11-30/sdk/st-image-weston-openstlinux-weston-stm32mp13-disco-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp13-21-11-30.sh
- Execute the SDK installation script
PC $> ./stm32mp13-disco-openstlinux-5.10-dunfell-mp13-21-11-30/sdk/st-image-weston-openstlinux-weston-stm32mp13-disco-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp13-21-11-30.sh -d <working directory absolute path>/Developer-Package/SDK
- The following log is output when the installation is successful:
ST OpenSTLinux - Weston - (A Yocto Project Based Distro) SDK installer version 3.1.11-openstlinux-5.10-dunfell-mp13-21-11-30 ============================================================================================================================ You are about to install the SDK to "/home/osboxes/STM32MPU_workspace/STM32MP13-Ecosystem-v3.1.0/Developer-Package/SDK". Proceed [Y/n]? Y Extracting SDK..................................................................................................................................................................................................................................done Setting it up...done SDK has been successfully set up and is ready to be used. Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. $ . /home/osboxes/STM32MPU_workspace/STM32MP13-Ecosystem-v3.1.0/Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
4.2. For STM32MP15x lines
[edit | edit source]
- Create your STM32MP15 Developer Package SDK directory on your host computer
PC $> mkdir -p $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package/SDK
- Change the permissions of the SDK installation script so that it is executable
PC $> chmod +x stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh
- Execute the SDK installation script
PC $> ./stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh -d <working directory absolute path>/Developer-Package/SDK
- The following log is output when the installation is successful:
ST OpenSTLinux - Weston - (A Yocto Project Based Distro) SDK installer version 3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17 =========================================================================================================================== You are about to install the SDK to "/home/osboxes/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package/SDK". Proceed [Y/n]? y Extracting SDK.........................................................................................................................................................................................................................done Setting it up...done SDK has been successfully set up and is ready to be used. Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. $ . /home/osboxes/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
5. Start the SDK up[edit | edit source]
5.1. For STM32MP13x lines
[edit | edit source]
PC $> cd $HOME/STM32MPU_workspace/STM32MP13-Ecosystem-v3.1.0/Developer-Package
PC $> source SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
5.2. For STM32MP15x lines
[edit | edit source]
PC $> cd $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v3.1.0/Developer-Package
PC $> source SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
The following checks ensure that the environment is correctly set up:
- Check the target architecture
PC $> echo $ARCH arm
- Check the toolchain binary prefix for the target tools
PC $> echo $CROSS_COMPILE arm-ostl-linux-gnueabi-
- Check the C compiler version
PC $> $CC --version arm-ostl-linux-gnueabi-gcc (GCC) 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- Check that the SDK version is the expected one (e.g.)
PC $> echo $OECORE_SDK_VERSION
3.1.11-openstlinux-5.10-dunfell-mp13-21-11-30
If any of these commands fails or does not return the expected result, try to reinstall the SDK.