# yocto对源码修改后生成补丁的方法

## 使用的工具

   ```bash
   devtool(来自于openembedded-core/scripts/devtool)
   ```

## 步骤如下：

1. 拉取对应的软件包代码
 ```bash
 devtool modify xxx(软件包名)
 ```
2. 修改代码并提交
 ```bash
  1) 根据自己的需求：在此处对源码（配置文件，脚本）修改。
  2) 修改后git commit
 ```
3. 生成补丁

 ```bash
 devtool update-recipe -a ${work_path}/meta-riscv(你自己的layer) xxx(软件包名)
 ```

5. 删除代码（非必要，根据自己的情况）

 ```bash
 devtool reset xxx(软件包名)
 ```

6. 编译并测试

   ```bash
   bitbake gxxx(软件包名) 测试补丁和bbappend是否生效
   ```

## 以libgpg-error为例：

1. devtool modify libgpg-error
   
2. devtool update-recipe -a ~/al_yocto/riscv_yocto/meta-csky/  libgpg-error
   > 生成的补丁信息：
   ```bash
   NOTE: Writing append file /home/lqg/al_yocto/riscv_yocto/meta-csky/recipes-support/libgpg-error/libgpg-error_1.39.bbappend
   NOTE: Copying 0001-append-csky-header-file.patch to /home/lqg/al_yocto/riscv_yocto/meta-csky/recipes-support/libgpg-error/libgpg-error/0001-append-csky-header-file.patch
   ```
3. devtool reset libgpg-error

   repo 建议使用清华源加速，安装设置参考：`https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/`

4. bitbake libgpg-error