UBOOT如何引导kernel

 我来答
sunyqg
2012-07-04 · TA获得超过1084个赞
知道小有建树答主
回答量:477
采纳率:75%
帮助的人:633万
展开全部
1、u-boot先初始化一些必要的设备,如串口、网卡、flash、显示屏等驱动。
2、从flash、SD卡、tftp服务器取内核映像文件。
3、将内核映像文件解压到内存。
4、校验内核。
5、设定配置参数,跳到内核执行。
追问
谢谢啊  非常感谢
我还想问问u-BOOT和内核是如何衔接起来的?校验内核是在哪儿做的工作?
这个设定配置参数基本上需要设定哪些?
我还想问问系统的升级时是怎么实现的?具体和启动内核有什么内部差异?

初学者,这些都不是很明白,再次感谢
追答
1、引导的起始点
u-boot中有个bootm命令,它可以引导内存中的应用程序映像(Kernel),bootm命令对应
common/cmd_bootm.c中的do_bootm()函数,此函数实现下面几个功能:
1)读flash中的内核映像文件
2) 解压内核
3)校验内核
4)跳到内核执行(调用do_bootm_linux()函数)

2、boot 的参数
引导参数(由环境变量bootargs设定)有个缺省值,保存在flash中,可以在u-boot命令行用setenv bootargs命令进行修改。这个环境变量设置的参数,在do_bootm_linux()函数中读出,传递给内核。
引导参数主要设置内存大小、控制台(及串口波特率)、rootfs的类型/设备/权限等,如有需要可以设置成tftp引导等。
3、升级
一般boot只起引导内核的作用,只要工作正常没必要对它升级,内核的升级由u-boot是在flash中将老内核擦除,再从SD卡或者网络上下载一个新的写到flash上去,下次引导时就用新内核了。
这些只是功能的介绍,具体用法你可以启动到u-boot命令行下,看下各条命令的帮助。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式