保姆级教程:在Ubuntu 22.04上为STM32MP2搭建OpenSTLinux 6.6 Yocto开发环境(含SDK安装与配置)

张开发
2026/5/31 19:33:31 15 分钟阅读
保姆级教程:在Ubuntu 22.04上为STM32MP2搭建OpenSTLinux 6.6 Yocto开发环境(含SDK安装与配置)
保姆级教程在Ubuntu 22.04上为STM32MP2搭建OpenSTLinux 6.6 Yocto开发环境含SDK安装与配置刚拿到STM32MP2开发板的嵌入式开发者往往需要快速搭建一个稳定的开发环境。Ubuntu 22.04 LTS作为当前最流行的Linux发行版之一为嵌入式开发提供了良好的基础。本文将手把手带你完成从系统准备到工具链验证的全过程特别针对Ubuntu 22.04环境下的常见问题进行详细解答。1. 系统准备与依赖安装在开始之前确保你的Ubuntu 22.04系统已经更新到最新状态sudo apt update sudo apt upgrade -ySTM32MP2开发需要安装以下基础依赖包sudo apt install -y gawk wget git-core diffstat unzip texinfo \ gcc-multilib build-essential chrpath socat cpio python3 \ python3-pip python3-pexpect xz-utils debianutils iputils-ping \ python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \ pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool注意Ubuntu 22.04默认使用Python 3.10某些Yocto工具可能需要特定版本的Python。如果遇到兼容性问题可以考虑使用pyenv管理多个Python版本。提示对于国内用户建议更换apt源以提高下载速度。可以使用阿里云或清华大学的Ubuntu镜像源。2. 获取并安装OpenSTLinux SDKST官方提供了完整的开发套件我们需要下载两个关键文件SDK安装包SDK-x86_64-stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11.tar.gz源代码包en.SOURCES-stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27.tar.gz下载完成后首先解压SDK安装包tar xvf SDK-x86_64-stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11.tar.gz然后为安装脚本添加执行权限chmod x stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11/sdk/st-image-weston-openstlinux-weston-stm32mp2.rootfs-x86_64-toolchain-5.0.8-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11.sh安装SDK到默认目录/opt/st./stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11/sdk/st-image-weston-openstlinux-weston-stm32mp2.rootfs-x86_64-toolchain-5.0.8-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11.sh或者安装到自定义目录./stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11/sdk/st-image-weston-openstlinux-weston-stm32mp2.rootfs-x86_64-toolchain-5.0.8-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11.sh -d /path/to/your/directory3. 环境配置与验证安装完成后需要设置环境变量以便使用交叉编译工具链。创建一个软链接并source环境配置ln -sf /opt/st/stm32mp2/5.0.8-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11/environment-setup-cortexa35-ostl-linux ~/sdk6.6_mp2 source ~/sdk6.6_mp2验证环境变量是否设置正确echo $ARCH # 应该输出arm64 echo $CROSS_COMPILE # 应该输出aarch64-ostl-linux- $CC --version # 应该显示GCC版本信息 echo $OECORE_SDK_VERSION # 应该显示5.0.8-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.114. 源代码准备与构建解压源代码包tar xvf en.SOURCES-stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27.tar.gz进入源代码目录初始化Yocto构建环境cd stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27 source layers/meta-st/scripts/envsetup.sh选择STM32MP2的机器配置MACHINEstm32mp25-distro source layers/meta-st/scripts/envsetup.sh开始构建镜像bitbake st-image-weston构建过程可能需要数小时取决于你的网络速度和硬件配置。建议使用至少16GB内存和多核CPU的机器进行构建。5. 常见问题与解决方案在Ubuntu 22.04上搭建STM32MP2开发环境时可能会遇到以下问题Python版本冲突症状bitbake运行时出现Python语法错误解决方案使用pyenv安装Python 3.8或3.9版本内存不足症状构建过程中系统卡死或报内存不足错误解决方案增加swap空间或使用-j参数限制并行任务数网络下载失败症状某些包下载失败或速度极慢解决方案配置Yocto使用国内镜像源权限问题症状安装SDK时提示权限不足解决方案确保对安装目录有写权限或使用sudo安装到系统目录图形界面依赖缺失症状构建Weston相关组件失败解决方案安装完整的图形开发库sudo apt install -y libwayland-dev wayland-protocols libxkbcommon-dev libegl1-mesa-dev libgles2-mesa-dev6. 开发工作流优化为了提高开发效率建议配置以下工具和设置VS Code配置安装C/C扩展配置交叉编译工具链路径设置include路径指向SDK中的头文件调试工具OpenOCD配置GDB调试设置串口终端配置自动化脚本编写构建和部署脚本设置环境变量自动加载创建常用命令的别名版本控制初始化git仓库设置.gitignore排除构建产物建立合理的分支策略7. 进阶配置与定制对于需要深度定制的开发者可以考虑以下进阶配置自定义Yocto层创建自己的meta层添加自定义软件包修改系统配置内核定制修改设备树添加驱动模块调整内核配置文件系统定制添加自定义服务修改启动脚本优化系统组件性能优化调整编译器选项优化系统服务精简不必要的组件在实际项目中我发现最耗时的往往是解决依赖关系和版本冲突问题。建议在开始新项目前先创建一个干净的基础环境并记录所有安装步骤以便后续复现和团队共享。

更多文章