210学习日记(9)_成功启动内核
2012-10-29 19:12
253 查看
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
从而说明此时的机器ID是2456。
注意:
这个过程说得有点绕和啰嗦,再次抱歉。
参数三:
一句话,实在是没有什么可以说的,韦老大的视频里面讲得太详细了!!
大家直接看视频和我上传的关于这章的代码吧,放在了"Tiny210学习日记_代码"目录下了,名为"9_bootm"。
注意:
本章写的代码,只能通过bootm命令来启动内核,延时自动启动内核,我会在后面章节讲到。
注:
如有问题,请到韦东山LINUX视频讨论群里面,我们一起讨论学习,或者加我QQ:317312379
--成功启动内核
要成功启动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
从而说明此时的机器ID是2456。
注意:
这个过程说得有点绕和啰嗦,再次抱歉。
参数三:
一句话,实在是没有什么可以说的,韦老大的视频里面讲得太详细了!!
大家直接看视频和我上传的关于这章的代码吧,放在了"Tiny210学习日记_代码"目录下了,名为"9_bootm"。
注意:
本章写的代码,只能通过bootm命令来启动内核,延时自动启动内核,我会在后面章节讲到。
注:
如有问题,请到韦东山LINUX视频讨论群里面,我们一起讨论学习,或者加我QQ:317312379
相关文章推荐
- mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(五 内核测试 四 通过NFS成功启动根文件系统)
- softgun 模拟器成功启动imx21的uboot以及内核
- uboot下使用U盘启动内核RT5350成功
- fl2440 uboot 成功引导linux2.6.28.7内核启动
- 替换内核启动时的logo(成功通过)
- uclinux-2008R1-RC8(bf561)到VDSP5的移植(59): Milestone:内核成功启动
- Fedora 13下编译2.6.34内核成功并在qemu中启动成功
- Tiny6410基于linux2.6.36内核通过NFS启动根文件系统总结(成功挂载nfs根文件系统)
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(75):Milestone:内核成功启动
- [置顶] uboot2013或新版uboot启动内核失败问题的解决
- 分享Win7 将svn加入系统服务并成功启动的方法
- SpringBoot第二次启动不成功,报错: java.net.BindException: Address already in use: bind
- WinCE 5.0 内核启动过程
- 转:linux启动时对编译进内核驱动模块的加载
- uboot分析之uboot启动内核分析
- linux 内核启动
- 《Linux0.11内核完全注释》读后小结 --- 启动引导
- E 4000 clipse启动项目成功,IDEA报错java.lang.ClassNotFoundException: javax.servlet.Filter
- linux内核启动过程
- Linux内核源码分析--内核启动