Linux系统移植——Linux补丁文件操作

时间:2021-09-14 16:33:33

Linux补丁文件操作

    在linux移植过程中需要通过diff工具对kernel源码生成补丁文件,也需要通过patch工具对kernel源码
    进行打补丁操作。
一、diff生成补丁
  1、对单个文件生成补丁
       diff -up example_orig.c   example_new.c   > mypatch       
       参数详解:
       -u 显示有差异行的前后几行(上下文), 默认是前后各3行, 这样, patch中带有更多的信息.
       -p 显示代码所在的c函数的信息.

       其中example_orig.c为原始文件,example_new.c为修改后的文件,mypatch为生成的补丁文件。

  2、对文件夹内多文件生成补丁
       diff -uprN   example_orig/       example_new/   > mypatc
       参数详解:
       -r 递归地对比一个目录和它的所有子目录(即整个目录树).
       -N 如果某个文件缺少了, 就当作是空文件来对比. 如果不使用本选项, 当diff发现旧代码或者新代码缺少
       文件时,只简单的提示缺少文件. 如果使用本选项, 会将新添加的文件全新打印出来作为新增的部分.

       此命令对比了example_orig/和example_new/ 两个目录下的所有源码差异.

二、patch打补丁

       生成的补丁中, 包含了路径信息,打补丁时,要进入补丁文件路径信息表示的根目录, 并且告诉patch工
       具,请忽略补丁中的路径的第一级目录(参数-p1)。
       patch -p1 < mypatch.diff

三、示例
       对linux内核源码打生成补丁,然后再打补丁,见如下:
       diff -uparN linux_orig/   linux_new/ > mypatch
       cd linux_orig
       patch -p1 < mypatch