210学习日记(9)_成功启动内核

来源:互联网 发布:手机自动挂机赚钱软件 编辑:程序博客网 时间:2024/06/04 23:22

210学习日记(9)

--成功启动内核

要成功启动Linux内核,无非就是要真确的传入函数theKernel(int zero, int arch, uint params)的参数,和跳到正确的地址去执行而已。(这些知识在韦东山自己写bootloader的相关视频中已经讲得非常的详细了)

我就从三个参数入手吧:

参数一:必须为0,这就没有什么好讲解的了;

参数二:机器ID,该参数很重要,往往不能成功启动内核,就是该参数捣的鬼。

接下来我就讲讲如何一步一步找到自己内核的机器ID的:(也许对于很多人来说,接下来说的都是废话,但是为了顾及少部分人,再加上这章没有什么可以说的(韦老大把什么都说了),就请允许我把废话说完吧)

步骤如下(S5PV210为例)

1).进入装有官方提供的配置文件的目录:cd arch/arm/configs/;

2).找到官方为S5PV210提供的配置文件,将其拷贝到要编译的内核的更目录下:

cp s5pv210_defconfig ../../..

3).将配置文件拷贝成.config文件:

cd ../../..

cp s5pv210_defconfig ./.config

4).make menuconfig

5).make uImage

6).当编译完成后,查看/arch/arm目录下面的哪个开发板被编译成为了.o文件,当然查找是要更具名字,看哪个像,然后进入该文件确认,我最终发现mach-s5pv210目录有点像,进去发现mach-smdkv210.c被编译成为了.o文件;

7).打开程序mach-smdkv210.c,发现:

MACHINE_START(SMDKV210, "SMDKV210")

这只是一个宏,他的参数一SMDKV210就和我们的机器ID密切相关,那么该是多少呢?

8).打开\arch\arm\tools\mach-types,在该文件下收索SMDKV210,发现如下:

smdkv210 MACH_SMDKV210 SMDKV210 2456

从而说明此时的机器ID2456

注意:

这个过程说得有点绕和啰嗦,再次抱歉。

参数三:

一句话,实在是没有什么可以说的,韦老大的视频里面讲得太详细了!!

大家直接看视频和我上传的关于这章的代码吧,放在了"Tiny210学习日记_代码"目录下了,名为"9_bootm"

注意:

本章写的代码,只能通过bootm命令来启动内核,延时自动启动内核,我会在后面章节讲到。

注:

如有问题,请到韦东山LINUX视频讨论群里面,我们一起讨论学习,或者加我QQ317312379

原创粉丝点击