不过有了kernel编译的支持,我们不用自己调用cpio了,在编译选项中有一个INITRAMFS_SOURCE,把它指向目标文件夹,编译的时候自然会生成这个initramfs了。
参考文献:
这些参考文献中,最重要的是最后一个,ols2k-9.ps,下载并处理后得到一个pdf,实际上一篇论文。主要介绍了
Linux启动的一些问题。
再三解释一下,为什么需要init ram disk。FS一般安装在存储介质上,而读取这些存储介质需要驱动。内核启动的时候如果把这些驱动都加载的话,会非常麻烦,即使你把驱动静态编译到内核中,也不是一个完美的解决办法。所以。先整一个简单的,基于内存的FS,这样初始化工作都可以顺利进行。最后,等驱动都加载完后,再把实际存储上的FS挂载上来。这里要明白一点,没有一个FS的话,LK是没法正常工作的。
五 U-Boot
全名为Das U-Boot,是一个使用非常广泛的Bootloader。以后会专门撰文介绍UB。这里简单说两个点:
UB的代码结构,先从CPU的start.S开始,这里会根据不同的CPU进行初始化,大部分代码都不需要我们修改
再是Board的启动,这个和具体的板子有关。现在改名叫lowlevel_init.S了。
(最难的部分在于各个设备的初始化了,需要结合开发板的datasheet来做)
这里列出以下参考书:
其中,关于SDRAM.pdf文档下载
具体下载目录在 /2012年资料/9月/9日/Linux Kernel系列二:用户空间的初始化
各位看官可以下载看看。
Linux Kernel系列 相关阅读:?Where=Nkey&Keyword=Linux+Kernel%e7%b3%bb%e5%88%97