Let's start Develop on Arm® Cortex®-A7
Step category in.png Unpack the board Step.png Populate the target and boot the image Step.png Execute basic commands Step.png Use the demo launcher Step category out.png

1. Overview[edit source]

This stage explains how to connect the Linux terminal of your board to your host computer through the ST-LINK/V2-1.
Then you will see how to execute basic commands with the Linux command line interface in order to be familiarized with the Linux console.

2. The serial terminal[edit source]

The serial terminal allows to communicate with the board trough a UART serial interface.

  • Install minicom
 sudo apt-get install minicom
  • Get the ttyACM device instance that need to be used to access the ST-LINK/V2-1
 ls /dev/ttyACM*
  • Connect the minicom to the /dev/ttyACM0 device
 minicom -D /dev/ttyACM0
Welcome to minicom 2.7

Compiled on Nov 15 2018, 20:18:47.
Port /dev/ttyACM0, 15:56:03

Press CTRL-A Z for help on special keys
  • Press the reset button to reset the board. You should see boot log displayed in the minicom window

For ecosystem release v2.0.0 :

NOTICE:  Model: STMicroelectronics STM32MP157F-DK2 Discovery Board
NOTICE:  Board: MB1272 Var4.0 Rev.C-02
INFO:    Reset reason (0x14):
INFO:      Pad Reset from NRST
INFO:    PMIC version = 0x20
INFO:    Using SDMMC
INFO:      Instance 1
INFO:    Boot used partition fsbl1
NOTICE:  BL2: v2.2-r1.0(debug):v2.2-dirty
NOTICE:  BL2: Built : 13:36:23, Oct 22 2019
INFO:    Using crypto library 'stm32_crypto_lib'
INFO:    BL2: Doing platform setup
INFO:    RAM: DDR3-DDR3L 16bits 533000Khz
INFO:    Memory size = 0x20000000 (512 MB)
INFO:    BL2 runs SP_MIN setup
INFO:    BL2: Loading image id 4
INFO:    Loading image id=4 at address 0x2ffed000
INFO:    Image id=4 loaded: 0x2ffed000 - 0x2ffff000
INFO:    BL2: Loading image id 5
INFO:    Loading image id=5 at address 0xc0100000
INFO:    STM32 Image size : 870692
INFO:    Image id=5 loaded: 0xc0100000 - 0xc01d4924
WARNING: Skip signature check (header option)
NOTICE:  ROTPK is not deployed on platform. Skipping ROTPK verification.
NOTICE:  BL2: Booting BL32
INFO:    Entry point address = 0x2ffed000
INFO:    SPSR = 0x1d3
NOTICE:  SP_MIN: v2.2-r1.0(debug):v2.2-dirty
NOTICE:  SP_MIN: Built : 13:36:23, Oct 22 2019
INFO:    ARM GICv2 driver initialized
INFO:    stm32mp IWDG1 (12): Secure
INFO:    SP_MIN: Initializing runtime services
INFO:    SP_MIN: Preparing exit to normal world

U-Boot 2020.01-stm32mp-r1 (Jan 06 2020 - 20:56:31 +0000)

Model: STMicroelectronics STM32MP157F-DK2 Discovery Board
Board: stm32mp1 in trusted mode (st,stm32mp157f-dk2)
Board: MB1272 Var4.0 Rev.C-02
DRAM:  512 MiB
- MPU : 800 MHz
- MCU : 208.878 MHz
- AXI : 266.500 MHz
- PER : 24 MHz
- DDR : 533 MHz
WDT:   Started with servicing (32s timeout)
NAND:  0 MiB
MMC:   STM32 SD/MMC: 0, STM32 SD/MMC: 1
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@5800a000
Hit any key to stop autoboot:  0
Boot over mmc0!
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:4...
Found /mmc0_extlinux/stm32mp157f-dk2_extlinux.conf
Retrieving file: /mmc0_extlinux/stm32mp157f-dk2_extlinux.conf
706 bytes read in 32 ms (21.5 KiB/s)
Retrieving file: /splash.bmp
18244 bytes read in 33 ms (539.1 KiB/s)
Select the boot mode
1:      OpenSTLinux
2:      stm32mp157f-dk2-a7-examples
3:      stm32mp157f-dk2-m4-examples
Enter choice: 1:        OpenSTLinux
Retrieving file: /uInitrd
3632439 bytes read in 185 ms (18.7 MiB/s)
Retrieving file: /uImage
7309840 bytes read in 341 ms (20.4 MiB/s)
append: root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw console=ttySTM0,115200
Retrieving file: /stm32mp157f-dk2.dtb
72902 bytes read in 35 ms (2 MiB/s)
## Booting kernel from Legacy Image at c2000000 ...
   Image Name:   Linux-5.4.31
   Created:      2020-04-08   7:08:47 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    7309776 Bytes = 7 MiB
   Load Address: c2000040
   Entry Point:  c2000040
   Verifying Checksum ... OK
## Flattened Device Tree blob at c4000000
   Booting using the fdt blob at 0xc4000000
   XIP Kernel Image
   Loading Ramdisk to cfc89000, end cffffd37 ... OK
   Loading Device Tree to cfc74000, end cfc88cc5 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.4.31 (oe-user@oe-host) (gcc version 9.3.0 (GCC)) #1 SMP PREEMPT Wed Apr 8 07:08:47 UTC 2020
[    6.169691] NET: Registered protocol family 10
[    6.211281] Segment Routing with IPv6
[    6.261437] systemd[1]: systemd 244.3+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)
[    6.282618] systemd[1]: Detected architecture arm.

Welcome to ST OpenSTLinux - Weston - (A Yocto Project Based Distro) 3.1-openstlinux-5.4-dunfell-mp1-20-06-24 (dunfell)!

[    6.424921] systemd[1]: Set hostname to <stm32mp1>.
[    6.439941] systemd[1]: Hardware watchdog 'STM32 Independent Watchdog', version 0
[    6.447247] systemd[1]: Set hardware watchdog to 32s.
[    7.203641] systemd[1]: Unnecessary job for /dev/ttySTM0 was removed.
[    7.216113] systemd[1]: Created slice system-getty.slice.
         Starting Update UTMP about System Runlevel Changes...
[  OK  ] Started Update UTMP about System Runlevel Changes.
[  OK  ] Started Weston Wayland Compositor (on tty7).

ST OpenSTLinux - Weston - (A Yocto Project Based Distro) 3.1-openstlinux-5.4-dunfell-mp1-20-06-24 stm32mp1 ttySTM0

stm32mp1 login: root (automatic login)
Last login: Fri Feb  7 15:51:04 UTC 2020 on tty7

3. Basic commands[edit source]

3.1. Printing distribution specific information[edit source]

For ecosystem release v2.0.0 :

 cat /etc/build
Build Configuration:  |
BB_VERSION = 1.46.0
BUILD_SYS = x86_64-linux
TARGET_SYS = arm-ostl-linux-gnueabi
MACHINE = stm32mp1
DISTRO = openstlinux-weston
DISTRO_VERSION = 3.1-openstlinux-5.4-dunfell-mp1-20-06-24
TUNE_FEATURES = arm vfp cortexa7 neon vfpv4 thumb callconvention-hard
MANIFESTVERSION = ostl-20-06-24-rc7-1-gcb1de90
ACCEPT_EULA_stm32mp1 = 1
PREFERRED_PROVIDER_virtual/kernel = linux-stm32mp
PREFERRED_VERSION_linux-stm32mp =
Layer Revisions:      |
meta-python       = HEAD:b5f510e48080b6dc710ff4800feb90ef679c5456
meta-oe           = HEAD:b5f510e48080b6dc710ff4800feb90ef679c5456
meta-gnome        = HEAD:b5f510e48080b6dc710ff4800feb90ef679c5456
meta-xfce         = HEAD:b5f510e48080b6dc710ff4800feb90ef679c5456
meta-initramfs    = HEAD:b5f510e48080b6dc710ff4800feb90ef679c5456
meta-multimedia   = HEAD:b5f510e48080b6dc710ff4800feb90ef679c5456
meta-networking   = HEAD:b5f510e48080b6dc710ff4800feb90ef679c5456
meta-webserver    = HEAD:b5f510e48080b6dc710ff4800feb90ef679c5456
meta-filesystems  = HEAD:b5f510e48080b6dc710ff4800feb90ef679c5456
meta-perl         = HEAD:b5f510e48080b6dc710ff4800feb90ef679c5456
meta-st-stm32mp   = HEAD:b86c2f2e092830f011a813d7f2c8fb076b2cbe66
meta-qt5          = HEAD:ac7514e2bc295c97faa86d24e8823829257adbb8
meta-st-openstlinux = HEAD:0124236609b3c1c56df265d7986919df4deb1814
meta              = HEAD:1795f30d8ab73d35710ca99064c51190dc84853e

3.2. Printing system information[edit source]

For ecosystem release v2.0.0 :

 uname -a
Linux stm32mp1 5.4.31 #1 SMP PREEMPT Wed Apr 8 07:08:47 UTC 2020 armv7l armv7l armv7l GNU/Linux

3.3. Printing Linux kernel and GCC versions[edit source]

For ecosystem release v2.0.0 :

 cat /proc/version
Linux version 5.4.31 (oe-user@oe-host) (gcc version 9.3.0 (GCC)) #1 SMP PREEMPT Wed Apr 8 07:08:47 UTC 2020

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

 df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        148M     0  148M   0% /dev
/dev/mmcblk0p6  690M  416M  229M  65% /
tmpfs           214M   64K  214M   1% /dev/shm
tmpfs           214M  8.8M  205M   5% /run
tmpfs           214M     0  214M   0% /sys/fs/cgroup
tmpfs           214M  4.0K  214M   1% /tmp
/dev/mmcblk0p4   58M   14M   41M  25% /boot
/dev/mmcblk0p5   15M  6.7M  6.8M  50% /vendor
tmpfs           214M  144K  214M   1% /var/volatile
/dev/mmcblk0p7   14G   39M   13G   1% /usr/local
tmpfs            43M     0   43M   0% /run/user/0

3.5. ssh connection (only if Ethernet cable is connected)[edit source]

  • Get the IP address of your board
 ip addr show eth0                                                                           
3: eth0: <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 eth0
       valid_lft 159045sec preferred_lft 159045sec
    inet6 xxxx::xx:xx:xx:xx/64 scope link 
       valid_lft forever preferred_lft forever
  • On the host computer connect the terminal to the board using ssh
 ssh root@xx.xx.xx.xx

Back button.png Overview button.png Next button.png