Last edited one month ago

Subpart - STM32MP2 - Starter Package

Applicable for STM32MP23x lines, STM32MP25x lines


1. Article purpose[edit | edit source]

This article gathers the information that applies to any STM32MP2 board.

Warning white.png Warning
To start efficiently the board, it's recommended to go through the Starter Package article relative to your board: Category:Starter Package

That's the reason why the steps 2, 3 and 6 referenced in this article depend on the considered board:


2. Checking the boot sequence[edit | edit source]

Assuming you have performed the optional step 6 above, the information (coming successively from the TF-A, OP-TEE OS, U-Boot and the Linux operating system that is booting on the board), should be displayed on the host PC Terminal.

Info white.png Information
The information displayed below might differ from that on your own application, and should just be considered as an example.
First information scrolled on the remote Terminal during boot
Last information scrolled on the remote Terminal during boot

In parallel, a U-Boot splash screen picture is displayed on the board display (if one is connected to the board).DSI U-Boot splash screen.png

A user space graphical boot splash screen (PSplash) picture is then briefly displayed on the board display (if one is connected to the board).DSI user splash screen.png

When the boot process is complete, the launcher application is shown on the board display (if one is connected to the board).

More detail about this launcher application in GTK demo launcher page.

3. Mouse, keyboard and Ethernet hot-plugs[edit | edit source]

Let's assume that the optional step 2 and step 3 were not achieved when setting up the system above.

When connecting a USB mouse, the following information is displayed by the Terminal program:

[  926.786326] usb 2-1.1: new low-speed USB device number 3 using ehci-platform
[  926.961413] input: Logitech Optical USB Mouse as /devices/platform/soc/5800d000.usbh-ehci/usb2/2-1/2-1.1/2-1.1:1.0/0003:046D:C016.0001/input/input2
[  926.975098] hid-generic 0003:046D:C016.0001: input: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-5800d000.usbh-ehci-1.1/input0


When connecting a USB keyboard, the following information is displayed by the Terminal program:

[ 1009.026567] usb 2-1.3: new low-speed USB device number 4 using ehci-platform
[ 1009.193990] input: Dell Dell USB Keyboard as /devices/platform/soc/5800d000.usbh-ehci/usb2/2-1/2-1.3/2-1.3:1.0/0003:413C:2003.0002/input/input3
[ 1009.280101] hid-generic 0003:413C:2003.0002: input: USB HID v1.10 Keyboard [Dell Dell USB Keyboard] on usb-5800d000.usbh-ehci-1.3/input0


When connecting an Ethernet cable, the following information is displayed by the Terminal program:

[ 1215.356377] stm32-dwmac 5800a000.ethernet end0: Link is Up - 1Gbps/Full - flow control rx/tx
[ 1215.363377] IPv6: ADDRCONF(NETDEV_CHANGE): end0: link becomes ready
[ 1215.391068] Link is Up - 1000/Half

4. Remote and local Terminal programs[edit | edit source]

As already explained in the step 6 above, a remote Terminal program can be installed and configured on your host PC in order to communicate with the board through a serial link or an Ethernet link: see How to get Terminal.

The remote Terminal on your host PC can be used to enter command lines, as shown below with the ip command to query the network interface parameters:

Example of command (ip) executed on the remote Terminal program


A local Terminal program can be launched directly on the board. Click on the small icon at the top left corner of the display (see the red arrow on the figure below):

Icon to launch a local Terminal program
Wayland Terminal program


Then the on-board Wayland Terminal can be used to directly enter command lines as shown below, still with the ip addr command to query the network interface parameters:

Example of command (ip addr) executed on the Wayland Terminal program


Consequently, unless an explicit restriction is mentioned, command lines can be run from both Terminals.

Note: in this article, any command executed on the board (through the remote Terminal or the Wayland Terminal) starts with , while any command executed on the host PC starts with .

5. Executing basic commands[edit | edit source]

Info white.png Information
The outputs of the commands executed below are examples; the outputs obtained might differ.

5.1. Having a look at the OpenSTLinux directory structure[edit | edit source]

The directory structure and directory contents in the OpenSTLinux distribution is standard. Some details are available in the OpenSTLinux directory structure article.

5.2. Identifying the software running on board[edit | edit source]

Info white.png Information
Obviously, what you obtain might differ from what is displayed on the Output example column.

For ecosystem release v6.0.0 More info.png[edit | edit source]

Software How to get its version Output example
TF-A TF-A Version number

NOTICE: BL2: v2.10-stm32mp1-r1.0(debug):lts-v2.10.5-dirty

U-Boot See the version displayed in the console

2023.10-stm32mp-r1 [...]

Linux kernel
cat /proc/version

Linux version 6.6.48 (xxxx@yyyy) (aarch64-ostl-linux-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.40.0.20230703) [...]

GCC
cat /proc/version

Linux version 6.6.48 (xxxx@yyyy) (aarch64-ostl-linux-gcc (GCC) 13.3.0) [...]

Yocto Project
grep DISTRO_CODENAME /etc/build

DISTRO_CODENAME = scarthgap

Weston
weston --version

weston 13.0.1

GStreamer
gst-play-1.0 --version

GStreamer 1.22.12

GPU (only on STM32MP25x lines More info.png)
cat /sys/kernel/debug/gc/version

6.4.19.4.952875 built [...]

5.3. Configuration tips[edit | edit source]

5.4. Getting board IP address[edit | edit source]

Prerequisite: your board is connected to your local network through the Ethernet connector (see step 3).

ip addr show end0                                                                           
3: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet xx.xx.xx.xx/xx brd xx.xx.xx.xx scope global dynamic end0
       valid_lft 159045sec preferred_lft 159045sec
    inet6 xxxx::xx:xx:xx:xx/xx scope link 
       valid_lft forever preferred_lft forever
  • Get the IP address of your board with the ifconfig Linux command line (a deprecated but well-known command):
ifconfig end0
end0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:xx.xx.xx.xx  Bcast:xx.xx.xx.xx  Mask:255.255.252.0
          inet6 addr: xxxx::xx:xx:xx:xx/xx Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2619 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1311 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:353250 (344.9 KiB)  TX bytes:118305 (115.5 KiB)
          Interrupt:247

5.5. Copying a file from your host PC to your board (and reciprocally)[edit | edit source]

5.6. Miscellaneous commands[edit | edit source]

Info white.png Information
The outputs of the commands executed below are examples; the outputs that you obtain might differ.

5.6.1. Printing distribution specific information[edit | edit source]

cat /etc/os-release
ID=openstlinux-weston
NAME="ST OpenSTLinux - Weston - (A Yocto Project Based Distro)"
VERSION="5.0.3-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06 (Scarthgap)"
VERSION_ID=5.0.3-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06
VERSION_CODENAME="scarthgap"
PRETTY_NAME="ST OpenSTLinux - Weston - (A Yocto Project Based Distro) 5.0.3-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06 (Scarthgap)"
CPE_NAME="cpe:/o:openembedded:openstlinux-weston:5.0.3-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06"

Where:

ID A lower-case string identifying the operating system
NAME A string identifying the operating system
VERSION A string identifying the operating system version, including a release code name
VERSION_ID A lower case string identifying the operating system version
VERSION_CODENAME Code name for the distribution
PRETTY_NAME A full pretty name of the release
CPE_NAME A CPE name for the operating system, following the Common Platform Enumeration Specification[1]

5.6.2. Printing system information[edit | edit source]

uname -a
Linux stm32mp25-XX-XX-XX 6.6.48 #1 SMP PREEMPT Thu May 11 14:04:52 UTC 2023 aarch64 GNU/Linux

Where:

Linux Kernel name
stm32mp25-XX-XX-XX Network node hostname
6.6.48 Kernel release
#1 SMP PREEMPT Fri Mar 15 18:27:50 UTC 2024 Kernel version
aarch64 Machine hardware name
GNU/Linux Operating system

5.6.3. Printing Linux kernel and GCC versions[edit | edit source]

cat /proc/version
Linux version 6.6.48 (oe-user@oe-host) (aarch64-ostl-linux-gcc (GCC) 12.3.0, GNU ld (GNU Binutils) 2.40.0.20230620) #1 SMP PREEMPT Thu May 11 14:04:52 UTC 2023

Where:

Linux Kernel name
version 6.6.48 Kernel release
(xxxx@yyyy) Person (xxxx) who compiled the kernel, and machine (yyyy) where it happened
(aarch64-ostl-linux-gcc (GCC) 12.3.0 ) Version of the GCC compiler used to compile the kernel
#1 SMP PREEMPT Thu May 11 14:04:52 UTC 2023 Kernel version; type of kernel (SMP) and date and time of the kernel compilation

5.6.4. Printing the amount of disk space available on all mounted file systems[edit | edit source]

df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         116M     0  116M   0% /dev
/dev/mmcblk0p10  684M  453M  184M  72% /
tmpfs            195M  176K  195M   1% /dev/shm
tmpfs             78M  8.8M   70M  12% /run
tmpfs            4.0M     0  4.0M   0% /sys/fs/cgroup
tmpfs            195M   16K  195M   1% /tmp
/dev/mmcblk0p8    55M   39M   12M  77% /boot
/dev/mmcblk0p9    14M  5.9M  6.8M  47% /vendor
tmpfs            195M   96K  195M   1% /var/volatile
/dev/mmcblk0p11   14G   45M   13G   1% /usr/local
tmpfs             39M  4.0K   39M   1% /run/user/1000
tmpfs             39M     0   39M   0% /run/user/0

Where:

Filesystem Source of the mount point, usually a device
Size Total size in human readable format (e.g. 1K, 234M, 2G)
Used Used size in human readable format
Available Available size in human readable format
Use% Percentage of used size divided by the total size
Mounted on Mount point


Note: the user file system (userfs) and the boot file system (bootfs) are accessible respectively through the /usr/local mounting point, and the /boot mounting point (see Flash partitions for a description of the file systems).