STM32MP157构建OpenSTLinux的QT镜像和SDK

发布者:superstar10最新更新时间:2025-02-28 来源: elecfans关键字:SDK 手机看文章 扫描二维码
随时随地手机看文章

记录下整个过程以及在该过程中遇到的问题和解决方法。


一、获取软件仓库

$ mkdir -p openstlinux-5.4-dunfell-mp1-21-12-22

$ cd openstlinux-5.4-dunfell-mp1-21-12-22

$ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-21-12-22 

执行第3条命令时报错如下:


$ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-21-12-22 


Command 'repo' not found, but can be installed with:


sudo snap install git-repo

按照提示安装git-repo后重新执行命令,报错如下:


$ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-21-12-22 


warning: gpg (GnuPG) is not available.

warning: Installing it is strongly encouraged.

warning: templates not found /build/git-repo-publish/parts/git/install/usr/share/git-core/templates

......

  File '/home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/.repo/repo/main.py', line 79

    file=sys.stderr)

        ^

SyntaxError: invalid syntax

按照如下步骤解决上述错误:


$ sudo apt-get install gpg

$ rm -rf ~/.repoconfig

$ mkdir -p ~/bin

$ curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo

$ chmod a+x ~/bin/repo

然后执行如下命令获取仓库:


$ python3 ~/bin/repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-21-12-22 

如果出现如下警告,按照提示执行命令即可:


... A new version of repo (2.21) is available.

... You should upgrade soon:

    cp /home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/.repo/repo/repo /home/admin/bin/repo

如果执行命令出现如下错误提示:


Downloading Repo source from https://gerrit.googlesource.com/git-repo

fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle

fatal: error [Errno 110] Connection timed out

fatal: double check your --repo-rev setting.

fatal: cloning the git-repo repository failed, will remove '.repo/repo' 

执行如下命令使用国内镜像源:


$ export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

然后再重新执行命令。成功执行命令的话提示如下:


$ python3 ~/bin/repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-21-12-22


Downloading Repo source from https://mirrors.tuna.tsinghua.edu.cn/git/git-repo

remote: Enumerating objects: 7259, done.

remote: Counting objects: 100% (7259/7259), done.

remote: Compressing objects: 100% (3847/3847), done.

remote: Total 7259 (delta 4683), reused 5526 (delta 3338)

接收对象中: 100% (7259/7259), 3.21 MiB | 3.41 MiB/s, 完成.

处理 delta 中: 100% (4683/4683), 完成.

Downloading manifest from https://github.com/STMicroelectronics/oe-manifest.git

remote: Enumerating objects: 61, done.

remote: Counting objects: 100% (27/27), done.

remote: Compressing objects: 100% (18/18), done.

remote: Total 61 (delta 15), reused 20 (delta 9), pack-reused 34

展开对象中: 100% (61/61), 9.76 KiB | 713.00 KiB/s, 完成.


Your identity is: zzssdd2

If you want to change this, please re-run 'repo init' with --config-name


repo has been initialized in /home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22

接着执行同步仓库的命令:


$ python3 ~/bin/repo sync  


Fetching: 100% (9/9), done in 3m27.864s

Garbage collecting: 100% (9/9), done in 0.040s

repo sync has finished successfully.

执行完上面命令后仓库就同步完成了,如果在同步过程中由于下载出错等原因导致中断,重新执行同步命令即可。同步完成后目录结构如下所示:


openstlinux-5.4-dunfell-mp1-21-12-22

├── .repo

│   ├── copy-link-files.json

│   ├── manifests

│   ├── manifests.git

│   ├── manifest.xml

│   ├── project.list

│   ├── project-objects

│   ├── projects

│   └── repo

└── layers

    ├── meta-openembedded

    ├── meta-qt5

    ├── meta-st

    ├── meta-timesys

    └── openembedded-core

接下来进行构建环境的初始化。


二、初始化构建环境

我选择的镜像是QT image and SDK with weston/wayland,因此执行如下命令来初始化构建环境:


$ DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh

由于我的主机缺少相关软件包提示如下:


[HOST DISTRIB check]

Linux Distrib: Ubuntu

Linux Release: 20.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 pylint python3 python3-git python3-jinja2 python3-pexpect python3-pip socat texinfo unzip wget xterm xz-utils


Missing required packages detected:

chrpath diffstat gawk gcc-multilib libegl1-mesa libsdl1.2-dev pylint python3-git python3-jinja2 python3-pip socat texinfo xterm


To update your Linux Distribution packages, two proposals:

  1) run again envsetup.sh script with '--pkg-update' option

  OR

  2) before running envsetup.sh script, launch first in your Linux console:

sudo apt-get update

sudo apt-get install chrpath diffstat gawk gcc-multilib libegl1-mesa libsdl1.2-dev pylint python3-git python3-jinja2 python3-pip socat texinfo xterm


Check aborted: exiting now...

根据提示执行如下命令:


$ sudo apt-get update

$ sudo apt-get install chrpath diffstat gawk gcc-multilib libegl1-mesa libsdl1.2-dev pylint python3-git python3-jinja2 python3-pip socat texinfo xterm

然后在我的主机上会出现如下错误:


下列软件包有未满足的依赖关系:

 libsdl1.2-dev : 依赖: libglu1-mesa-dev 但是它将不会被安装 或

                         libglu-dev

                 依赖: libx11-dev 但是它将不会被安装

                 依赖: libxext-dev 但是它将不会被安装

E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

解决错误过程如下:


$ sudo apt install aptitude

$ sudo aptitude install libsdl1.2-dev

......

 libx11-dev : 依赖: libx11-6 (= 2:1.6.9-2ubuntu1.2) 但是 2:1.6.9-2ubuntu1.3 已安装

下列动作将解决这些依赖关系:


      保持 下列软件包于其当前版本:

1)      libegl-dev [未安装的]      

2)      libgl-dev [未安装的]       

3)      libgl1-mesa-dev [未安装的] 

4)      libgles-dev [未安装的]     

5)      libglu1-mesa-dev [未安装的]

6)      libglvnd-dev [未安装的]    

7)      libglx-dev [未安装的]      

8)      libsdl1.2-dev [未安装的]   

9)      libx11-dev [未安装的]      

10)     libxext-dev [未安装的]     




是否接受该解决方案?[Y/n/q/?] n

下列动作将解决这些依赖关系:


     降级 下列软件包:                                                          

1)     libx11-6 [2:1.6.9-2ubuntu1.3 (now) -> 2:1.6.9-2ubuntu1.2 (focal-security,




是否接受该解决方案?[Y/n/q/?] Y

......

解决该错误后重新执行安装所缺少软件包的那条命令即可。安装完成后再次执行初始化构建环境的命令,如下:


$ DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh


[HOST DISTRIB check]

Linux Distrib: Ubuntu

Linux Release: 20.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 pylint 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.


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


[EULA configuration]


[Configure *.conf files]

[INFO] No 'site.conf.sample' file available at /home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/layers/meta-st/scripts. Create default one...


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

Configuration files have been created for the following configuration:


    DISTRO            :  openstlinux-weston

    DISTRO_CODENAME   :  dunfell

    MACHINE           :  stm32mp1

    BB_NUMBER_THREADS : 

    PARALLEL_MAKE     : 


    BUILDDIR          :  build-openstlinuxweston-stm32mp1

    DOWNLOAD_DIR      : 

    SSTATE_DIR        : 


    SOURCE_MIRROR_URL : 

    SSTATE_MIRRORS    : 


    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 '

The OpenEmbedded environment setup script must be run once in each new working terminal in which you use the BitBake or devtool tools


The BSP for STM32MP1 depends on packages and firmwares which are covered by a software license agreement (SLA). You will be asked to read and to accept this EULA.


至此,构建环境初始化完成,接下来开始构建镜像和SDK。


三、构建镜像和SDK

温馨提示:在执行下面的构建命令前建议查看下磁盘容量以确保有足够的磁盘空间,否则在构建过程中因磁盘空间不足也会导致失败,如果磁盘空间不够需要先进行扩容再来进行构建工作。


镜像和SDK构建完成后的磁盘占用情况如下:


$ du -h -d 1

134M    ./layers

330M    ./.repo

70G     ./build-openstlinuxweston-stm32mp1

执行如下命令开始构建镜像:


$ bitbake st-example-image-qtwayland

然后就是耐心等待构建完成。如果在该过程中由于下载出错等原因导致中断,重新执行构建命令即可。


################################### 2000 years later...... ################################################


构建成功后如下所示:


NOTE: Started PRServer with DBfile: /home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 42375, PID: 502452

[1] [2] [3] [4] [5]
关键字:SDK 引用地址:STM32MP157构建OpenSTLinux的QT镜像和SDK

上一篇:STM32MP157系统移植(TF-A,U-Boot,Linux)
下一篇:STM32MP157移植Qt5.12.10

推荐阅读最新更新时间:2026-03-13 10:28

迅为IMX6开发板Mfgtools工具单独烧写镜像-设备树Qt系统
烧写设备树版本 Qt 系统要使用 iMX6Q 设备树光盘里的烧写工具,将文件夹下的 cfg.ini 修改成如下图所示: 打开“android_m6.0.1_2.0.0_ga_tool_20190725mfgtoolsProfilesLinuxOS Firmwareucl2.xml”文件,搜索“Linux-SabreSD-eMMC”,可看到操作表信息。只烧写某一个镜像时,只需把把其他镜像的操作表注释掉即可。 68.3.1 烧写文件系统 注释掉“burn uboot”,“burn zImage”,只留下“burn rootfs”,如下图,注释 u-boot 操作表: 注释 zImage 操作表: 然后打开烧写软件按照手册进行烧写
[单片机]
迅为IMX6开发板Mfgtools工具单独烧写<font color='red'>镜像</font>-设备树<font color='red'>Qt</font>系统
意法半导体发布STM32MP23高性价比MPU, 并延长对OpenSTLinux版本的支持期限
功能亮点包括人工智能加速和网络安全保护,目标应用聚焦工业控制和物联网 2025 年 4 月 11 日,中国—— 意法半导体发布面向大众市场的STM32MP23新系列通用微处理器(MPU) 。 新产品的工作温度高达 125°C,搭载两个Arm® Cortex®-A35处理器核心,处理速度和能效俱佳,为工业和物联网 (IoT) 边缘计算、高级HMI人机界面和机器学习应用带来出色的性能和强大的稳健性。 新系列MPU是2024年推出的STM32MP25系列的后续产品,内置两个1.5GHz Arm Cortex-A35核和一个400MHz Cortex-M33 内核 (用于实时控制) 以及0.6 TOPS 的神经网络加速器。此外,新
[单片机]
意法半导体发布STM32MP23高性价比MPU,  并延长对<font color='red'>OpenSTLinux</font>版本的支持期限
STM32MP157开发板调试笔记
一、前言 最近在ODYSSEY-STM32MP157C板子上移植arm-trusted-firmware、u-boot以及linux(其实这个开发板官方是有提供完整的系统镜像的,重新移植的原因主要是官方镜像没有使用TF-A,而是使用Uboot-SPL替代TF-A作为FSBL启动)。本以为之前在另一块stm32mp157板子上面移植过这些东西所以应该问题不大,但是由于硬件设计的差异仍然是遇到了一些问题。最后还是花费了些时间解决问题,故写这篇笔记用来记录各环节遇到的问题及解决过程。 二、Trusted Firmware A (TF-A) 版本:arm-trusted-firmware-2.2-stm32mp-r2.3 1、问题
[单片机]
<font color='red'>STM32MP157</font>开发板调试笔记
基于STM32MP157的Linux操作系统移植—系统镜像烧写
FS-MP1A支持通过STM32CubeProgrammer工具镜像的烧录,此外还支持通过BootLoader下的ums工具配合ubuntu操作系统进行单个镜像更新,通过使用tftp下载方式进行镜像的验证,以及使用scp方式来更新Linux内核与设备树。 STM32CubeProgrammer烧写方式 1、调整拨码开关 在开发板上电之前我们需要先将开发板的拨码开关拨到【000】位置。 2、硬件接线 在使用USB方式烧写镜像时,需要借助USB mini线来进行数据传输,此外还可以通过串口终端来监视烧写过程。 3、调试串口配置 在烧写过程中可以通过调试串口来监控烧写过程,串口调试可以借助XSHELL来进行相关调试。 开启x
[单片机]
ARM裸机开发:I.MX6U官方SDK包使用
一、硬件平台: 正点原子I.MX6U阿尔法开发板 二、SDK包简介 NXP 官方为 I.MX6ULL 编写了 SDK 包,在 SDK 包里面 NXP 已经编写好了寄存器定义文件, 所以我们可以直接移植 SDK 包里面的文件来用,SDK 在 NXP 官网下载 此处我们下载 Window 版本的,选择一处位置安装 三、SDK包移植 SDK 的移植我们只要关注其中的寄存器封装头文件就行,包含寄存器信息的文件位置如下: fsl_common.h:位置:sdk目录devicesMCIMX6Y2driversfsl_common.h fsl_iomuxc.h: 位置:sdk目录devicesMCIMX6Y2drivers
[单片机]
ARM裸机开发:I.MX6U官方<font color='red'>SDK</font>包使用
MediaTek NeuroPilot SDK整合NVIDIA TAO,加速物联网边缘AI应用发展
2024年6月11日, MediaTek在COMPUTEX 2024期间宣布将NVIDIA TAO与MediaTek NeuroPilot SDK集成,应用于边缘AI推理芯片的开发 。MediaTek对NVIDIA TAO的支持将为开发者带来无缝体验,开发者可以为MediaTek芯片驱动的物联网应用开发丰富的边缘AI以及生成式AI功能,赋能各类企业在智能零售、制造、医疗、交通、智慧城市等多样化的物联网垂直领域,充分发挥边缘AI的应用潜力。 MediaTek 物联网事业部总经理王镇国 表示:“将NVIDIA TAO与MediaTek NeuroPilot开发套件集成,将进一步扩大我们普及AI应用的愿景蓝图,推动新一轮AI设备和体
[物联网]
RK30SDK系统重启源码分析
Linux系统重启的最底层函数是arch_reset,这是一个全局的函数指针变量,定义在 arch/arm/mach-rk30/include/mach/system.h中: extern void (*arch_reset)(char, const char *); 注意,这是一个变量声明,类型为函数指针。并不是函数的声明!它的实现在mach-rk30/reset.c中: static void rk30_arch_reset(char mode, const char *cmd) { u32 boot_flag = 0; u32 boot_mode = BOOT_MODE_REBOOT; if (cmd) {
[单片机]
米尔国产T507-H开发板之Android SDK说明
米尔国产开发平台T507-H之Android系统发布说明 安卓系统作为目前世界上最受欢迎的移动操作系统,它可以在大量的设备上使用,它正在接管平板电脑、汽车、智能电视、可穿戴设备、家用电器、游戏机等市场,它为嵌入式平台提供了独特而熟悉的体验,从小的手机屏幕到显示器,再到车载娱乐系统,再到大的电视屏幕。基于Android 系统的医疗设备、汽车电子、工业产品、工业平板、POS机等设备正在被广泛地应用和接受。 米尔作为领先的嵌入式处理器模组厂商,2022年推出的基于国产开发平台的全志T507-H的核心板和开发板,受到了行业开发者的喜爱,目前已经在多行业上应用。早期,米尔仅发布有Linux系统和Ubuntu系统,为方便广大工程
[嵌入式]
米尔国产T507-H开发板之Android <font color='red'>SDK</font>说明
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved