STM32MP157系列教程连载-Linux系统移植篇8:STM32MP1微处理器之Linux内核配置及编译

本文详细介绍了如何在STM32MP157微处理器上移植和配置Linux内核,包括解压内核源码、应用ST官方补丁、生成配置文件、内核编译、模块编译、设备树生成等步骤。通过tftp下载方式验证编译结果,并提供了设备树文件的具体内容和修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32MP157系列教程连载-Linux系统移植篇8:STM32MP1微处理器之Linux内核配置及编译

第 1 章 Linux内核配置及编译

1.1 解压内核
建立源码目录

linux@ubuntu:$ cd ~/FS-MP1A/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.4.31-r0

在这里插入图片描述
该目录下以patch结尾的文件为ST官方提供的补丁文件,linux-5.4.31.tar.xz为标准linux源码包。
解压标准内核源码包

linux@ubuntu:$ tar -xvf linux-5.4.31.tar.xz

在这里插入图片描述
进入内核源码目录下

linux@ubuntu:$ cd linux-5.4.31

在这里插入图片描述
1.2 添加STMicroelectronics官方补丁

解压linux内核源码后得到的是Linux社区的标准内核源码,接下来需要将ST官方提供的源码补丁添加到标准内核中。

linux@ubuntu:$ for p in `ls -1 ../*.patch`; do patch -p1 < $p; done

该命令会将上层目录下所有的patch补丁文件应用到当前的内核中。

1.3 生成标准板配置文件
生成multi_v7_defconfig默认配置

linux@ubuntu:$ make ARCH=arm multi_v7_defconfig "fragment*.config"

在默认multi_v7_defconfig配置中加入ST官方提供的fragment config

linux@ubuntu:$ for f in `ls -1 ../fragment*.config`; do scripts/kconfig/merge_config.sh -m -r .config $f; done
linux@ubuntu:$ yes '' | make ARCH=arm oldconfig

生成自己的默认配置文件

linux@ubuntu:$ cp .config arch/arm/configs/stm32_fsmp1a_defconfig

取消git中的SHA1

linux@ubuntu:$ echo "" > .scmversion

1.4 配置内核
导入交叉编译工具链(如果还未安装SDK可参考《SDK工具链安装》章节进行安装)

linux@ubuntu:$ source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

验证开发工具是否安装正确,显示版本信息如下图所示。

linux@ubuntu:$ $CC --version

在这里插入图片描述
在编译前如果需要编译额外的功能或者驱动,可以使用meunconfig来对内核进行配置。

linux@ubuntu:$ make menuconfig

在这里插入图片描述
可以在如上菜单中对内核进行详细的配置。
1.5 编译内核

linux@ubuntu:$ make -j4 ARCH=arm uImage vmlinux LOADADDR=0xC2000040

在这里插入图片描述
编译后在内核源码目录下,能够在生成一个vmlinux文件,该文件是没有经过压缩的内核镜像,这个镜像导出了所有的内核符号可以用作仿真调试。
在这里插入图片描述
此外在arch/arm/boot目录下还生成了一个uImage文件,这就是经过压缩的内核镜像。可以用作系统启动。
在这里插入图片描述
1.6 编译内核模块

linux@ubuntu:$ make ARCH=arm modules

该操作会将内核中配置为模块的源码进行编译,最终得到ko文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值