LINUX BootLoader启动程序解析

  • 在进入linux 时

Linux 进入boot中的参数传递

在Linux进入bootloader

setenv bootargs root=/dev/mmcblk0p8 rw rootfstype= ext4 init=linuxrc lcd=...

内核在开机过程中执行这个传入的参数到内核中

  • 进入BL1阶段时

加载BL1

早期需要加载dts设备数,现如今直接和内核进行打包即可

例如在第2个SDcard 的第1个分区

开始编译

  • 清除编译痕迹

make distclean

  • 设置为目标平台

make x6818_config

  • 编译源码

make

  • 生成镜像(位于根目录下)

ubootpak.bin

镜像烧写

boot.img (内核镜像)

gtkfs.img (根文件系统镜像)

ubootpakbin (uboot 镜像)

  • 开机进入uboot命令行
  • 执行下载命令

fastboot

镜像配置过程

配置原理分析

  • make xxx_config 的

其实是调用 mkconfig -A xxxx 脚本来进行参数设置

在mkcofig中实现的是将 xxxx 对应的参数中获取 生成于include/config.mk文件中

  • mkconfig该脚本创建了 include/config.h 并且写入定制头文件和目标平台信息

裁剪方法

  • 休要裁剪的配置一般以 CONFIG_开头
  • 这个宏会被脚本解析为变量 定义在include/autoconf.mk 中
  • include/autoconf.mk 又会没makefile包含 之后makefile会知道之后怎么进行编译

uboot镜像产生

  • 直接通过参数指定程序入口地址和段段地址

arm-linux-ld -Ttext = 0x3000 -Tdata=0x4000 -e main -o app head.o main.o

相关推荐
淼淼爱喝水34 分钟前
openEuler 下 Ansible 基础命令详解与实操演示2
linux·运维·windows
拾贰_C39 分钟前
【Ubuntu | install | 安装软件】 Ubuntu软件安装多种方式以及卸载
linux·运维·ubuntu
·醉挽清风·1 小时前
学习笔记—Linux—信号阻塞&信号捕捉
linux·笔记·学习
杨云龙UP1 小时前
Linux生产环境下Oracle RMAN 备份、核查、清理与验证常用命令整理_20260330
linux·运维·服务器·数据库·oracle
A.A呐2 小时前
【Linux第二十二章】https
linux·https
黄林晴2 小时前
Compose Multiplatform 1.10 发布:里程碑式更新!
android
齐齐大魔王3 小时前
linux-线程编程
java·linux·服务器
流星白龙3 小时前
【MySQL】19.MySQL用户管理
android·mysql·adb
吕司3 小时前
Linux动静态库
linux·运维·服务器
匆忙拥挤repeat3 小时前
Android Compose 可组合项的生命周期、副作用API
android