0. 教程完整目录
- 00 - 嵌入式Linux系统中Bootloader的作用和基本运行原理
- 01 - 下载uboot源码并使用VSCode远程查看源码、编译uboot(2012.04.01版本)
- 02 - 详细探索uboot启动过程(基于S3C2410处理器)
- 03 - 初步移植uboot 2012.04到JZ2440(修改时钟,配置串口)
- 04 - 移植uboot 2012.04到JZ2440(支持Nor Flash读写)
- 05 - 移植uboot 2012.04到JZ2440(支持Nand Flash读写)
- 06 - 移植uboot 2012.04到JZ2440(支持DM9000C网卡)
- 07 - 移植uboot 2012.04到JZ2440(裁剪uboot大小)
- 08 - 移植uboot 2012.04到JZ2440(设置mtd分区表)
- 09 - 移植uboot 2012.04到JZ2440(设置默认环境变量参数)
- 10 - 移植uboot 2012.04到JZ2440(烧写Linux内核、烧写yaffs2文件系统)
- 11 - 移植uboot 2012.04到JZ2440(移植完成,制作uboot补丁)
1. 为什么需要补丁
补丁文件就是通过对比当前文件和源码文件之后,得到修改内容的文件。
有了补丁文件,就可以在uboot2012.04的源码之上,直接打补丁,就会变为移植好适配JZ2440的uboot,非常方便,
在分享或者发布的时候,因为Uboot源码是统一的,所以只需要分享或者发布这个补丁文件即可。
2. 如何制作补丁
- ①清除编译产生文件
make distclean
- ② 对文件夹重命名
mv u-boot-2012.04.01 u-boot-2012.04.01-jz2440
- ③ 重新解压uboot2012.04.01源码
tar -jxvf u-boot-2012.04.01.tar.bz2
- ④ 制作补丁(diff命令)
diff -urN <旧的文件> <新的文件> > <补丁文件名.patch>
补丁制作完成。
3. 如何打补丁(patch命令)
打补丁的命令如下:
patch -p<数字n> < <补丁文件路径和位置>
其中数字n表示,补丁文件中位置信息中,忽略前n项。
比如,这里我进入到uboot源码文件夹中,执行打补丁命令,因为已经在uboot-2012.04.01这个目录下了,所以 n = 1,表示第一级目录被忽略。
如下,打补丁成功:
4. 测试补丁是否可用
打上补丁之后,直接编译:
make distclean
make smdk2440_config
make
编译成功:
下载到开发板中测试,Linux启动成功:
接收更多精彩文章及资源推送,欢迎订阅我的微信公众号:『mculover666』。