繁体   English   中英

如何在 yotco 中修补 Linux 内核源代码

[英]How to patch Linux kernel source code in yotco

我正在处理的部分是kernel-devsrc ,它位于配方recipes-kernel中。

我想更改kernal-devsrcdrivers/usb/serial中的源 .c 文件之一。 从一些在线材料中,我需要:

  • 有我自己的图层
  • 在该层中,需要一个与recipes-kernel同名的配方(还有recipes-kernel/linux
  • 添加 .bbappend 文件和补丁文件。

问题是:要创建补丁文件,我需要知道更改前后的 2 个 git SHA,但我无权访问第三方recipes-kernel ,如何获取 SHA? 或者,如果这是错误的方法,你能指出正确的方法吗? 谢谢!

注意:这不是这样的问题: 如何在 yocto 中进行修补工作,作者可以访问源代码(.c 和 .h 文件)。 我无法访问源代码,我正在处理的 yotco 内核来自公共 git 存储库,并且我无法通过git commit获取 SHA,这是创建补丁文件所必需的。

所以,我这样做的方式是使用Quilt ,然后按照那里的步骤进行操作:https: //www.yoctoproject.org/docs/1.8/dev-manual/dev-manual.html#using-a-quilt -工作流程

我不需要知道 SHA(尽管我仍然不知道为什么我的组织中的其他人最终会在补丁文件中编写 SHA,以及他们是如何知道 SHA 的)。

Yocto 的强大之处在于它可以相对简单地修补任何现有的配方,而不需要对上游项目源代码或 Yocto 层的写入权限。

作为先决条件,项目需要有自己的层来跟踪补丁。 然后,使用devtool的最简单方法。 总体思路是:

  1. 创建一个本地沙箱来修补项目: devtool modify RECIPE_NAME (在此处使用目标配方的名称)。 此命令将创建一个临时工作区并打印该工作区的路径。
  2. 移动到临时工作区,应用所需的补丁并一一提交。
  3. 一旦应用了所有所需的补丁,使用devtool finish RECIPE_NAME CUSTOM_LAYER_NAME将机会保存为自定义层的 bbappend 中的干净补丁文件。

在后台, devtool modify在沙箱中初始化一个(可写的)git 存储库。 当调用devtool finish时,devtool 检查额外提交列表并将它们作为补丁文件保存在目标层的.bbappend中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM