【STM32MP135】构建官方Distribution Package详解
引言
STM32MP135官方提供了内容详细的WiKi页面,帮助我们快速上手STM32 MPU的使用,对于实际开发需求,ST提供了以下三种不同程度的软件包资源供开发者使用,详情页:
👇👇👇
哪款 STM32MPU 嵌入式软件包更适合您的需求
👆👆👆
总结:
今天来分享下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