Last Updated on November 25, 2023

Reliable Embedded Systems – Robert Berger e.U. build framework & “evil vendor tree”

Objectives

Can the Reliable Embedded Systems – Robert Berger e.U. Yocto Project®/OpenEmbedded build environment be used in combination with an “evil vendor tree”? Yes for sure! We’ll build an image – a “core-image-minimal” – for the phyBOARD®-Sargas STM32MP15 and we’ll deploy it to an SD card.

Prerequisites

Assuming you already have the Reliable Embedded Systems – Robert Berger e.U. Yocto Project®/OpenEmbedded build framework installed you are in a good position and can skip the chapter “Install a minimal Build framework”.

Install a minimal Build framework

Install docker

sudo apt install docker.io
sudo usermod -aG docker ${USER}
sudo reboot

Create a directory where you have plenty of space

mkdir -p ~/projects/resy-playground
cd ~/projects/resy-playground
sudo ln -sf ~/projects/resy-playground /workdir

You might need to fix some permissions.

On host machine

Start docker build container

student@e450-7:/workdir⟫

cd /workdir
wget https://raw.githubusercontent.com/RobertBerger/manifests/master/phytec/resy-poky-container-evl-phycore-stm32mp1-pd21.1.0.sh
chmod +x resy-poky-container-evl-phycore-stm32mp1-pd21.1.0.sh
./resy-poky-container-evl-phycore-stm32mp1-pd21.1.0.sh

In container

The first time only

pokyuser@e450-7:/workdir$

mkdir -p /workdir/3rd-party/phyboard-sargas
cd /workdir/3rd-party/phyboard-sargas

wget https://download.phytec.de/Software/Linux/Yocto/Tools/phyLinux
chmod +x phyLinux

This you’ll need to do not only the first time

cd /workdir/3rd-party/phyboard-sargas
./phyLinux init
repo tool wrapper is installed: /usr/bin/repo
no repo repository in current directory
installing repo tool
using repo-1 branch of upstream repo-tool
if you want to use newer branches, you need to use pyhton >= 3.6
no repository initialized
Initializing from an empty directory
updating remote phytec repo repository
('$', 'repo init --repo-url=https://git.phytec.de/git/git-repo --repo-branch=repo-1 -u git://git.phytec.de/phy2octo')
Downloading Repo source from https://git.phytec.de/git/git-repo
remote: Zähle Objekte: 6258, Fertig.
remote: Komprimiere Objekte: 100% (2713/2713), Fertig.
remote: Total 6258 (delta 4094), reused 5616 (delta 3476)
Receiving objects: 100% (6258/6258), 2.47 MiB | 6.18 MiB/s, done.
Resolving deltas: 100% (4094/4094), done.
repo: Updating release signing keys to keyset ver 2.3
Get git://git.phytec.de/phy2octo
remote: Counting objects: 2964, done.        
remote: Compressing objects: 100% (1821/1821), done.        
remote: Total 2964 (delta 2019), reused 1679 (delta 1116)        
Receiving objects: 100% (2964/2964), 491.58 KiB | 1.83 MiB/s, done.
Resolving deltas: 100% (2019/2019), done.
From git://git.phytec.de/phy2octo
 * [new branch]      am335x     -> origin/am335x
 * [new branch]      imx6       -> origin/imx6
 * [new branch]      imx6ul     -> origin/imx6ul
 * [new branch]      imx8       -> origin/imx8
 * [new branch]      imx8m      -> origin/imx8m
 * [new branch]      imx8mm     -> origin/imx8mm
 * [new branch]      imx8mp     -> origin/imx8mp
 * [new branch]      master     -> origin/master
 * [new branch]      nightly    -> origin/nightly
 * [new branch]      rk3288     -> origin/rk3288
 * [new branch]      stm32mp1   -> origin/stm32mp1
 * [new branch]      topic      -> origin/topic

Your identity is: pokyuser <pokyuser@ReliableEmbeddedSystems.com>
If you want to change this, please re-run 'repo init' with --config-name

repo has been initialized in /workdir/3rd-party/phyboard-sargas

No SoC Platform selected
***************************************************
* Please choose one of the available SoC Platforms:
*
*   1: am335x
*   2: imx6
*   3: imx6ul
*   4: imx8
*   5: imx8m
*   6: imx8mm
*   7: imx8mp
*   8: nightly
*   9: rk3288
*   10: stm32mp1
*   11: topic
*
$ 10
switching to stm32mp1
('$', 'repo init -b stm32mp1')
fatal: manifest 'default.xml' not available
fatal: manifest default.xml not found

***************************************************
* Please choose one of the available Releases:
*
*   1: PD-BSP-Yocto-OpenSTLinux-STM32MP1-ALPHA1
*   2: PD-BSP-Yocto-OpenSTLinux-STM32MP1-ALPHA2
*   3: PD-BSP-Yocto-OpenSTLinux-STM32MP1-PD20.1.0
*   4: PD-BSP-Yocto-OpenSTLinux-STM32MP1-PD21.1.0
*

Please note that here you choose the software version.

$ 4
switching to PD-BSP-Yocto-OpenSTLinux-STM32MP1-PD21.1.0
('$', 'repo init -m PD-BSP-Yocto-OpenSTLinux-STM32MP1-PD21.1.0.xml')

Your identity is: pokyuser <pokyuser@ReliableEmbeddedSystems.com>
If you want to change this, please re-run 'repo init' with --config-name

repo has been initialized in /workdir/3rd-party/phyboard-sargas

syncing sources
('$', 'repo sync')
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found
Server does not provide clone.bundle; ignoring.
From http://git.openembedded.org/meta-openembedded
 * [new branch]          daisy            -> oe/daisy
 * [new branch]          daisy-next       -> oe/daisy-next
 * [new branch]          danny            -> oe/danny
 * [new branch]          danny-next       -> oe/danny-next
 * [new branch]          denzil           -> oe/denzil
 * [new branch]          denzil-next      -> oe/denzil-next
 * [new branch]          dizzy            -> oe/dizzy
 * [new branch]          dizzy-next       -> oe/dizzy-next
 * [new branch]          dora             -> oe/dora
 * [new branch]          dora-next        -> oe/dora-next
 * [new branch]          dunfell          -> oe/dunfell
 * [new branch]          dunfell-next     -> oe/dunfell-next
 * [new branch]          dylan            -> oe/dylan
 * [new branch]          dylan-next       -> oe/dylan-next
 * [new branch]          fido             -> oe/fido
 * [new branch]          fido-next        -> oe/fido-next
 * [new branch]          gatesgarth       -> oe/gatesgarth
 * [new branch]          gatesgarth-next  -> oe/gatesgarth-next
 * [new branch]          hardknott        -> oe/hardknott
 * [new branch]          hardknott-next   -> oe/hardknott-next
 * [new branch]          jethro           -> oe/jethro
 * [new branch]          jethro-next      -> oe/jethro-next
 * [new branch]          krogoth          -> oe/krogoth
 * [new branch]          krogoth-next     -> oe/krogoth-next
 * [new branch]          master           -> oe/master
 * [new branch]          master-next      -> oe/master-next
 * [new branch]          morty            -> oe/morty
 * [new branch]          morty-next       -> oe/morty-next
 * [new branch]          pyro             -> oe/pyro
 * [new branch]          pyro-next        -> oe/pyro-next
 * [new branch]          rocko            -> oe/rocko
 * [new branch]          rocko-next       -> oe/rocko-next
 * [new branch]          stable/thud-next -> oe/stable/thud-next
 * [new branch]          stable/thud-nmut -> oe/stable/thud-nmut
 * [new branch]          sumo             -> oe/sumo
 * [new branch]          sumo-next        -> oe/sumo-next
 * [new branch]          thud             -> oe/thud
 * [new branch]          thud-next        -> oe/thud-next
 * [new branch]          warrior          -> oe/warrior
 * [new branch]          warrior-next     -> oe/warrior-next
 * [new branch]          zeus             -> oe/zeus
 * [new branch]          zeus-next        -> oe/zeus-next
Fetching projects:   9% (1/11) meta-openembeddedremote: Counting objects: 19498, done.
remote: Compressing objects: 100% (7856/7856), done.
remote: Total 19498 (delta 14067), reused 15225 (delta 10550)
Receiving objects: 100% (19498/19498), 2.88 MiB | 6.40 MiB/s, done.
Resolving deltas: 100% (14067/14067), done.
From git://git.phytec.de/meta-phytec
 * [new branch]        1.8.1-phy2-fix  -> git.phytec/1.8.1-phy2-fix
 * [new branch]        1.8.1-phy6-fix  -> git.phytec/1.8.1-phy6-fix
 * [new branch]        dizzy           -> git.phytec/dizzy
 * [new branch]        dunfell         -> git.phytec/dunfell
 * [new branch]        fido            -> git.phytec/fido
 * [new branch]        gatesgarth      -> git.phytec/gatesgarth
 * [new branch]        hardknott       -> git.phytec/hardknott
 * [new branch]        jethro          -> git.phytec/jethro
 * [new branch]        krogoth         -> git.phytec/krogoth
 * [new branch]        master          -> git.phytec/master
 * [new branch]        morty           -> git.phytec/morty
 * [new branch]        pyro            -> git.phytec/pyro
 * [new branch]        rocko           -> git.phytec/rocko
 * [new branch]        sumo            -> git.phytec/sumo
 * [new branch]        thud            -> git.phytec/thud
 * [new branch]        warrior         -> git.phytec/warriorf
 * [new branch]        zeus            -> git.phytec/zeus
 * [new tag]           1.7.0-phy1      -> 1.7.0-phy1
 * [new tag]           1.7.0-phy2      -> 1.7.0-phy2
 * [new tag]           1.7.0-phy3      -> 1.7.0-phy3
 * [new tag]           1.7.2-phy1      -> 1.7.2-phy1
 * [new tag]           1.7.2-phy2      -> 1.7.2-phy2
 * [new tag]           1.7.3-phy1      -> 1.7.3-phy1
 * [new tag]           1.8.1-phy1      -> 1.8.1-phy1
 * [new tag]           1.8.1-phy2      -> 1.8.1-phy2
 * [new tag]           1.8.1-phy2-fix1 -> 1.8.1-phy2-fix1
 * [new tag]           1.8.1-phy3      -> 1.8.1-phy3
 * [new tag]           1.8.1-phy4      -> 1.8.1-phy4
 * [new tag]           1.8.1-phy5      -> 1.8.1-phy5
 * [new tag]           1.8.1-phy6      -> 1.8.1-phy6
 * [new tag]           1.8.1-phy6-fix1 -> 1.8.1-phy6-fix1
 * [new tag]           1.8.1-phy7      -> 1.8.1-phy7
 * [new tag]           1.8.1-phy8      -> 1.8.1-phy8
 * [new tag]           2.0.1-phy1      -> 2.0.1-phy1
 * [new tag]           2.0.1-phy2      -> 2.0.1-phy2
 * [new tag]           2.0.1-phy3      -> 2.0.1-phy3
 * [new tag]           2.1.1-phy1      -> 2.1.1-phy1
 * [new tag]           2.1.1-phy2      -> 2.1.1-phy2
 * [new tag]           2.1.2-phy1      -> 2.1.2-phy1
 * [new tag]           2.1.2-phy2      -> 2.1.2-phy2
 * [new tag]           2.1.2-phy3      -> 2.1.2-phy3
 * [new tag]           2.1.2-phy4      -> 2.1.2-phy4
 * [new tag]           2.1.2-phy5      -> 2.1.2-phy5
 * [new tag]           2.1.3-phy1      -> 2.1.3-phy1
 * [new tag]           2.1.3-phy2      -> 2.1.3-phy2
...
 * [new tag]           3.0.4-phy8      -> 3.0.4-phy8
 * [new tag]           3.0.4-phy9      -> 3.0.4-phy9
 * [new tag]           3.1.3-phy1      -> 3.1.3-phy1
 * [new tag]           3.1.5-phy1      -> 3.1.5-phy1
Fetching projects:  18% (2/11) meta-phytec  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404
Server does not provide clone.bundle; ignoring.
remote: Enumerating objects: 14453, done.
remote: Counting objects: 100% (193/193), done.
remote: Compressing objects: 100% (127/127), done.
remote: Total 14453 (delta 96), reused 136 (delta 66), pack-reused 14260
Receiving objects: 100% (14453/14453), 3.70 MiB | 7.03 MiB/s, done.
Resolving deltas: 100% (10177/10177), done.
From https://github.com/meta-qt5/meta-qt5
 * [new branch]      daisy                  -> github/daisy
 * [new branch]      dizzy                  -> github/dizzy
 * [new branch]      dora                   -> github/dora
 * [new branch]      dora-next              -> github/dora-next
 * [new branch]      dunfell                -> github/dunfell
 * [new branch]      dunfell-next           -> github/dunfell-next
 * [new branch]      dylan                  -> github/dylan
...
 * [new tag]           yocto-2.4            -> yocto-2.4
 * [new tag]           yocto-2.5            -> yocto-2.5
 * [new tag]           yocto-2.6            -> yocto-2.6
 * [new tag]           yocto-2.7            -> yocto-2.7
 * [new tag]           yocto-2.7.2          -> yocto-2.7.2
 * [new tag]           yocto-3.0            -> yocto-3.0
 * [new tag]           yocto-3.1            -> yocto-3.1
 * [new tag]           yocto-3.1.8          -> yocto-3.1.8
 * [new tag]           yocto-3.2            -> yocto-3.2
 * [new tag]           yocto-3.2.4          -> yocto-3.2.4
 * [new tag]           yocto-3.3            -> yocto-3.3
 * [new tag]           yocto-3.3.1          -> yocto-3.3.1
Fetching projects: 100% (11/11), done.
Checking out projects: 100% (11/11), done.

BSP has phyLinux API Version 2
[HOST DISTRIB check]
Linux Distrib: Ubuntu
Linux Release: 18.04

Required packages for Linux Distrib:
build-essential chrpath cpio debianutils diffstat gawk gcc-multilib git iputils-ping libegl1-mesa libsdl1.2-dev libssl-dev pylint3 python3 python3-git python3-jinja2 python3-pexpect python3-pip socat texinfo unzip wget xterm xz-utils

Check OK: all required packages are installed on host.

[DISTRO configuration]
  1. openstlinux-eglfs   -  OpenSTLinux featuring eglfs - no X11, no Wayland (with GPLv3 software)
  2. openstlinux-weston  -  OpenSTLinux featuring Weston/Wayland (with GPLv3 software)
  3. openstlinux-tiny    -  PHYTEC custom light distro - no eglfs, no X11, no Wayland
  4. defaultsetup        -  [ERROR] No Description available (openembedded-core/meta)
  5. nodistro            -  *** DEFAULT OPENEMBEDDED SETTING : DISTRO is not defined ***
Which one would you like? []
1
Selected DISTRO: openstlinux-eglfs

[MACHINE configuration]
...
 49. phycore-stm32mp1-1         -  PHYTEC phyCORE-STM32MP1 ALPHA1-Kit - stm32mp157aac @650Mhz MPU (old rev), 3D GPU, 1GiB RAM, 8GiB eMMC
 50. phycore-stm32mp1-2         -  PHYTEC phyCORE-STM32MP1 ALPHA2-Kit, stm32mp157aac @650Mhz MPU (old rev), 3D GPU, 1GiB RAM, 8GiB eMMC
 51. phycore-stm32mp1-3         -  PHYTEC phyCORE-STM32MP1 phyBOARD-Sargas full-featured, stm32mp157cac @650Mhz MPU, 3D GPU, 1GiB RAM, 8GiB eMMC, 16MB QSPI NOR
 52. phycore-stm32mp1-4         -  PHYTEC phyCORE-STM32MP1 phyBOARD-Sargas full-featured, stm32mp157fac @800Mhz MPU, 3D GPU, 1GiB RAM, 8GiB eMMC, 16MB QSPI NOR
 53. phycore-stm32mp1-5         -  PHYTEC phyCORE-STM32MP1 phyBOARD-Sargas full featured, stm32mp153aac @650Mhz MPU, no 3D GPU, 1GiB RAM, 8GiB eMMC
 54. phycore-stm32mp1-6         -  PHYTEC phyCORE-STM32MP1 phyBOARD-Sargas low cost, stm32mp153aac @650Mhz MPU, no 3D GPU, 512MB RAM, 512MB NAND
 55. phycore-stm32mp1-7         -  PHYTEC phyCORE-STM32mp1 phyBOARD-Sargas super low cost, stm32mp153aac @650Mhz MPU, no 3D GPU, 512MB RAM, 128MB NAND
...
Which one would you like? []

Please note that you need to make the proper choice here according to the hardware version you use.

50
Selected MACHINE: phycore-stm32mp1-2

[source layers/openembedded-core/oe-init-build-env][from nothing]

[EULA configuration]
The BSP for phycore-stm32mp1-2 depends on packages and firmware which are covered by an End User License Agreement (EULA). To have the right to use these binaries in your images, you need to read and accept the following...
Would you like to read the EULA ? (y/n)
y
SLA0048 Rev4/March 2018

BY INSTALLING COPYING, DOWNLOADING, ACCESSING OR OTHERWISE USING THIS SOFTWARE PACKAGE OR ANY PART THEREOF (AND THE RELATED DOCUMENTATION) FROM STMICROELECTRONICS INTERNATIONAL N.V, SWISS BR
ANCH AND/OR ITS AFFILIATED COMPANIES (STMICROELECTRONICS), THE RECIPIENT, ON BEHALF OF HIMSELF OR HERSELF, OR ON BEHALF OF ANY ENTITY BY WHICH SUCH RECIPIENT IS EMPLOYED AND/OR ENGAGED AGREE
S TO BE BOUND BY THIS SOFTWARE PACKAGE LICENSE AGREEMENT.
...
THIS SOFTWARE PACKAGE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ME
RCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT SHALL STMI
CROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHE
RWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
EXCEPT AS EXPRESSLY PERMITTED HEREUNDER AND SUBJECT TO THE APPLICABLE LICENSING TERMS FOR ANY THIRD-PARTY SOFTWARE INCORPORATED IN THE SOFTWARE PACKAGE AND OPEN SOURCE TERMS AS APPLICABLE, N
O LICENSE OR OTHER RIGHTS, WHETHER EXPRESS OR IMPLIED, ARE GRANTED UNDER ANY PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF STMICROELECTRONICS OR ANY THIRD PARTY.

###############################################################################

Vivante End User Software License Terms


Do you accept the EULA you just read? (y/n)
y
EULA has been accepted.

[Configure *.conf files]
[INFO] No 'site.conf.sample' file available at /workdir/3rd-party/phyboard-sargas/layers/meta-st/scripts. Create default one...

===========================================================================
Configuration files have been created for the following configuration:

    DISTRO            :  openstlinux-eglfs
    DISTRO_CODENAME   :  dunfell
    MACHINE           :  phycore-stm32mp1-2
    BB_NUMBER_THREADS :  <no-custom-config-set>
    PARALLEL_MAKE     :  <no-custom-config-set>

    BUILDDIR          :  build-openstlinuxeglfs-phycore-stm32mp1-2
    DOWNLOAD_DIR      :  <disable>
    SSTATE_DIR        :  <disable>

    SOURCE_MIRROR_URL :  <no-custom-config-set>
    SSTATE_MIRRORS    :  <disable>

    WITH_EULA_ACCEPTED:  YES

===========================================================================

Available images for OpenSTLinux layers are:

  - Official OpenSTLinux images:
      st-image-weston       -   OpenSTLinux weston image with basic Wayland support (if enable in distro)

  - Other OpenSTLinux images:
      - Supported images:
          st-image-core         -   OpenSTLinux core image


You can now run 'bitbake <image>'

pokyuser@e450-6:/workdir/3rd-party/phyboard-sargas$

Create a site.conf if you use something like this

pushd build-openstlinuxeglfs-phycore-stm32mp1-2/conf/
#
# local.conf covers user settings, site.conf covers site specific information
# such as proxy server addresses and optionally any shared download location
#
# SITE_CONF_VERSION is increased each time build/conf/site.conf
# changes incompatibly
SCONF_VERSION = "1"

# Uncomment to cause CVS to use the proxy host specified
#CVS_PROXY_HOST = "proxy.example.com"
#CVS_PROXY_PORT = "81"

# For svn, you need to create ~/.subversion/servers containing:
#[global]
#http-proxy-host = proxy.example.com
#http-proxy-port = 81
#

# To use git with a proxy, you must use an external git proxy command, such as
# the one provided by scripts/oe-git-proxy. To use this script, copy it to
# your PATH and uncomment the following:
#GIT_PROXY_COMMAND ?= "oe-git-proxy"
#ALL_PROXY ?= "socks://socks.example.com:1080"
#or
#ALL_PROXY ?= "https://proxy.example.com:8080"
# If you wish to use certain hosts without the proxy, specify them in NO_PROXY.
# See the script for details on syntax. The script oe-git-proxy uses some tools
# that may not be included on HOSTTOOLS, thus  add them manually through
# HOSTTOOLS += "getent"

# Uncomment this to use a shared download directory
#DL_DIR = "/some/shared/download/directory/"

######################### default settings ###########################

INHERIT += "report-error"
#BB_NUMBER_THREADS = "${@bb.utils.cpu_count()}"
#PARALLEL_MAKE = "-j ${@bb.utils.cpu_count()}"
SDKMACHINE ?= "x86_64"

DL_DIR = "/workdir/3rd-party/downloads_dunfell"
SSTATE_DIR = "/workdir/3rd-party/sstate_dunfell/"

# premirror for u-boot, upstream kernel
PREMIRRORS += " \
git://git.denx.de/u-boot.git git://omv-1:8939/robert.berger/u-boot.git;protocol=http \n \
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git git://omv-1:8939/robert.berger/linux-stable.git;protocol=http \n \
git://git.yoctoproject.org/linux-yocto.git git://omv-1.res.training:8939/robert.berger/linux-yocto.git;protocol=http \n \
git://git.yoctoproject.org/yocto-kernel-cache git://omv-1:8939/robert.berger/yocto-kernel-cache.git;protocol=http \n \
git://github.com/raspberrypi/linux.git git://omv-1:8939/robert.berger/raspberrypi-linux.git;protocol=http \n \
"

#ERROR_QA_remove = "version-going-backwards"
#QEMU_USE_KVM = "True"

PRSERV_HOST = "localhost:0"

#BB_GENERATE_MIRROR_TARBALLS = "1"

INHERIT += "own-mirrors"
SOURCE_MIRROR_URL = "http://mirror/source_mirror_dunfell"
#SSTATE_MIRRORS ?= "file://.* http://mirror/sstate_mirror_master/PATH;downloadfilename=PATH"

#PACKAGE_DEBUG_SPLIT_STYLE = "debug-file-directory"

# It is recommended to activate "buildhistory" for testing the PR service
# it also looks like with PR service + buildhistory packages are versioned
# automatically if we change meta data
INHERIT += "buildhistory"
BUILDHISTORY_COMMIT = "1"

# let's only keep the last built image (deprecated)
RM_OLD_IMAGE = "1"

# add buildinfo variables to rootfs /etc/build
INHERIT += "image-buildinfo"
#
# add image-manifest to rootfs /etc/image-manifest
# INHERIT += "image-manifestinfo"
#

# --> icecc
# total number of local/builder CPU cores * 2 or * 3 ?
# This variable usually takes the form of “-j x”, 
# where x represents the maximum number of parallel threads make can run.
# needs some playing
# 68 CPU cores total
ICECC_PARALLEL_MAKE?= "-j ${@oe.utils.cpu_count()*2}"
#ICECC_PARALLEL_MAKE = "-j 24"
#ICECC_PARALLEL_MAKE = "-j 68"
#ICECC_PARALLEL_MAKE = "-j 136"
#ICECC_PARALLEL_MAKE = "-j 204"
# maybe those are not needed?
#PARALLEL_MAKE = "-j 30"
#BB_NUMBER_THREADS = "16"
######################################################################
# Problem:  Icecream and sstate can be combined, however inheriting
#           icecc.bbclass changes most taskhashes
#           Which makes the SSTATE created with icecc unusable for 
#           builds without it.
# Solution: Always inherit icecc.bbclass and use ICECC_DISABLED ?= “1”
#           to turn off icecream for builds without icecc which want to
#           use the SSTATE created with icecc.

INHERIT += "icecc"
ICECC_DISABLED ?= "1"
######################################################################

# Blacklist packages from compiling with icecream. There really needs to be a
# better way to share this list...
# let's start with an empty Blacklist and see how things are going
ICECC_USER_PACKAGE_BL += "glib-2.0 bazel-native tensorflow-native tensorflow pkgconfig json-c linux-yocto-custom"
#                          boost libtevent mpv jack libtalloc libtdb libldb 
# <-- icecc

# --> UNINATIVE override
#UNINATIVE_URL="http://mirror.res.training/releases/uninative/3.0/"
# <-- UNINATIVE override

# --> build minimal stuff
#DISTRO_FEATURES="acl alsa argp bluetooth ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat largefile opengl ptest multiarch wayland vulkan pulseaudio sysvinit gobject-introspection-data ldconfig"

#DISTRO_FEATURES_remove = "alsa"
#DISTRO_FEATURES_remove = "bluetooth"
#DISTRO_FEATURES_remove = "pcmcia"
#DISTRO_FEATURES_remove = "wifi"
#DISTRO_FEATURES_remove = "zeroconf"
#DISTRO_FEATURES_remove = "pci"
#DISTRO_FEATURES_remove = "3g"
#DISTRO_FEATURES_remove = "nfc"
#DISTRO_FEATURES_remove = "x11"
#DISTRO_FEATURES_remove = "opengl"
DISTRO_FEATURES_remove = "ptest"
#DISTRO_FEATURES_remove = "wayland"
#DISTRO_FEATURES_remove = "vulkan"
#DISTRO_FEATURES_remove = "pulseaudio"

BB_GIT_SHALLOW = "1"

# <-- build minimal stuff

######################################################################
popd

Build the SD card image: core-image-minimal

source layers/meta-st-openstlinux-phytec/scripts/openstlinux-init-phytec.sh
[HOST DISTRIB check]
Linux Distrib: Ubuntu
Linux Release: 18.04

Required packages for Linux Distrib:
build-essential chrpath cpio debianutils diffstat gawk gcc-multilib git iputils-ping libegl1-mesa libsdl1.2-dev libssl-dev pylint3 python3 python3-git python3-jinja2 python3-pexpect python3-pip socat texinfo unzip wget xterm xz-utils

Check OK: all required packages are installed on host.

[BUILD_DIR configuration]
  1. build-openstlinuxeglfs-phycore-stm32mp1-2  -  DISTRO is 'openstlinux-eglfs' and MACHINE is 'phycore-stm32mp1-2'
  2. NEW                                        -  *** SET NEW DISTRO AND MACHINE BUILD CONFIG ***
1
Selected BUILD_DIR: build-openstlinuxeglfs-phycore-stm32mp1-2

[source layers/openembedded-core/oe-init-build-env][with previous config]

===========================================================================
Configuration files have been created for the following configuration:

    DISTRO            :  openstlinux-eglfs
    DISTRO_CODENAME   :  dunfell
    MACHINE           :  phycore-stm32mp1-2
    BB_NUMBER_THREADS :  <disable>
    PARALLEL_MAKE     :  <disable>

    BUILDDIR          :  build-openstlinuxeglfs-phycore-stm32mp1-2
    DOWNLOAD_DIR      :  /workdir/3rd-party/downloads_dunfell
    SSTATE_DIR        :  /workdir/3rd-party/sstate_dunfell/

    SOURCE_MIRROR_URL :  http://mirror/source_mirror_dunfell
    SSTATE_MIRRORS    :  <disable>

    WITH_EULA_ACCEPTED:  YES

===========================================================================

Available images for OpenSTLinux layers are:

  - Official OpenSTLinux images:
      st-image-weston       -   OpenSTLinux weston image with basic Wayland support (if enable in distro)

  - Other OpenSTLinux images:
      - Supported images:
          st-image-core         -   OpenSTLinux core image


You can now run 'bitbake <image>'

pokyuser@e450-6:/workdir/3rd-party/phyboard-sargas/build-openstlinuxeglfs-phycore-stm32mp1-2$ 
bitbake core-image-minimal
pokyuser@e450-7:/workdir/3rd-party/phyboard-sargas/build-openstlinuxeglfs-phycore-stm32mp1-2$ bitbake core-image-minimal
NOTE: Started PRServer with DBfile: /workdir/3rd-party/phyboard-sargas/build-openstlinuxeglfs-phycore-stm32mp1-2/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 45545, PID: 13892
Loading cache: 100% |##########################################################################################################################################################| Time: 0:00:00
Loaded 3807 entries from dependency cache.
Parsing recipes: 100% |########################################################################################################################################################| Time: 0:00:01
Parsing of 2599 .bb files complete (2598 cached, 1 parsed). 3807 targets, 403 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "1.46.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "arm-ostl-linux-gnueabi"
MACHINE              = "phycore-stm32mp1-2"
DISTRO               = "openstlinux-eglfs"
DISTRO_VERSION       = "3.1-snapshot-20210607"
TUNE_FEATURES        = "arm vfp cortexa7 neon vfpv4 thumb callconvention-hard"
TARGET_FPU           = "hard"
DISTRO_CODENAME      = "dunfell"
ACCEPT_EULA_phycore-stm32mp1-2 = "1"
GCCVERSION           = "9.%"
PREFERRED_PROVIDER_virtual/kernel = "linux-stm32mp"
meta-phytec          = "HEAD:3ba7567532bcda55d9d73deff80a350877b68d07"
meta-st-openstlinux-phytec = "HEAD:90481eec20c4f9f362ce36eb0a52170cc46a1913"
meta-python          
meta-oe              
meta-gnome           
meta-initramfs       
meta-multimedia      
meta-networking      
meta-webserver       
meta-filesystems     
meta-perl            = "HEAD:144077083457ccb75700777d5e6b1da9aaff01aa"
meta-st-stm32mp      = "HEAD:955b1d9a5f706013d718687b1afa6e3022c68fac"
meta-qt5             = "HEAD:fdd19517e17240b0b61765bd02fc483a1bde986f"
meta-st-openstlinux  = "HEAD:9160c08dfcd0b7ec0eb8f1fd96672695b09680d5"
meta                 = "HEAD:b39bda4cc62db12c0edfbe489d5a7f5988ede6a9"

Initialising tasks: 100% |#####################################################################################################################################################| Time: 0:00:03
Sstate summary: Wanted 152 Found 152 Missed 0 Current 753 (100% match, 100% complete)
NOTE: Executing Tasks
NOTE: Tasks Summary: Attempted 2899 tasks of which 2755 didn't need to be rerun and all succeeded.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 2 seconds

Create an SD card image

This is a very strange way and should be done from within BitBake via e.g. a .wic file, but hey it’s an “evil vendor tree”.

pushd /workdir/3rd-party/phyboard-sargas/build-openstlinuxeglfs-phycore-stm32mp1-2/tmp-glibc/deploy/images/phycore-stm32mp1-2/

./scripts/create_sdcard_from_flashlayout.sh flashlayout_core-image-minimal/trusted/FlashLayout_sdcard_phycore-stm32mp1-2-trusted.tsv 
Create Raw empty image: flashlayout_core-image-minimal/trusted/../../FlashLayout_sdcard_phycore-stm32mp1-2-trusted.raw of 1536MB
Create partition table:
[CREATED] part 1:    fsbl1 [partition size 256.0 KiB]
[CREATED] part 2:    fsbl2 [partition size 256.0 KiB]
[CREATED] part 3:     ssbl [partition size 2.0 MiB]
[CREATED] part 4:     boot [partition size 64.0 MiB]
[CREATED] part 5: vendorfs [partition size 16.0 MiB]
[CREATED] part 6:   rootfs [partition size 746.0 MiB]
[CREATED] part 7:   userfs [partition size 707.5 MiB]

Partition table from flashlayout_core-image-minimal/trusted/../../FlashLayout_sdcard_phycore-stm32mp1-2-trusted.raw

Populate raw image with image content:
[ FILLED ] part 1:    fsbl1, image: arm-trusted-firmware/tf-a-phycore-stm32mp1-2-trusted.stm32 
[ FILLED ] part 2:    fsbl2, image: arm-trusted-firmware/tf-a-phycore-stm32mp1-2-trusted.stm32 
[ FILLED ] part 3:     ssbl, image: bootloader/u-boot-phycore-stm32mp1-2-trusted.stm32 
[ FILLED ] part 4:     boot, image: st-image-bootfs-openstlinux-eglfs-phycore-stm32mp1-2.ext4 
[ FILLED ] part 5: vendorfs, image: st-image-vendorfs-openstlinux-eglfs-phycore-stm32mp1-2.ext4 
[ FILLED ] part 6:   rootfs, image: core-image-minimal-openstlinux-eglfs-phycore-stm32mp1-2.ext4 
[ FILLED ] part 7:   userfs, image: st-image-userfs-openstlinux-eglfs-phycore-stm32mp1-2.ext4 

###########################################################################
###########################################################################

RAW IMAGE generated: flashlayout_core-image-minimal/trusted/../../FlashLayout_sdcard_phycore-stm32mp1-2-trusted.raw

WARNING: before to use the command dd, please umount all the partitions
        associated to SDCARD.
    sudo umount `lsblk --list | grep mmcblk0 | grep part | gawk '{ print $7 }' | tr '\n' ' '`

To put this raw image on sdcard:
    sudo dd if=flashlayout_core-image-minimal/trusted/../../FlashLayout_sdcard_phycore-stm32mp1-2-trusted.raw of=/dev/mmcblk0 bs=8M conv=fdatasync status=progress

(mmcblk0 can be replaced by:
     sdX if it's a device dedicated to receive the raw image 
          (where X can be a, b, c, d, e)
popd

On the host system – Flash the SD card

On the host navigate to where the SD card image was built

pushd /workdir/3rd-party/phyboard-sargas/build-openstlinuxeglfs-phycore-stm32mp1-2/tmp-glibc/deploy/images/phycore-stm32mp1-2

Make sure you figure out what’s the mount of your SD card. In my case it’s /dev/sdc.

time sudo bmaptool copy --nobmap FlashLayout_sdcard_phycore-stm32mp1-2-trusted.raw /dev/sdc
bmaptool: info: no bmap given, copy entire image to '/dev/sdc'
bmaptool: info: 100% copied
bmaptool: info: synchronizing '/dev/sdc'
bmaptool: info: copying time: 2m 23.0s, copying speed 10.7 MiB/sec

real    2m23.180s
user    0m0.234s
sys     0m2.072s

Please note, that secure boot is not something we typically want for development. One reason is, that flashing with sdwire takes a significant amount of time (35m 34.3s), since the bmap tools need to write every single bit and can not use the bmap information for optimized write.

sudo bmaptool copy --nobmap FlashLayout_sdcard_phycore-stm32mp1-2-trusted.raw /dev/sde

bmaptool: info: no bmap given, copy entire image to '/dev/sde'
bmaptool: info: 100% copied
bmaptool: info: synchronizing '/dev/sde'
bmaptool: info: copying time: 35m 34.4s, copying speed 736.9 KiB/sec

On the target system – Boot

Something like this is what you should see on the serial console

NOTICE:  Model: PHYTEC phyCORE-STM32MP1-2 SOM
INFO:    Reset reason (0x15):
INFO:      Power-on Reset (rst_por)
INFO:    PMIC version = 0x10
INFO:    Using SDMMC
INFO:      Instance 1
INFO:    Boot used partition fsbl1
NOTICE:  BL2: v2.2-r2.1(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-1066/888 bin G 2x4Gb 533MHz v1.45
INFO:    Memory size = 0x40000000 (1024 MB)
INFO:    BL2 runs SP_MIN setup
INFO:    BL2: Loading image id 4
INFO:    Loading image id=4 at address 0x2ffeb000
INFO:    Image id=4 loaded: 0x2ffeb000 - 0x2ffff000
INFO:    BL2: Loading image id 5
INFO:    Loading image id=5 at address 0xc0100000
INFO:    STM32 Image size : 895826
INFO:    Image id=5 loaded: 0xc0100000 - 0xc01dab52
WARNING: Skip signature check (header option)
NOTICE:  ROTPK is not deployed on platform. Skipping ROTPK verification.
NOTICE:  BL2: Booting BL32 
INFO:    Entry point address = 0x2ffeb000
INFO:    SPSR = 0x1d3
NOTICE:  SP_MIN: v2.2-r2.1(debug):v2.2-dirty
NOTICE:  SP_MIN: Built : 13:36:23, Oct 22 2019
INFO:    ARM GICv2 driver initialized
INFO:    Set calibration timer to 60 sec
INFO:    stm32mp IWDG1 (12): Secure
INFO:    SP_MIN: Initializing runtime services
INFO:    SP_MIN: Preparing exit to normal world


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

CPU: STM32MP157AAC Rev.B   
Model: Phytec GmbH phycore-stm32mp1-2 Dev Board
Board: stm32mp1 in trusted mode (phycore-stm32mp1-2)
DRAM:  1 GiB
Clocks:
- MPU : 650 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... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@5800a000
Hit any key to stop autoboot:  0
Boot over mmc0!
Saving Environment to MMC... Writing to redundant MMC(0)... OK
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:4...
Found U-Boot script /boot.scr.uimg
2943 bytes read in 25 ms (114.3 KiB/s)
## Executing script at c4100000
Executing SCRIPT on target=mmc0
FOUND /mmc0_extlinux/phycore-stm32mp1-2_extlinux.conf
Saving Environment to MMC... Writing to MMC(0)... OK
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:4...
Found /mmc0_extlinux/phycore-stm32mp1-2_extlinux.conf
Retrieving file: /mmc0_extlinux/phycore-stm32mp1-2_extlinux.conf
851 bytes read in 25 ms (33.2 KiB/s)
Retrieving file: /splash.bmp
18244 bytes read in 29 ms (614.3 KiB/s)
Select the boot mode
1:      OpenSTLinux
2:      phycore-stm32mp1-2-a7-examples
3:      phycore-stm32mp1-2-m4-examples
Enter choice: 1:        OpenSTLinux
Retrieving file: /uInitrd  
3632257 bytes read in 863 ms (4 MiB/s)
Retrieving file: /uImage   
7349240 bytes read in 1722 ms (4.1 MiB/s)
append: root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw  drm.edid_firmware= console=ttySTM0,115200
Retrieving file: /phycore-stm32mp1-2.dtb
63538 bytes read in 40 ms (1.5 MiB/s)
## Booting kernel from Legacy Image at c2000000 ...
   Image Name:   Linux-5.4.56
   Created:      2020-08-05   7:59:52 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    7349176 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 cffffc81 ... OK
   Loading Device Tree to cfc76000, end cfc88831 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.4.56 (oe-user@oe-host) (gcc version 9.3.0 (GCC)) #1 SMP PREEMPT Wed Aug 5 07:59:52 UTC 2020
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Phytec GmbH phycore-stm32mp1-2 Dev Board
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Reserved memory: created DMA memory pool at 0x10000000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node mcuram2@0x10000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x10040000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node vdev0vring0@10040000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x10042000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node vdev0vring1@10042000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x10044000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node vdev0buffer@10044000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x30000000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node mcuram@0x30000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x38000000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node retram@0x38000000, compatible id shared-dma-pool
[    0.000000] cma: Reserved 128 MiB at 0xf0000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] percpu: Embedded 20 pages/cpu s50956 r8192 d22772 u81920
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 227648
[    0.000000] Kernel command line: root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw  drm.edid_firmware= console=ttySTM0,115200
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 756116K/917504K available (11264K kernel code, 872K rwdata, 3432K rodata, 1024K init, 221K bss, 30316K reserved, 131072K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000]  Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] random: get_random_bytes called from start_kernel+0x31c/0x4f4 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000008] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000026] Switching to timer-based delay loop, resolution 41ns
[    0.001445] Console: colour dummy device 80x30
[    0.001499] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.001520] pid_max: default: 32768 minimum: 301
[    0.001788] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.001815] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.003118] CPU: Testing write buffer coherency: ok
[    0.003661] /cpus/cpu@0 missing clock-frequency property
[    0.003697] /cpus/cpu@1 missing clock-frequency property
[    0.003715] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.059935] Setting up static identity map for 0xc0100000 - 0xc0100060
[    0.079907] rcu: Hierarchical SRCU implementation.
[    0.104386] smp: Bringing up secondary CPUs ...
[    0.180550] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.180770] smp: Brought up 1 node, 2 CPUs
[    0.180794] SMP: Total of 2 processors activated (96.00 BogoMIPS).
[    0.180804] CPU: All CPU(s) started in SVC mode.
[    0.181743] devtmpfs: initialized
[    0.204103] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.204721] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.204756] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.211142] pinctrl core: initialized pinctrl subsystem
[    0.213384] NET: Registered protocol family 16
[    0.216032] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.218352] cpuidle: using governor menu
[    0.218848] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.218865] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.219319] Serial: AMBA PL011 UART driver
[    0.222421] stm32-pm-domain pm_domain: domain core-ret-power-domain registered
[    0.222461] stm32-pm-domain pm_domain: subdomain core-power-domain registered
[    0.222477] stm32-pm-domain pm_domain: domains probed
[    0.272333] SCSI subsystem initialized
[    0.273197] usbcore: registered new interface driver usbfs
[    0.273280] usbcore: registered new interface driver hub
[    0.273428] usbcore: registered new device driver usb
[    0.273835] pps_core: LinuxPPS API ver. 1 registered
[    0.273849] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.273883] PTP clock support registered
[    0.274218] EDAC MC: Ver: 3.0.0
[    0.275534] Advanced Linux Sound Architecture Driver Initialized.
[    0.277306] clocksource: Switched to clocksource arch_sys_counter
[    1.002087] thermal_sys: Registered thermal governor 'step_wise'
[    1.002726] NET: Registered protocol family 2
[    1.003831] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    1.003886] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    1.003999] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    1.004177] TCP: Hash tables configured (established 8192 bind 8192)
[    1.004349] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    1.004417] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    1.004764] NET: Registered protocol family 1X
[    1.005866] RPC: Registered named UNIX socket transport module.
[    1.005890] RPC: Registered udp transport module.
[    1.005900] RPC: Registered tcp transport module.
[    1.005910] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.006290] Trying to unpack rootfs image as initramfs...
[    1.382967] Freeing initrd memory: 3548K
[    1.383829] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    1.385985] Initialise system trusted keyrings
[    1.386412] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    1.399065] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.400314] NFS: Registering the id_resolver key type
[    1.400371] Key type id_resolver registered
[    1.400383] Key type id_legacy registered
[    1.400609] ntfs: driver 2.1.32 [Flags: R/O].
[    1.401125] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    1.401965] fuse: init (API version 7.31)
[    1.403102] NET: Registered protocol family 38
[    1.403126] Key type asymmetric registered
[    1.403138] Asymmetric key parser 'x509' registered
[    1.403225] bounce: pool size: 64 pages
[    1.403288] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    1.403303] io scheduler mq-deadline registered
[    1.403314] io scheduler kyber registered
[    1.414509] STM32 USART driver initialized
[    1.419711] panel-simple panel: panel supply power not found, using dummy regulator
[    1.436611] brd: module loaded
[    1.451355] loop: module loaded
[    1.457790] libphy: Fixed MDIO Bus: probed
[    1.459775] CAN device driver interface
[    1.462154] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver
[    1.462244] usbcore: registered new interface driver pegasus
[    1.462324] usbcore: registered new interface driver asix
[    1.462385] usbcore: registered new interface driver ax88179_178a
[    1.462444] usbcore: registered new interface driver cdc_ether
[    1.462534] usbcore: registered new interface driver smsc75xx
[    1.462615] usbcore: registered new interface driver smsc95xx
[    1.462677] usbcore: registered new interface driver net1080
[    1.462736] usbcore: registered new interface driver cdc_subset
[    1.462793] usbcore: registered new interface driver zaurus
[    1.462884] usbcore: registered new interface driver cdc_ncm
[    1.464349] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.464401] ehci-platform: EHCI generic platform driver
[    1.464880] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.464920] ohci-platform: OHCI generic platform driver
[    1.465898] usbcore: registered new interface driver cdc_acm
[    1.465914] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    1.466014] usbcore: registered new interface driver usb-storage
[    1.471015] i2c /dev entries driver
[    1.475633] stm32-cpufreq stm32-cpufreq: Failed to get chip info: -517
[    1.479213] sdhci: Secure Digital Host Controller Interface driver
[    1.479230] sdhci: Copyright(c) Pierre Ossman
[    1.479239] Synopsys Designware Multimedia Card Interface Driver
[    1.479769] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.480952] ledtrig-cpu: registered to indicate activity on CPUs
[    1.482572] usbcore: registered new interface driver usbhid
[    1.482587] usbhid: USB HID core driver
[    1.482908] arm-smc-mbox mailbox-0: ARM SMC mailbox enabled.
[    1.483045] arm-smc-mbox mailbox-1: ARM SMC mailbox enabled.
[    1.484813] remoteproc remoteproc0: releasing m4
[    1.488319] Unable to get STM32 DDR PMU clock
[    1.493471] drop_monitor: Initializing network drop monitor service
[    1.493809] NET: Registered protocol family 17
[    1.493844] can: controller area network core (rev 20170425 abi 9)
[    1.493981] NET: Registered protocol family 29
[    1.493999] can: raw protocol (rev 20170425)
[    1.494012] can: broadcast manager protocol (rev 20170425 t)
[    1.494030] can: netlink gateway (rev 20190810) max_hops=1
[    1.494850] Key type dns_resolver registered
[    1.495053] ThumbEE CPU extension supported.
[    1.495079] Registering SWP/SWPB emulation handler
[    1.495517] registered taskstats version 1
[    1.495532] Loading compiled-in X.509 certificates
[    1.512408] panel-simple panel: panel supply power not found, using dummy regulator
[    1.523820] arm-scmi firmware:scmi-0: SCMI Protocol v2.0 'ST:' Firmware version 0x0
[    1.526331] remoteproc remoteproc0: releasing m4
[    1.527399] Unable to get STM32 DDR PMU clock
[    1.543056] panel-simple panel: panel supply power not found, using dummy regulator
[    1.569926] remoteproc remoteproc0: releasing m4
[    1.570942] Unable to get STM32 DDR PMU clock
[    1.610785] stm32-mdma 58000000.dma: STM32 MDMA driver registered
[    1.615654] stm32-dma 48000000.dma: STM32 DMA driver registered
[    1.617966] stm32-dma 48001000.dma: STM32 DMA driver registered
[    1.623647] panel-simple panel: panel supply power not found, using dummy regulator
[    1.635038] stm_thermal 50028000.thermal: stm_thermal_probe: Driver initialized successfully
[    1.644469] random: fast init done
[    1.648907] random: crng init done
[    1.651637] remoteproc remoteproc0: releasing m4
[    1.652943] stm32-ddr-pmu: probed (ID=0x00140061 VER=0x00000010), DDR@533MHz
[    1.655387] /soc/interrupt-controller@5000d000: bank0
[    1.655409] /soc/interrupt-controller@5000d000: bank1
[    1.655423] /soc/interrupt-controller@5000d000: bank2
[    1.657082] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOA bank added
[    1.657644] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOB bank added
[    1.658056] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOC bank added
[    1.658449] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOD bank added
[    1.658833] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOE bank added
[    1.659299] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOF bank added
[    1.659675] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOG bank added
[    1.660047] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOH bank added
[    1.660405] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOI bank added
[    1.660505] stm32mp157-pinctrl soc:pin-controller@50002000: Pinctrl STM32 initialized
[    1.661415] stm32mp157-pinctrl soc:pin-controller-z@54004000: GPIOZ bank added
[    1.661449] stm32mp157-pinctrl soc:pin-controller-z@54004000: Pinctrl STM32 initialized
[    1.665484] 4000f000.serial: ttySTM1 at MMIO 0x4000f000 (irq = 54, base_baud = 4000000) is a stm32-usart
[    1.667515] stm32-usart 40010000.serial: interrupt mode for rx (no dma)
[    1.667539] stm32-usart 40010000.serial: interrupt mode for tx (no dma)
[    1.667575] 40010000.serial: ttySTM0 at MMIO 0x40010000 (irq = 55, base_baud = 4000000) is a stm32-usart
[    2.867927] printk: console [ttySTM0] enabled
[    2.874144] stm32-usart 5c000000.serial: interrupt mode for rx (no dma)
[    2.879391] stm32-usart 5c000000.serial: interrupt mode for tx (no dma)
[    2.885963] 5c000000.serial: ttySTM2 at MMIO 0x5c000000 (irq = 56, base_baud = 4000000) is a stm32-usart
[    2.900098] panel-simple panel: panel supply power not found, using dummy regulator
[    2.910994] spi-nor spi0.0: found w25q128jv, expected w25q128
[    2.933852] spi-nor spi0.0: w25q128jv (16384 Kbytes)
[    2.941897] m_can_platform 4400f000.can: m_can device registered (irq=51, version=32)
[    2.950140] stm32-dwmac 5800a000.ethernet: IRQ eth_lpi not found
[    2.954880] stm32-dwmac 5800a000.ethernet: PTP uses main clock
[    2.960646] stm32-dwmac 5800a000.ethernet: no reset control found
[    2.967368] stm32-dwmac 5800a000.ethernet: User ID: 0x40, Synopsys ID: 0x42
[    2.973626] stm32-dwmac 5800a000.ethernet:   DWMAC4/5
[    2.978624] stm32-dwmac 5800a000.ethernet: DMA HW capability register supported
[    2.985914] stm32-dwmac 5800a000.ethernet: RX Checksum Offload Engine supported
[    2.993270] stm32-dwmac 5800a000.ethernet: TX Checksum insertion supported
[    3.000148] stm32-dwmac 5800a000.ethernet: Wake-Up On Lan supported
[    3.006452] stm32-dwmac 5800a000.ethernet: TSO supported
[    3.011748] stm32-dwmac 5800a000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    3.019596] stm32-dwmac 5800a000.ethernet: TSO feature enabled
[    3.025701] libphy: stmmac: probed
[    3.041901] stm32_rtc 5c004000.rtc: registered as rtc1
[    3.046034] stm32_rtc 5c004000.rtc: Date/Time must be initialized
[    3.051769] stm32_rtc 5c004000.rtc: registered rev:1.2
[    3.076714] stm32f7-i2c 40012000.i2c: doesn't use DMA
[    3.081907] leds-pca953x 0-0062: setting platform data
[    3.407796] stm32f7-i2c 40012000.i2c: STM32F7 I2C-0 bus adapter
[    3.432127] stm32f7-i2c 5c002000.i2c: doesn't use DMA
[    3.437900] stpmic1 1-0033: PMIC Chip Version: 0x10
[    3.444547] genirq: irq_chip stm32-exti-h did not update eff. affinity mask of irq 66
[    3.452197] BUCK1: supplied by vin
[    3.458436] BUCK2: supplied by vin
[    3.463929] BUCK3: supplied by vin
[    3.469786] BUCK4: supplied by vin
[    3.475238] LDO1: supplied by v3v3
[    3.482913] LDO2: supplied by v3v3
[    3.488898] LDO3: supplied by vdd_ddr
[    3.495013] LDO4: supplied by vin
[    3.498160] LDO5: supplied by v3v3
[    3.504394] LDO6: supplied by v3v3
[    3.510374] VREF_DDR: supplied by vin
[    3.515782] BOOST: supplied by vin
[    3.518988] VBUS_OTG: supplied by bst_out
[    3.522955] SW_OUT: supplied by bst_out
[    3.530466] input: pmic_onkey as /devices/platform/soc/5c002000.i2c/i2c-1/1-0033/5c002000.i2c:stpmic@33:onkey/input/input1
[    3.542099] at24 1-0050: 4096 byte 24c32 EEPROM, writable, 1 bytes/write
[    3.551011] rtc-rv3028 1-0052: registered as rtc0
[    3.554649] stm32f7-i2c 5c002000.i2c: STM32F7 I2C-1 bus adapter
[    3.561311] mmci-pl18x 58005000.sdmmc: Got CD GPIO
[    3.565568] mmci-pl18x 58005000.sdmmc: mmc0: PL180 manf 53 rev2 at 0x58005000 irq 45,0 (pio)
[    3.602397] mmci-pl18x 58007000.sdmmc: mmc1: PL180 manf 53 rev2 at 0x58007000 irq 46,0 (pio)
[    3.637838] stm32-ipcc 4c001000.mailbox: ipcc rev:1.0 enabled, 6 chans, proc 0
[    3.646423] stm32-rproc mlahb:m4@10000000: wdg irq registered
[    3.652863] remoteproc remoteproc0: m4 is available
[    3.660178] mmc0: host does not support reading read-only switch, assuming write-enable
[    3.675768] reg11: supplied by vdd
[    3.678054] reg18: supplied by vdd
[    3.682282] stm32-usbphyc 5a006000.usbphyc: registered rev:1.0
[    3.688522] mmc0: new high speed SDHC card at address b368
[    3.695311] mmcblk0: mmc0:b368 USD   7.47 GiB
[    3.702924] panel-simple panel: panel supply power not found, using dummy regulator
[    3.710465] dwc2 49000000.usb-otg: 49000000.usb-otg supply vusb_d not found, using dummy regulator
[    3.718380] dwc2 49000000.usb-otg: 49000000.usb-otg supply vusb_a not found, using dummy regulator
[    3.736228] mmc1: new DDR MMC card at address 0001
[    3.751090] mmcblk1: mmc1:0001 Q2J55L 7.09 GiB
[    3.754866] mmcblk1boot0: mmc1:0001 Q2J55L partition 1 16.0 MiB
[    3.761160] mmcblk1boot1: mmc1:0001 Q2J55L partition 2 16.0 MiB
[    3.766684] mmcblk1rpmb: mmc1:0001 Q2J55L partition 3 4.00 MiB, chardev (243:0)
[    3.775358] GPT:Primary header thinks Alt. header is not at the end of the disk.
[    3.781806] GPT:3145727 != 15661055
[    3.784800] GPT:Alternate GPT header not at the end of the disk.
[    3.792025] GPT:3145727 != 15661055
[    3.794304] GPT: Use GNU Parted to correct GPT errors.
[    3.799640]  mmcblk0: p1 p2 p3 p4 p5 p6 p7
[    3.857458] usb33: supplied by vdd_usb
[    3.860045] dwc2 49000000.usb-otg: EPs: 9, dedicated fifos, 952 entries in SPRAM
[    3.868033] dwc2 49000000.usb-otg: DWC OTG Controller
[    3.872259] dwc2 49000000.usb-otg: new USB bus registered, assigned bus number 1
[    3.879764] dwc2 49000000.usb-otg: irq 81, io mem 0x49000000
[    3.886629] hub 1-0:1.0: USB hub found
[    3.889162] hub 1-0:1.0: 1 port detected
[    3.900798] ehci-platform 5800d000.usbh-ehci: EHCI Host Controller
[    3.905580] ehci-platform 5800d000.usbh-ehci: new USB bus registered, assigned bus number 2
[    3.914319] ehci-platform 5800d000.usbh-ehci: irq 59, io mem 0x5800d000
[    3.947349] ehci-platform 5800d000.usbh-ehci: USB 2.0 started, EHCI 1.00
[    3.953960] hub 2-0:1.0: USB hub found
[    3.956412] hub 2-0:1.0: 2 ports detected
[    3.961896] ohci-platform 5800c000.usbh-ohci: Generic Platform OHCI controller
[    3.967786] ohci-platform 5800c000.usbh-ohci: new USB bus registered, assigned bus number 3
[    3.976373] ohci-platform 5800c000.usbh-ohci: irq 48, io mem 0x5800c000
[    4.052581] hub 3-0:1.0: USB hub found
[    4.054933] hub 3-0:1.0: 2 ports detected
[    4.065498] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    4.070736] [drm] Driver supports precise vblank timestamp query.
[    4.078922] [drm] Initialized stm 1.0.0 20170330 for 5a001000.display-controller on minor 0
[    4.090405] input: gpio-keys as /devices/platform/gpio-keys/input/input2
[    4.097695] rtc-rv3028 1-0052: setting system clock to 2021-06-08T08:07:46 UTC (1623139666)
[    4.105654] ALSA device list:
[    4.107732]   No soundcards found.
[    4.114712] Freeing unused kernel memory: 1024K
[    4.147715] Run /init as init process
Starting version 244.3+
[    6.438159] EXT4-fs (mmcblk0p6): mounted filesystem with ordered data mode. Opts: (null)
[    6.444864] ext4 filesystem being mounted at /rootfs supports timestamps until 2038 (0x7fffffff)
RESIZE BOOTFS [/dev/mmcblk0p4]
e2fsck 1.45.4 (23-Sep-2019)
Checking for bad blocks (read-only test): done
bootfs: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

bootfs: ***** FILE SYSTEM WAS MODIFIED *****
bootfs: 24/16384 files (4.2% non-contiguous), 18405/65536 blocks
resize2fs 1.45.4 (23-Sep-2019)
The filesystem is already 65536 (1k) blocks long.  Nothing to do!

RESIZE VENDORFS [/dev/mmcblk0p5]
e2fsck 1.45.4 (23-Sep-2019)
Checking for bad blocks (read-only test): done
vendorfs: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

vendorfs: ***** FILE SYSTEM WAS MODIFIED *****
vendorfs: 33/4096 files (0.0% non-contiguous), 8445/16384 blocks
resize2fs 1.45.4 (23-Sep-2019)
The filesystem is already 16384 (1k) blocks long.  Nothing to do!

RESIZE ROOTFS [/dev/mmcblk0p6]
resize2fs 1.45.4 (23-Sep-2019)
Filesystem at /dev/mmcblk0p6 is mounted on /rootfs; on-line resizing required
old_desc_bloc[   29.441185] EXT4-fs (mmcblk0p6): resizing filesystem from 51520 to 763904 blocks
ks = 1, new_desc_blocks = 6
[   34.407420] vdda: disabling
[   39.950228] EXT4-fs (mmcblk0p6): resized to 524289 blocks
[   50.324101] EXT4-fs (mmcblk0p6): resized filesystem to 763904

The filesystem on /dev/mmcblk0p6 is now 763904 (1k) blocks long.

RESIZE USERFS [/dev/mmcblk0p7]
e2fsck 1.45.4 (23-Sep-2019)
Checking for bad blocks (read-only test): done
userfs: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

userfs: ***** FILE SYSTEM WAS MODIFIED *****
userfs: 59/32768 files (0.0% non-contiguous), 9874/131072 blocks
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /dev/mmcblk0p7 to 724444 (1k) blocks.
The filesystem on /dev/mmcblk0p7 is now 724444 (1k) blocks long.

[  117.827892] NET: Registered protocol family 10
[  117.879364] Segment Routing with IPv6
[  117.933831] 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)
[  117.956377] systemd[1]: Detected architecture arm.

Welcome to ST OpenSTLinux - EGLfs - (A Yocto Project Based Distro) 3.1-snapshot-20210607 (dunfell)!

[  118.068770] systemd[1]: Set hostname to <phycore-stm32mp1-2>.
[  118.107445] systemd[1]: Initializing machine ID from random generator.
[  120.320160] systemd[1]: Unnecessary job for /dev/ttySTM0 was removed.
[  120.333493] systemd[1]: Created slice system-getty.slice.
[  OK  ] Created slice system-getty.slice.
[  120.369857] systemd[1]: Created slice system-serial\x2dgetty.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[  120.409658] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[  120.448196] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password …ts to Console Directory Watch.
[  120.488043] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R…uests to Wall Directory Watch.
[  120.527935] systemd[1]: Reached target Paths.
[  OK  ] Reached target Paths.
[  120.557681] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[  120.607609] systemd[1]: Reached target Slices.
[  OK  ] Reached target Slices.
[  120.637680] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[  120.668775] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[  120.721141] systemd[1]: Listening on Process Core Dump Socket.
[  OK  ] Listening on Process Core Dump Socket.
[  120.758238] systemd[1]: Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[  120.803940] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[  120.811796] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[  120.848774] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[  120.889024] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[  120.928716] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[  120.968279] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[  121.008771] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[  121.023141] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[  121.064546] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[  121.105505] systemd[1]: Mounting Temporary Directory (/tmp)...
         Mounting Temporary Directory (/tmp)...
[  121.138179] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.
[  121.148599] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[  121.166847] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[  121.213440] systemd[1]: Condition check resulted in Load Kernel Modules being skipped.
[  121.228625] systemd[1]: Mounting FUSE Control File System...
         Mounting FUSE Control File System...
[  121.274287] systemd[1]: Mounting Kernel Configuration File System...
         Mounting Kernel Configuration File System...
[  121.324918] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[  121.375444] systemd[1]: Starting Apply Kernel Variables...
         Starting Apply Kernel Variables...
[  121.410907] EXT4-fs (mmcblk0p6): re-mounted. Opts: (null)
[  121.418772] systemd[1]: Starting udev Coldplug all Devices...
         Starting udev Coldplug all Devices...
[  121.432269] ext4 filesystem being remounted at / supports timestamps until 2038 (0x7fffffff)
[  121.486839] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Kernel Debug File System.
[  OK  ] Mounted Temporary Directory (/tmp).
[  OK  ] Mounted FUSE Control File System.
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Started Remount Root and Kernel File Systems.
[  OK  ] Started Apply Kernel Variables.
         Starting Flush Journal to Persistent Storage...
         Starting Create System Users...
[  121.822461] systemd-journald[277]: Received client request to flush runtime journal.
[  OK  ] Started Flush Journal to Persistent Storage.
[  OK  ] Started Create System Users.
         Starting Create Static Device Nodes in /dev...
[  OK  ] Started Create Static Device Nodes in /dev.
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /var/volatile...
         Starting udev Kernel Device Manager...
[  OK  ] Mounted /var/volatile.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Rebuild Dynamic Linker Cache...
         Starting Create Volatile Files and Directories...
[  OK  ] Started udev Coldplug all Devices.
[  OK  ] Started Create Volatile Files and Directories.
         Starting Run pending postinsts...
         Starting Rebuild Journal Catalog...
         Starting Network Time Synchronization...
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Run pending postinsts.
[  OK  ] Started Rebuild Journal Catalog.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started Rebuild Dynamic Linker Cache.
[  OK  ] Reached target System Time Set.
[  OK  ] Reached target System Time Synchronized.
         Starting Network Service...
         Starting Update is Completed...
[  OK  ] Started Update is Completed.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
[  OK  ] Started Kernel Logging Service.
[  OK  ] Started System Logging Service.
[  OK  ] Started D-Bus System Message Bus.
         Starting Login Service...
[  OK  ] Started Network Service.
         Starting Network Name Resolution...
[  OK  ] Started Network Name Resolution.
[  125.002395] stm32-dwmac 5800a000.ethernet eth0: PHY [stmmac-0:01] driver [TI DP83867]
[  125.051684] dwmac4: Master AXI performs any burst length
[  125.062194] stm32-dwmac 5800a000.ethernet eth0: No Safety Features support found
[  125.123753] stm32-dwmac 5800a000.ethernet eth0: IEEE 1588-2008 Advanced Timestamp supported
[  125.171999] stm32-dwmac 5800a000.ethernet eth0: registered PTP clock
[  125.205496] stm32-dwmac 5800a000.ethernet eth0: configuring for phy/rgmii-id link mode
[  OK  ] Started Login Service.
[  OK  ] Created slice system-systemd\x2dbacklight.slice.
[  OK  ] Reached target Network.
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
         Starting Load/Save Screen …f backlight:panel-backlight...
         Starting Permit User Sessions...
[  OK  ] Started Load/Save Screen B… of backlight:panel-backlight.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttySTM0.
[  OK  ] Reached target Login Prompts.
[  OK  ] Reached target Multi-User System.
         Starting Update UTMP about System Runlevel Changes...
[  OK  ] Started Update UTMP about System Runlevel Changes.

ST OpenSTLinux - EGLfs - (A Yocto Project Based Distro) 3.1-snapshot phycore-stm32mp1-2 ttySTM0

phycore-stm32mp1-2 login: root (automatic login)

[  126.872635] stm32-dwmac 5800a000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[  126.880044] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
root@phycore-stm32mp1-2:~# 

What is the kernel version?

root@phycore-stm32mp1-2:~# cat /proc/version 
Linux version 5.4.56 (oe-user@oe-host) (gcc version 9.3.0 (GCC)) #1 SMP PREEMPT Wed Aug 5 07:59:52 UTC 2020

Let’s have a look at currently loaded kernel modules:

root@phycore-stm32mp1-2:~# lsmod
Module                  Size  Used by
sch_fq_codel           20480  2
ipv6                  442368  18
nf_defrag_ipv6         20480  1 ipv6

What is the content of the kernel command line?

root@phycore-stm32mp1-2:~# cat /proc/cmdline 
root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw  drm.edid_firmware= console=ttySTM0,115200

Conclusion

That’s just a small demo of how a “Build Container” can be used with “Vendor Trees”.

Please note: Poky is not used by the “Evil Vendor Tree”. Poky is the reference implementation of the Yocto Project®.

Appendix

For a blog post that describes how to build the upstream kernel without the Yocto Project® have a look here. If you want to learn how Embedded Linux works have a look here. To learn more about the Yocto Project® have a look here.

Upcoming Events

Our 3 points

of differentiation

We provide host and target hardware during all our teaching.

Three or more people from the same company? We provide private customized training – consulting included.

Subject matter experts develop high-quality, job-related, up-to-date, authentic courseware.