linuxuboot

作者&投稿:师冒 (若有异议请与网页底部的电邮联系)
~

uboot是什么意思?

U-Boot,全称UniversalBootLoader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。

uboot是一个操作系统内核还是一段引导程序?

是一段引导程序。

1,uboot是用来干什么的,有什么作用?

uboot属于bootloader的一种,是用来引导启动内核的,它的最终目的就是,从flash中读出内核,放到内存中,启动内核

所以,由上面描述的,就知道,UBOOT需要具有读写flash的能力。

2,uboot是怎样引导启动内核的?

uboot刚开始被放到flash中,板子上电后,会自动把其中的一部分代码拷到内存中执行,这部分代码负责把剩余的uboot代码拷到内存中,然后uboot代码再把kernel部分代码也拷到内存中,并且启动,内核启动后,挂着根文件系统,执行应用程序。

3,uboot启动的大过程是怎么样的?

uboot启动主要分为两个阶段,主要在start.s文件中,第一阶段主要做的是硬件的初始化,包括,设置处理器模式为SVC模式,关闭看门狗,屏蔽中断,初始化sdram,设置栈,设置时钟,从flash拷贝代码到内存,清除bss段等,bss段是用来存储静态变量,全局变量的,然后程序跳转到start_arm_boot函数,宣告第一阶段的结束。

第二阶段比较复杂,做的工作主要是1.从flash中读出内核。2.启动内核。start_arm_boot的主要流程为,设置机器id,初始化flash,然后进入main_loop,等待uboot命令,uboot要启动内核,主要经过两个函数,第一个是s=getenv(bootcmd),第二个是run_command(s...),所以要启动内核,需要根据bootcmd环境变量的内容启动,bootcmd环境变量一般指示了从某个flash地址读取内核到启动的内存地址,然后启动,bootm。

uboot启动的内核为uImage,这种格式的内核是由两部分组成:真正的内核和内核头部组成,头部中包括内核中的一些信息,比如内核的加载地址,入口地址。

uboot在接受到启动命令后,要做的主要是,1,读取内核头部,2,移动内核到合适的加载地址,3,启动内核,执行do_bootm_linux

do_bootm_linux主要做的为,1,设置启动参数,在特定的地址,保存启动参数,函数分别为setup_start_tag,setup_memory_tag,setup_commandline_tag,setup_end_tag,根据名字我们就知道具体的段内存储的信息,memory中为板子的内存大小信息,commandline为命令行信息,

2,跳到入口地址,启动内核

启动的函数为the_kernel(0,bd->bi_arch_number,bd->bi_boot_param)

bd->bi_arch_number为板子的机器码,bd->bi_boot_param为启动参数的地址

总结:

1)uboot主要作用是用来启动操作系统内核。体现在uboot最后一句代码就是启动内核。

2)uboot还要负责部署整个计算机系统。体现在uboot最后的传参。

3)uboot中还有操作Flash等板子上硬件的驱动。例如串口要打印,ping网络成功,擦除、烧写flash是否成功等。

4)uboot还得提供一个命令行界面供人来操作。很简单,至少你能看到。

uboot命令如何引导linux?

U-Boot除了Bootloader的系统引导功能,它还有用户命令接口,具备多种引导内核启动的方式。常用的go和bootm命令可以直接引导Linux内核映像启动。U-Boot,全称UniversalBootLoader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。

如何ghostlinux系统?

使用Ghost软件来实现备份和恢复Linux系统:

1、首先用“雨林木风GhostXPSP3纯净版Y6.0”光盘进行引导,并使用其中的PQ软件对硬盘进行分区,划分出一个分区用于安装DOS系统。然后选择:“运行YLMFDOS工具箱”。即:运行PQ软件,对硬盘进行分区。

2、先分一个分区,大小为大约为4G,用于安装DOS系统以及存放GHOST所做的备份文件,当然实际当中,应该将这个分区的大小调大点。

3、同时这里把新分区出来的C盘,设置为”活动“,以方便启动时,能从C盘启动DOS系统。

4、用光盘进行引导,创建C盘启动DOS系统时所需要的文件,以及GHOST程序等复制到C盘。

5、安装Linux系统,在安装时,建议不要把GRUB安装MBR上,同时在划分分区时,建议为:boot、var、home创建单独的分区。

6、从DOS系统启动,然后运行GHOST软件对Linux系统进行备份。1)、备份Linux系统的boot分区(“/boot")。2)、备份Linux系统的根分区("/")7、Linux系统出现问题,无法启动注意:由于之前把DOS系统的分区(即:C盘),设置成“活动”,所以这里必须修改一下,让“/boot"设置成活动的,这样才能启动linux系统。




突泉县17134459830: uboot 命令如何引导linux -
希肃痔疮: U-Boot 除了 Bootloader 的系统引导功能,它还有用户命令接口,具备多种引导内核启动的方式.常用的 go 和 bootm 命令可以直接引导 Linux 内核映像启动.U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目.从FADSROM、8xxROM、PPCBOOT逐步发展演化而来.其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点.

突泉县17134459830: 如何学习嵌入式linux uboot啊,累死我了,很迷茫,不知道从哪入手了 -
希肃痔疮: 装个source insight软件,然后一点一点的看源代码吧.如果你要全部搞懂的话,确实要花很多时间呢.其实Uboot只是个系统引导程序,当你的linux引导成功了,也就没怎么可钻研的了.嵌入式+linux要学习的很多.而对Uboot,你现在是想从原理上全部搞懂吗?看懂所有框架?以前我也有这想法,但是后面我想通了,uboot全理解透难,而linux系统全理解透那更难.linux2.6版本,代码行数就有一千多万行.个人认为学uboot和linux,只要学会应用就行,至于深入研究源代码.那些就让专门的研究人员摆弄去吧.做产品,懂框架,会应用,已经足够.

突泉县17134459830: linux中u - boot.srec是什么 -
希肃痔疮: 是bootload u-boot 编译之后产生的一个文件.可以下一个u-boot包,编译下之后就会产生这个文件了

突泉县17134459830: uboot在linux哪个文件里 -
希肃痔疮: uboot是制作启动盘的工具吧.如果是的话.那就跟Linux不挨边了.去网上找吧.挨边的话.用1,whereis uboot2,rpm -qf uboot

突泉县17134459830: 在linux中有什么办法去得到uboot的版本号么 -
希肃痔疮: 显示Uboot版本(环境变量的定义特定平台可能会有差别) :1.uboot代码中增加版本的环境变量:setenv("ubootversion","XXXXXXXXXXXXX");2.system.prop 中最后添加:ubootenv.var.ubootversion=3.应用层调用:String ubootVersion= SystemProperties.get("ubootenv.var.ubootversion");4.应用层显示就不用说啦.

突泉县17134459830: linux 设备树 需要更新uboot吗 -
希肃痔疮: 一般不需要,但是如果修改过设备树中跟启动有关的信息,那就需要修改uboot的环境变量

突泉县17134459830: linux的uboot启动映像,zImage和uImage的区别 -
希肃痔疮: uboot只是一个启动引导部分的代码 也就是硬件的初始化,堆栈初始化,分配内存这些 后面的image就是系统镜像,真正的操作系统,包括文件管理,内存管理,进程调度这些 zimage和uimage vmlinux是内核文件,zImage是一般情况下默认的压...

突泉县17134459830: mboot 和sboot的区别 -
希肃痔疮: mboot = sboot+uboot sboot初始化一些基本硬件,做一些安全校验什么的 sboot一般很小,对于高安情况,可以烧在CPU里 uboot是引导Linux的,也可以引导其他的 甚至你在uboot里面做一个小系统也可以

突泉县17134459830: linux uboot 怎样读gpio -
希肃痔疮: 在u-boot中操作某个寄存器:[cpp] view plain copy print?reg = readl(IOMUXC_BASE_ADDR + IOMUXC_REG_GPR1); reg &= ~IOMUXC_REG_GPR1_ACTCS0_MASK; writel(reg, IOMUXC_BASE_ADDR + IOMUXC_REG_GPR1); 其中...

突泉县17134459830: uboot 引导程序的运行 -
希肃痔疮: (NOR地址空间可以直接运行程序,限于速度假设不这样做) 看一下uboot的源码就一目了然了:加电初始化,而后代码重定位.将剩余代码从norflash读取到ram,而后跳转到ram中运行.在nor中它就做了这点事情.之后在ram中后期初始化(一些设备等玩意),最后运行到 宏BOOTCMD,才加载内核.

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网