首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

26000字剖析uboot启动过程

更好的阅读体验请见: uboot启动流程分析汇编阶段最先执行的是汇编文件start.S,这个文件跟架构有关,例如芯片架构是arm926ejs,那路径就在*arch/arm/cpu/start.S*。...初始化shell环境,我们可以在uboot里执行相关的命令,跟在linux上执行命令类似 cli_init(); run_preboot_environment_command();#if defined...启动内核前会有个倒计时,如果我们在这个倒计时前中断,就可以停在uboot设置环境变量里,就可以做修改环境变量、升级、更新镜像、用相关命令调试等。...跳转到内核镜像的地址执行 **kernel_entry(0, machid, r2);** }#endif}到此uboot的正常启动流程就结束了。...uboot启动流程面试中经常会问到,因此熟悉它是非常必要的。

1.6K21

Uboot 大全 | uboot 启动流程(二)

为了方便对硬件和驱动的管理,uboot还引入了类似linux内核的设备树和驱动模型特性。...文件,并通过以下命令将它们连接为最终的uboot.bin文件: cat u-boot-nodtb.bin u-boot.dtb >uboot.bin 驱动模型DM U-boot驱动模型与linux的设备模型比较类似...环境变量 环境变量可以为uboot提供在运行时动态配置参数的能力,如在命令行通过修改环境变量bootargs可以改变内核的启动参数。它以env=value格式存储,其中每条环境变量之间以’\0’结尾。...board_init_r流程 board_init_r是uboot重定位后需要执行的流程,它包含基础模块、硬件驱动以及板级特性等的初始化,并最终通过run_main_loop启动os会进入命令行窗口。...还有待于完善 do_bootcmd 加载linux内核

1.4K40
您找到你想要的搜索结果了吗?
是的
没有找到

Uboot 大全 | uboot 启动流程(一)

– BL32 – BL33(uboot),即在bl32启动完成后再启动ubootuboot作为启动链中作为最后一级镜像,用于启动最终的os。...因此默认情况下uboot并不需要与atf共同启动,而其自身就被设计为支持完整的多级启动链,该启动链被设计为最多可包含spl、tpl和uboot三个阶段。...若不需要支持tpl,则uboot的典型启动流程可精简为如下方式(这也是uboot最常见的运行方式): 对于有些启动速度要求较高的场景,可以进一步简化其启动流程。...如可将其设计为下面这种跳过uboot,直接通过spl启动操作系统的方式,此时其启动流程如下: Atf与U-boot组合方式启动 若系统需要支持secure和non secure两种执行状态,则必须要从...spl初始化流程在另一篇文章中已经做了较详细的介绍,> 故文本将主要介绍uboot特有部分的内容,其它代码只做简要分析。

3.1K30

Uboot到底如何启动内核

1.uboot启动内核的代码缩减如下: Uboot 1.16/lib_arm/board.c中start_armboot()函数调用/common/main.c中main_loop()函数,在main_loop...使用在/lib_arm/bootm.c定义的do_bootm_linux(),我们已经知道入口地址,只需跳到入口地址就可以启动linux内核了,在这之前需要做一件事———— uboot传递参数(启动参数...启动代码在do_bootm_linux()函数: void (*theKernel)(int zero, int arch,uint params);  //定义函数指针theKernel theKernel...tag结构体,所谓的设置传递参数其实就是初始化这些tag的值,想了解这个结构体以及这些tag的值是如何设置的请看嵌入式Linux应用开发完全手册的uboot章节 我们来看setup_start_tag...更多uboot启动内核的细节观看毕业班视频自己写uboot

1.4K10

linux启动过程解析

Linux中,Boot Loader通常安装在硬盘的MBR (Master Boot Record)或EFI系统分区。...内核初始化的过程包括以下几个步骤: 加载驱动程序:内核会加载与硬件设备对应的驱动程序,并初始化这些设备。驱动程序通常存储在内核模块中,可以在运行时加载和卸载。...启动init进程:内核会在用户空间启动第一个进程——init进程。init进程是所有进程的祖先进程,它负责启动和管理所有其他进程和服务。...这些初始化脚本通常包括以下几个步骤: 启动系统服务:系统服务是一些后台进程,如网络服务、邮件服务、Web服务等等。它们在系统启动时自动启动,并在后台运行,以提供各种功能和服务。...用户登录阶段: 当图形界面启动后,用户可以在屏幕上看到登录窗口,输入用户名和密码后,登录管理程序会验证用户身份并启动相应的会话。

1.3K30

Linux 系统启动过程

Linux 系统启动过程 linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。...运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。 init进程的一大任务,就是去运行这些开机启动的程序。...但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。 Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。...Linux系统有7个运行级别(runlevel): 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别...,/etc/rc.d/rc5.d/目录中的这些启动脚本实际上都是一些连接文件,而不是真正的rc启动脚本,真正的rc启动脚本实际上都是放在/etc/rc.d/init.d/目录下。

2.7K00

Linux 系统启动过程

linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。...运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。 init进程的一大任务,就是去运行这些开机启动的程序。...但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。 Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。...Linux系统有7个运行级别(runlevel): 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别...---- Linux 关机 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

2.6K30

Linux 系统启动过程

IOS/UEFI阶段计算机通电,BIOS或UEFI启动。进行硬件初始化、POST(Power-On Self-Test)自检,检查设备的可用性。BIOS/UEFI查找启动设备,并加载引导加载程序。...内核启动阶段内核被加载到内存中,解压缩,并进行初始化。内核初始化系统硬件、建立内存管理、设置中断服务等。内核创建第一个用户空间进程(init或者其他初始化管理器如systemd)。...用户空间初始化阶段初始化管理器接管控制,启动系统服务和守护进程。系统初始化阶段可能包括加载共享库、配置网络、挂载文件系统。...用户输入凭据,登录管理器验证身份,启动用户会话。用户登录阶段登录后,系统加载用户配置文件、启动用户级别的进程。图形界面或命令行界面最终,系统进入用户的桌面环境或命令行终端。

12221

Linux 系统启动过程

linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。...运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。 init进程的一大任务,就是去运行这些开机启动的程序。...但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。 Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。...Linux系统有7个运行级别(runlevel): 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别...---- Linux 关机 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

2.6K20

Linux系统启动过程

原文:https://www.runoob.com/linux/linux-system-boot.html Linux 系统启动过程 linux 启动时我们会看到许多启动信息。...linux 启动时我们会看到许多启动信息。 Linux 系统的启动过程并不是大家想象中的那么复杂,其过程可以分为 5 个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。...运行级别 许多程序需要开机启动。它们在 Windows 叫做 "服务"(service),在 Linux 就叫做 "守护进程"(daemon)。...Linux 允许为不同的场合,分配不同的开机启动程序,这就叫做 "运行级别"(runlevel)。也就是说,启动时根据 "运行级别",确定要运行哪些程序。...Linux 系统有 7 个运行级别 (runlevel): 运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动 运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登陆

3.3K30

Linux学习笔记之Linux启动引导过程

尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行必要的简化。 让我们先从高级的视角来查看 Linux 引导过程,这样就可以看到整个过程的全貌了。...完成这些操作之后启动第一个用户空间程序(init),并执行高级系统初始化工作。 这就是 Linux 引导的整个过程。...现在让我们深入挖掘一下这个过程,并深入研究一下 Linux 引导过程的一些详细信息。 系统启动 系统启动阶段依赖于引导 Linux 系统上的硬件。...然后该例程会调用内核,并开始启动内核引导的过程。 当 bzImage(用于 i386 映像)被调用时,我们从 ....在很多情况下,我们可以调用一个简单的 shell 脚本来启动必需的嵌入式应用程序。 结束语 与 Linux 本身非常类似,Linux 的引导过程也非常灵活,可以支持众多的处理器和硬件平台。

10.4K41

一.linux开发之uboot移植(一)——初识uboot

重启并不是复活了刚才的uboot,重启只是uboot的另一生) 2. **uboot的入口就是开机自动启动uboot的唯一出口就是启动内核** 。...中加载到SDRAM中运行,整个过程是自动的。...uboot开机时一次性从Flash中读取全部环境变量到DDR中作为环境变量的初始化值,然后使用过程中都是用DDR中这一份 bootdelay 执行自动启动(bootcmd中的命令)的等候秒数 baudrate...串口控制台的波特率 netmask 以太网的网络掩码 ethaddr 以太网的MAC地址 bootfile 默认的下载文件名 bootargs 传递给Linux内核的启动参数 bootcmd 自动启动时执行命令...给kernel传参:bootargs(内核移植中必定使用) (1)linux内核启动时可以接收uboot给他传递的启动参数,这些启动参数是uboot和内核约定好的形式、内容,linux内核在这些启动参数的指导下完成启动过程

90730

Linux 系统启动过程(一)

linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。...linux1.png 运行init init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。...linux2.png 运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。...Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。...linux3.png Linux系统有7个运行级别(runlevel): 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,

2.4K20

Linux 系统启动过程

linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。...runlevel到target的改变 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。...Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。 ?...图形模式与文字模式的切换方式 Linux预设提供了六个命令窗口终端机让我们来登录。...Linux 关机 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

2.8K20

全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等

注:此方法主要用来测量内核启动过程中各个阶段的耗时。...注:此方法主要用来测量内核启动过程中各个阶段的耗时。...2.2.4 bootchart bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU 占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程...OK 如果是匹配的,uboot过程中串口输出可能会有: XIP Kernel Image ......2.3.2.8 uboot重定位 目前的启动过程中,uboot在执行过程中会进行一次重定位,可以在串口中打印出这个值,然后 修改uboot的加载地址使得boot0将uboot加载进DRAM的时候就直接加载到这个地址

2.9K30
领券