你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

openSTlinux系统搭建过程分享

[复制链接]
废鱼 发布时间:2024-11-30 13:29

最近在学习一下ST的openSTlinux的使用,基于stm32mp135f-dk进行了前期工作。

image.png

1、虚拟机我习惯使用Oracle VM VirtualBox,这个软件免费,安装也比较简单一些。下载安装ubuntu-24.04.1,虚拟机尽量配置为4核,内存根据实际电脑进行选择,一般4G就够了,允许的条件可以配置为8G。内核不要拉满,会导致Windows系统卡死的。

image.png

2、下载stm32mp1的源码及安装包。github下载最新的源码。ST的官网上下载stm32mp1的SDK(en.SDK-x86_64-stm32mp1-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26.tar)和en.SOURCES-kernel-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17.tar.xz。下载完毕后,可以通过命令或者界面操作解压这两个压缩包。在n.SOURCES-kernel-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17中包含README.HOW_TO.txt文件,按照这个文件的步骤进行环境安装。

移动网络会有时候打不开github,可以在网上搜索移动网络github配置,按照添加github的ip地址就可以使用了。

3、安装环境。按照README.HOW_TO.txt文件进行环境安装,我使用的是Ubuntu,按照Ubuntu将主要工具下载并安装。

sudo apt-get install libncurses5-dev libncursesw5-dev libyaml-dev

sudo apt-get install u-boot-tools

sudo apt-get install libyaml-dev

如果需要使用git进行代码管理,可以安装git。文件中介绍了如何配置用户信息和git,需要的可以根据文件进行配置。

sudo apt-get install git-core gitk

4、设置SDK环境,最初我找不到这个路径,该处也没有介绍如何安装SDK,网上搜索到其他网友的操作,需要进行安装才可以找到该路径。在SDK的解压路径下,执行.sh进行安装,如下

$ sh ./st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26.sh

image.png

执行该指令后,会提示安装的位置,输入需要安装的位置后,再次输入Y确认安装位置。如果不输入,会安装到默认的位置,命令窗口会提示安装的位置,需要记住这个位置。后面设置环境变量会用到。等待完成安装。

安装完毕后,输入设置环境变量的指令,<path to SDK>是上述安装路径:

source <path to SDK>/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

检查环境变量:

$ set | grep CROSS

回复CROSS_COMPILE=arm-ostl-linux-gnueabi- 是设置成功。注意环境变量设置是单次有效,如果关闭terminal后,下次使用需要重新设置。

image.png

5、设置内核代码。解压下载好的内核代码(linux-6.6-stm32mp.zip)。进入根目录,输入以下指令进行, <path to patch>是en.SOURCES-kernel-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17.tar.xz解压后的路径。有提示一些信息,我按照默认选择,回车略过。

for p in ls -1 <path to patch>/*.patch; do git am $p; done 6、编译kernel。

按照说明文档在linux-6.6-stm32mp目录下面操作建立输出文件夹:

mkdir -p ../build

配置文件

make ARCH=arm O="$PWD/../build" multi_v7_defconfig fragment*.config

如果配置文件时,会产生很多的fragments提示,如下图:

image.png

此时需要按照说明选择其中一个进行配置。我选择输入以下命令:

for f in ls -1 ./arch/arm/configs/fragment*.config; do scripts/kconfig/merge_config.sh -m -r -O $PWD/../build $PWD/../build/.config $f; done

yes '' | make ARCH=arm oldconfig O="$PWD/../build"

接下来输入下列命令开始编译kernel,该过程比较长,需要慢慢等待。依次执行下列命令。

make ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040 O="$PWD/../build"

image.png

make ARCH=arm modules O="$PWD/../build"

image.png

make ARCH=arm INSTALL_MOD_PATH="$PWD/../build/install_artifact" modules_install O="

$PWD/../build"

mkdir -p $PWD/../build/install_artifact/boot/

cp $PWD/../build/arch/arm/boot/uImage $PWD/../build/install_artifact/boot/

cp $PWD/../build/arch/arm/boot/dts/st/st*.dtb $PWD/../build/install_artifact/boot/

image.png

执行完毕后,可以在install_artifact/boot/文件中看到uImage

image.png

经过半天的操作,终于把环境搭建完毕。

收藏 评论0 发布时间:2024-11-30 13:29

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版