U-Boot 启动日志全面剖析!

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: U-Boot 启动日志全面剖析!

BootLoader 是操作系统内核启动前运行的一段代码,用来初始化硬件、建立内存映射等,当然最主要的功能是加载并引导系统内核的启动。U-Boot 是一个广泛使用的 BootLoader,全称是 Universal Boot Loader,它是一个综合的大型裸机程序,并且具有极大的通用性及可移植性,如今 U-Boot 已经支持多种嵌入式操作系统,应用在多种嵌入式设备中。

在嵌入式 Linux 系统中,U-Boot 的主要作用是为 Linux 内核启动创建好硬件环境,如初始化 DDR、UART 等基础外设,然后将 Linux 内核从 Flash(NAND、NOR FLASH 或 SD 卡、EMMC 等)拷贝到 DDR 中,最后引导 Linux 内核的启动。

系统日志可以用来监控系统的运行状态、跟踪数据,或者故障定位、分析问题等,嵌入式设备启动后,一般我们首先看到的系统日志便是 U-Boot 输出的,其中也包含着许多信息,本文就来分析一下。

  • 此日志来自于某款嵌入式板卡:

  • 日志分析:
U-Boot 2016.03-00007-gef9d4c6 (Sep 25 2023 - 10:17:37 +0800)
# U-BOOT 版本号是 2016.3,编译时间是 2023 年 9 月 25日
CPU:   Freescale i.MX6ULL rev1.1 792 MHz (running at 396 MHz)
# 芯片型号为飞思卡尔(已被 NXP 收购)的 i.MX6ULL,主频为 792 MHz,当前运行在 396 MHz
CPU:   Industrial temperature grade (-40C to 105C) at 36C
# 这个芯片是工业级 CPU,工作温度范围为 -40~105℃
Reset cause: POR
# 复位模式:POR;i.MX6ULL 有个 POR_B 引脚,将这个引脚拉低即可复位芯片
Board: MX6ULL 14x14 EVK
# 开发板的名称:MX6ULL 14x14 EVK(NXP 官方的开发板)
I2C:   ready
# 提示 I2C 已经准备好了
DRAM:  512 MiB
# 板载 DRAM 为 512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
# 当前有两个 MMC/SD 设备:FSL_SDHC(0)和 FSL_SDHC(1)
# 一般 FSL_SDHC(0) 为 SD 卡,FSL_SDHC(1) 为 EMMC
Display: TFT43AB-800x480 (800x480)
# 当前的显示设备为 TFT43AB-800x480 (800x480)
Video: 800x480x16
# 屏幕分辨率为 800x480,16 位 RGB
Card did not respond to voltage select!
# 提示没有检测到 SD 卡
reading logo.bmp
# 读入了 logo 图片
391734 bytes read in 30 ms (12.5 MiB/s)
# 数据读取的速度
In:    serial
# 标准输入使用串口设备
Out:   serial
# 标准输出使用串口设备
Err:   serial
# 标准错误使用串口设备
switch to partitions #0, OK
# 切换到 EMMC 的第 0 个分区
mmc1(part 0) is current device
# 显示当前设备是 EMMC
Net:   FEC1
# 当前正在使用 FEC1 网口
Error: FEC1 address not set.
# 错误提示 FEC1 网卡地址没有设置
Can't find lt8618! 
# 提示没有找到 lt8618 设备
Normal Boot
# 提示要正常启动 Linux 了
Hit any key to stop autoboot:  3 
# Linx 内核启动倒计时 3 秒
  • 倒计时前按下任意键可以中断 Linux 内核的启动,并进入 U-Boot 终端。
  • 未完待续……

更多内容

  • CSDN博客:@Hello阿尔法
  • 哔哩哔哩:@Hello阿尔法
  • 知乎:@Hello阿尔法
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
Java 关系型数据库 MySQL
Spring Boot实现第一次启动时自动初始化数据库
在现在的后端开发中,只要是使用关系型数据库,相信SSM架构(Spring Boot + MyBatis)已经成为首选。 不过在我们第一次运行或者部署项目的时候,通常要先手动连接数据库,执行一个SQL文件以创建数据库以及数据库表格完成数据库的初始化工作,这样我们的SSM应用程序才能够正常工作。 这样也对实际部署或者是容器化造成了一些麻烦,必须先手动初始化数据库再启动应用程序。 那能不能让我们的SSM应用程序第一次启动时,自动地帮我们执行SQL文件以完成数据库初始化工作呢? 这样事实上是没问题的,今天就以Spring Boot + MyBatis为例,使用MySQL作为数据库,完成上述的数
|
3天前
|
监控 IDE Java
如何在无需重新启动服务器的情况下在 Spring Boot 上重新加载我的更改?
如何在无需重新启动服务器的情况下在 Spring Boot 上重新加载我的更改?
23 8
|
IDE 网络协议 Java
2021最新 IDEA 启动失败 & 启动Spring boot 项目端口被占用问题 彻底解决方案
2021最新 IDEA 启动失败 & 启动Spring boot 项目端口被占用问题 彻底解决方案
834 0
2021最新 IDEA 启动失败 & 启动Spring boot 项目端口被占用问题 彻底解决方案
|
6月前
|
XML Java 开发者
springboot 启动原理、启动过程、启动机制的介绍
【5月更文挑战第13天】Spring Boot 是一种基于 Java 的框架,用于创建独立的、生产级别的 Spring 应用程序。它的主要目标是简化 Spring 应用的初始搭建和开发过程,同时提供一系列大型项目常见的非功能性特征(如嵌入式服务器、安全性、度量、健康检查和外部化配置)。
441 3
|
6月前
|
监控 Java
HeartBeat监控springboot服务状态
HeartBeat监控springboot服务状态
|
消息中间件 NoSQL 固态存储
Spring boot集成plumelog日志系统
近几日闲来无事,工作摸鱼之时在码云上发现一个更加轻量级的分布式日志系统 PlumeLog ,就研究了一下,写了一个demo,做个记录
|
Java
Springboot中实现手动启动和暂停任务的功能
Springboot中实现手动启动和暂停任务的功能
437 0
|
存储 Java 开发者
SpringBoot 日志文件:日志的作用?为什么要写日志?
SpringBoot 日志文件:日志的作用?为什么要写日志?
|
XML JSON 开发框架
关于SpringBoot的自动配置和启动过程
关于SpringBoot的自动配置和启动过程
关于SpringBoot的自动配置和启动过程
|
Java Spring 容器
Spring Boot 启动时自动执行代码的几种方式。。
Spring Boot 启动时自动执行代码的几种方式。。
536 0
Spring Boot 启动时自动执行代码的几种方式。。