Part5:u-boot和2.6.22.6内核源码的打补丁、配置与编译
0 学习路线
请暂时忽略Part4文章,因为走偏了路线......(若是一节节讲解硬件(SPI/I2C等)编程,无疑枯燥且容易遗忘,
因此,计划先从宏观角度俯瞰整个学习体系,看下面路线安排)
学习路线安排:
1)站在宏观角度理解整个体系(体验)
1)前面的Part1、part2、part3(掌握Ubuntu下的基本命令与初步了解s3c2440芯片基础硬件操作)
2)Part5:u-boot和内核源码编译 + 构建根文件系统 + LED、按键驱动编写
(备注:”根文件系统“实际站在内核和硬件角度,以俯瞰要学习的内核架构 + 驱动编写
两个简单驱动编写——体验驱动开发的流程,为后续学习各种驱动做好准备)
2)深入学习整个体系(核心):目标——硬件操作 + 软件架构
根据(1)宏观理解了要学习的内容后,首先掌握各种驱动的编写,即“硬件操作”
然后才进一步掌握Linux内核知识,即“软件架构”
3)项目实践
基于1)和 2)做一些项目,以梳理总结前面知识。
4)拓展:包括 应用开发 + 嵌入式Android 等,先学习完前3部分再打算把。
1 u-boot的打补丁、配置与编译
u-boot是什么呢?u-boot的功能?请看下图
可见,u-boot只是bootloader中的常见一种,主要用于引导内核,当然还有其它一些辅助功能,方便开发。
OK,对u-boot有了初步认识后,开始我们的打补丁、配置与编译。
1)u-boot的打补丁如下:
patch命令的选项-p1什么意思呢?看下图,补丁文件内容
2)u-boot的配置
为啥要配置呢?看下图(u-boot的Makefile文件中截取)
可见,u-boot支持不同开发版的配置,故这里以s3c24x0类开发板示例
执行命令: make 100ask24x0_config 如下图所示
3) 编译
执行 make 即可
如下图所示,即表示编译成功
最后,只需把u-boot.bin烧写进开发板即可
2 2.6.22.6内核源码的打补丁、配置与编译
对于内核,其实跟上面u-boot的编译过程几乎一样,
唯一不同在于配置方式不同,内核源码使用make menuconfig 命令配置内核以更好应用在指定开发板。
1)内核源码的打补丁看下图
2)内核源码的配置
有三种方式:
1)make menuconfig(不推荐,需从头到尾配置,太繁琐复杂)
2) 使用默认配置,并在上面修改后执行make xxx_config 再make menuconfig(个性化配置,前提u are a “老司机”)
3) 使用厂家提供的配置文件(<----推荐)
看下第2)个方式的配置,看下图
接着,只需执行 make s3c2410_defconfig 即可(此操作的结果写道.config配置文件,包含后面的make menuconfig也是)
看下图,这里不修改了,使用默认配置的
接着,在默认配置是基础上,执行make menuconfig,再弹出的菜单中即可修改默认配置文件的一些选项和其它内核配置选项
弹出的菜单如下图所示,按提示勾选/取消即可
而如果使用厂家提供的配置文件,只需将厂家的文件覆盖.config即可,如下图
3)编译
执行make 即可,我编译后的结果图如下
3 总结
不管是u-boot还是内核源码的编译,遵循的步骤是一致的。即
1) 打补丁: patch -px < 补丁文件 (x是数字)
2)配置: make 芯片型号_config 或 make 芯片信号_defconfig 再 make menuconifg
3)编译:make
参考教程:
韦东山老师的1_2衔接视频(免费),可访问http://www.100ask.org/index.html的资料下载
(备注:不打广告,只是尊重版权,知识付费:)