|
Stm32mp157A-DK1开发包评估5 裸机根文件系统的搭建 1、 获取buildroot wget http://buildroot.uclibc.org/downloads/buildroot-2021.05.tar.bz2 //下载buildroot-2021.05.tar.bz2 tar -vxf buildroot-2021.05.tar.bz2 //对下载的buildroot-2021.05.tar.bz2进行解压
2、配置 cd buildroot-2021.05.tar.bz2 //进入buildroot-2021.05.tar.bz2文件夹 make menuconfig //打开图形设置界面 配置内核信息 Target options -> Target Architecture = ARM (little endian) -> Target Binary Format = ELF -> Target Architecture Variant = cortex-A7 -> Target ABI= EABIhf -> Floating point strategy = NEON/VFPv4 -> ARM instruction set = ARM 配置项用于配置交叉编译工具链 Toolchain ->Tool chain type = External toolchain -> Tool chain= Custom toolchain //用户自己的交叉编译器 -> Tool chain origin = Pre-installed toolchain //预装的编译器 -> Tool chain path = /usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf -> Tool chainpre fix = $(ARCH) -none-linux-gnueabihf //前缀 -> External toolchain gcc version = 9.x -> External toolchain kernel headers series = 4.20.x //交叉编译器的 linux版本号 -> External toolchain C library = glibc/eglibc ->Toolchain has SSP support? (NEW) //选中 ->Toolchain has RPC support? (NEW) //选中 ->Toolchain has C++ support? -> Enable MMU support (NEW) 系统配置 System configuration -> System hostname = xhy-stm32mp1 //平台名字,自行设置 -> System banner = Welcome to stm32mp157 //欢迎语 -> Init system = BusyBox //使用 busybox -> /devmanagement = Dynamic using devtmpfs +mdev //使用 mdev -> [* ] Enableroot login with password (NEW) //使能登录密码 -> Root password =x //登录密码为x 配置根文件系统格式 -> File system images ->ext2/3/4 root filesystem //如果是 EMMC 或 SD 卡的话就用 ext3/ext4 -> ext2/3/4 variant = ext4 //选择 ext4 格式 -> exact size =1G //ext4 格式根文件系统 1GB(根据实际情况修改) -> ubiimage containing an ubifs root filesystem //如果使用 NAND 的话就用 ubifs 禁止译 编译 Linux 内核和 uboot buildroot下载的 linux 和 uboot官方源码,里面会缺少很多驱动文件,所以用意法官方的。 -> Kernel -> [ ] Linux Kernel //不要选择编译 Linux Kernel 选项! -> Boot loaders -> [ ] U-Boot//不要选择编译 U-Boot 选项! 配置第三方库或软件 >Target packages -> System tools -> kmod //使能内核模块相关命令 保存以上配置 busybox配置 sudo make busybox-menuconfig //打开busybox图形配置界面 -> Linux Module Utilities -> depmod //使能 depmod 命令 3、保存编译 sudo make busybox //编译 busybox sudo make //编译根文件
编译成功后再/output/images中有文件rootfs.tar和。 4、测试 有两种方法测试,一种是rootfs.ext4通过STM32CubeProgrammer烧录,由于根文件需要做程序开发,所以倾向于nfs下载。 将rootfs.tar解压到home中的nfs文件夹。 tar -vxf output/images/rootfs.tar -C/home/helloxhy/nfs/
打开板子,进入boot设置,这次需要设置 uboot 传递给 Linux 内核的参数:bootargs, 命令如下: setenv bootargs 'console=ttySTM0,115200root=/dev/nfs nfsroot=192.168.16.70:/home/helloxhy/nfs/,proto=tcp rwip=192.168.16.73:192.168.16.70:192.168.16.1:255.255.255.0::eth0 ff'
重启板子后启动根文件: 输入账号root密码x,进入根文件,可以看到没有显示路径:
为了解决这个问题,再nfs/etc/profile.d文件中新建.sh文件: PS1='[\u@\h]:\w$ ' export PS1
再次重启,根文件就编译完成了。
|
扩展STM32微处理器,实现高性价比、低功耗和灵活性能
STM32MP1 自举程序编程:USB DFU/USART 协议全解析
兔哥心中的ST中文论坛
我心中的ST中文论坛
STM32 开发者指南:ST.com 全新 MCU 产品阵容视觉布局深度解析
深度拆解 STM32MP1 Boot 链路
STM32串口自动识别波特率的原理
STM32MP135 MP157 MP257 CoreMark移植&&跑分对比&&多核心负载不均衡问题排查与解决
STM32--STM32 微控制器详解
为什么学了几天STM32一脸茫然?
微信公众号
手机版