
关于stm32mp1,ST官方提供的系统太庞大,开机速度慢,占用空间大。基于这个问题,我们整理了Linux5.4.31最小根文件系统的镜像及对应教程,希望对stm32mp157开发板使用的用户有所帮助。 1. 根文件系统开发实验 1.1 实验目的 熟悉Linux 文件系统目录结构,创建自己的文件系统,通过NFS 方式测试。 1.2 实验平台 华清远见开发环境,FS-MP1A平台; 1.3 实验步骤 1 . 根文件系统制作 可以网站下载busybox-1.29.3源码用于制作Linux文件系统,为了方便,已将源码放进了光盘。 安装交叉编译工具链。
验证开发工具是否安装正确,显示版本信息如下图所示。 linux@ubuntu ![]() ![]() 建立源码目录
将busybox-1.29.3.tar.bz2拷贝至该目录。
配置busybox 源码: 将顶层目录下的Makefile文件中的CROSS_COMPILE字段修改为“arm-linux-gnueabihf-” ![]() 可以使用如下命令配置源码 linux@ubuntu ![]() ![]() 编译源码: linux@ubuntu ![]() 安装: busybox 默认安装路径为源码目录下的_install linux@ubuntu ![]() 进入安装目录:
创建其他需要的目录:
添加库: 将工具链中的库拷贝到_install 目录下: linux@ubuntu ![]() 删除静态库: linux@ubuntu ![]() 添加系统启动文件: 在etc下添加文件inittab,文件内容如下: 注意:修改文件均为_install目录下 etc/inittab
在etc下添加文件fstab,文件内容如下: /etc/fstab
这里我们挂载的文件系统有三个proc、sysfs和tmpfs。 回到创建的文件系统处,在etc下创建init.d目录,并在init.d下创建rcS文件,rcS 文件内容为: etc/init.d/rcS
为rcS 添加可执行权限: linux@ubuntu ![]() 在etc 下添加profile 文件,文件内容为: etc/profile
2 . NFS 测试 删除原先的/source/rootfs:
将我们新建的根文件系统拷贝到/source/rootfs目录下
修改ubuntu主机中的/tftpboot/pxelinux.cfg/01-00-80-e1-42-60-17文件添加nfs启动选项
APPEND root=/dev/nfs nfsroot=192.168.11.251:/source/rootfs ip=dhcp rootwait rw earlyprintk console=ttySTM0,115200 上述配置中共有两个启动项分别为stm32mp157a-fsmp1a-emmc、stm32mp157a-fsmp1a-nfs。其中stm32mp157a-fsmp1a-emmc选项为正常启动配置;stm32mp157a-fsmp1a-nfs为nfs挂载方式,这里需要注意的是nfsroot=192.168.11.251部分的ip需要根据ubunut主机的实际ip填写。 重新启动开发板,选择nfs启动选项。 ![]() 查看是否能够正常挂载,功能是否正常 ![]() 2. 制作根文件系统镜像 上小节已经制作好了根文件系统,并且从NFS已经成功启动。本小节将制作一个根文件系统镜像用于后续的固化和烧录。 2. 制作ext4格式的文件系统 在ubuntu中制作一个EXT4空文件, 此处设则为300M大小,由于安装的软件较多时,文件系统会很大,用户可以根据情况自行更改。
2. 复制文件系统 将上小节我们移植完成的跟文件系统中所的文件夹都fuubuntu18_rootfs.ext4文件挂载到临时目录/mnt,并拷贝文件系统。 linux@ubuntu ![]() 如果我们已经制作了前面的文件系统则直接拷贝/source/rootfs/下的文件即可 linux@ubuntu ![]() 如果我们之前没有编译制作文件系统也可以将【华清远见-FS-MP1A开发资料\02-程序源码\04-Linux系统移植\02-移植好的系统镜像文件】下的rootfs.tar.xz文件导入到虚拟机中,使用我们已经移植好的跟文件系统进行制作。 linux@ubuntu ![]() 3. 卸载挂载的fsmp1x_rootf.ext4文件 linux@ubuntu:$ sudo umount /mnt 此时跟文件系统镜像就制作完成了。可以将这个文件导出到windos下烧录到开发板中运行。 4. 修改烧录文件 如果想要烧录到开发板那么就需要修改,烧写文件。这里以eMMC启动的trusted镜像为例来说明。其它启动的修改方法也类似。 修改flashlayout_fs-mp1a-weston\trusted下的FlashLayout_sdcard_stm32mp157a-fsmp1a-trusted.tsv文件将Id为0x23的rootfs分区镜像名由fs-mp1a-weston-openstlinux-weston-fsmp1a.ext4修改为fsmp1x_rootf.ext4。按照《STM32CubeProgrammer烧写方式》章节进行烧录即可。 ![]() ———————————————— 版权声明:华清远见IT开放实验室 |
更新STM32MP135-Openwrt镜像
基于STM32MP1和STM32MP2在嵌入式Linux平台上部署有效的安全保护机制
利用STM32MP1和STM32MP2为嵌入式Linux提供有效的安全措施:供当今决策者参考的3条宝贵经验
STM32MP1 WiFi连接
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【STM32MPU 安全启动】 TF-A BL2 TrustedBoot原理学习
《STM32MPU安全启动》学**结
《STM32MPU安全启动》学习笔记之optee 如何加载CORTEX-M核和使能校验
《STM32MPU安全启动》学习笔记之TF-A BL2校验optee和uboot的流程以及如何使能
《STM32MPU 安全启动》课程学习心得+开启一扇通往嵌入式系统安全领域深处的大门。