【STM32MP135】构建官方Distribution Package详解

引言

STM32MP135官方提供了内容详细的WiKi页面,帮助我们快速上手STM32 MPU的使用,对于实际开发需求,ST提供了以下三种不同程度的软件包资源供开发者使用,详情页:
👇👇👇
哪款 STM32MPU 嵌入式软件包更适合您的需求
👆👆👆
总结:

  • Starter Package: 适合初次上手,直接烧录镜像,快速体验
  • Developer Package: 包含SDK及BSP源码,适合绝大多数开发场景,可由Distribution Package生成
  • Distribution Package: 从0开始,使用官方的构建流程,创建完全自定义的Linux发行版,入门包及开发包
    今天来分享下Distribution Package的使用过程,从0开始构建出属于自己的适用于STM32MP135-DK的Linux发行版。这个过程虽然复杂繁琐耗时长,但是经历一次之后对Linux构建流程能有初步了解。
  • 本文内容是作者参考官方WiKi教程操作时的记录及补充,方便爱好者们参考理解,动手能力强的建议直接去看官方文档:
    👇👇👇
    STM32MPU Distribution Package
    👆👆👆

    1.Linux环境

    ST建议的是使用Ubuntu 22.04版本,详见👉PC prerequisites👈的4.1.1. Installing the virtual machine章节,爱动手的自己安装Ubuntu,我使用的是👉Linux VM Image👈提供的适用于VMWare的Ubuntu景象,下载后解压直接就启动了,ssh什么常用依赖也都配置好了,开箱即用了,不建议大家在安装Ubuntu这种小事上浪费时间。

    2.配置代理

    为了避免网络连通性造成的操作失败,建议配置好代理。

    # 配置终端代理,自己修改好代理地址和端口
    export https_proxy=http://192.168.100.124:7890
    export http_proxy=http://192.168.100.124:7890
    export all_proxy=socks5://192.168.100.124:7890
    
    # 配置Git代理
    git config --global http.proxy http://192.168.100.124:7890
    git config --global https.proxy http://192.168.100.124:7890
    
    # 配置好后检查一下网络状态
    wget -q www.google.com && echo "Internet access over HTTP/HTTPS is OK !" || echo "No internet access over HTTP/HTTPS ! You might need to set up a proxy."
    
    

    3.安装依赖

    # 安装OpenEmbedded/Yocto需要的软件包
    sudo apt-get update
    sudo apt-get install gawk wget git git-lfs diffstat unzip texinfo gcc-multilib  chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint xterm bsdmainutils
    sudo apt-get install libssl-dev libgmp-dev libmpc-dev lz4 zstd
    
    # 安装Developer Package需要的软件包
    sudo apt-get install build-essential libncurses-dev libncurses5 libyaml-dev libssl-dev 
    
    # 安装获取Distribution Package需要的repo环境
    sudo apt install python-is-python3
    sudo apt-get install repo
    
    
    # 其他有用的工具
    sudo apt-get install coreutils bsdmainutils sed curl bc lrzsz corkscrew cvs subversion mercurial nfs-common nfs-kernel-server libarchive-zip-perl dos2unix texi2html libxml2-utils
    
    

    4.其他设置

    # 默认情况下,Linux 系统允许最多 8 个 MMC 分区,需要将分区数量增加到 16 个
    echo 'options mmc_block perdev_minors=16' > /tmp/mmc_block.conf
    sudo mv /tmp/mmc_block.conf /etc/modprobe.d/mmc_block.conf
    
    # 检查区域设置是否为"LANG=en-US.UTF-8"
    locale
    # 如果LANG的值不是"en-US.UTF-8",需要重新设置
    sudo update-locale LANG=en_US.UTF-8
    
    # 确保用户是否属于属于disk、tty、dialout和plugdev
    groups
    # 如果需要将用户添加到缺少的组中,可以使用:
    sudo adduser $USER disk
    sudo adduser $USER tty
    sudo adduser $USER dialout
    sudo adduser $USER plugdev
    
    # 配置Git用户信息,自行修改
    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"
    

    5.获取源码并构建

    # 创建源码存放路径
    mkdir STM32MPU-Ecosystem-v5.1.0
    cd STM32MPU-Ecosystem-v5.1.0
    mkdir Distribution-Package
    
    # 获取Distribution Package源码
    cd Distribution-Package/
    repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-6.1-yocto-mickledore-mpu-v24.06.26
    repo sync
    
    # 初始化构建环境
    DISTRO=openstlinux-weston MACHINE=stm32mp13-disco source layers/meta-st/scripts/envsetup.sh
    # 开始构建
    bitbake st-image-weston
    

    接下来就是漫长的等待…
    等待编译完成
    由于编译时间较长,本文持续更新,后面将会介绍发行包的使用

    作者:DM9600

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【STM32MP135】构建官方Distribution Package详解

    发表回复