本帖最后由 牛头 于 2016-9-24 15:18 编辑
很多朋友希望在拿到Firelfy发布的Ubuntu镜像后,会想自己加驱动或自己编译的内核等等,但做的过程中难免出现各种各样的问题。网上各种教程都不那么切题,讲解都不是那么细致,让人感到迷茫,又或许是无助。Firefly团队努力地在帮助开发者打破此困局,整理策划了系列教程,让开发者可以通过Firefly开源平台可以快速上手开发,并快速打造出成熟产品。 “创新 开源 分享 定制”是我们的口号,我们一直在努力。
上一篇文章说到如何把kernel及modules编译出来,今天继续讲如何让kernel在板子上飞~~告别各种不进系统桌面、串口不输出LOG等问题! 那么请跟着我的脚步上路吧!
一、准备初始RAM磁盘 初始RAM磁盘(initrd)是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起,并作为内核引导过程的一部分进行加载。 内核会将这个initrd文件作为其两阶段引导过程的一部分来加载模块,这样才能稍后使用真正的文件系统,并挂载实际的根文件系统。initrd中包含了实现这个目标所需要的目录和可执行程序的最小集合,例如将内核模块加载到内核中所使用的 insmod工具。 在桌面或服务器Linux系统中,initrd是一个临时的文件系统。其生存周期很短,只会用作到真实文件系统的一个桥梁。 Firefly团队为方便开发者进行项目,在github上创建initrd的仓库,开发者可以直接clone使用。 cd ~/UbuntuDev/ make -C initrd 有兴趣深入去了解initrd的朋友,也可以自行去研究。 二、打包内核和RAM磁盘 Firefly官方发布的Ubuntu系统都是只有boot分区的,所以要将 kernel 和 initrd 打包成 boot.img,在烧录到指定分区才能上kernel飞~~ 这里实际操作的方式和上篇讲的稍微有些区别,生成boot镜像用到了一个新工具mkbootimg,大家可通过
mkbootimg.tar.gz
(12.53 KB, 下载次数: 593)
|