如何根据Linux Kernel Mailing List打patch

Linux内核正在不断开发和改进。每天的补丁都会提交到Linux内核邮件列表(LKML)。其中一些补丁被接受并合并到主流Linux内核中,供用户使用,而其他补丁则永远无法使用。

有时从LKML获取补丁是有用的,例如,如果你在内核中开发,或者只是因为你想保持在前沿。另一个原因可能是,您需要向LKML提出但从未合并的补丁。当使用某些硬件进行开发时,可能会出现这种情况,例如,驱动程序可能已经提交,但由于某种原因(例如,代码不符合内核指南等)从未合并,但您可能仍然对这段代码感兴趣。

在这篇文章中,我们将探索如何将LKML中的代码合并到我们的内核中。

1 获取Linux内核源代码

Linux内核的源代码可从https://www.kernel.org它可以用git下载或克隆。可以转到git仓库页面时https://git.kernel.org。
可以使用这个repo的连接进行git clone . 这里我使用 “https” link:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

2 将LKML中的补丁或补丁系列应用于内核

在大多数情况下,我们不会直接收到带有补丁的电子邮件,要么是因为我们没有订阅邮件列表,要么只是因为我们的开发机器上没有安装电子邮件客户端。因此,我们将直接从LKML档案中检索补丁或系列https://lore.kernel.org.

当我们识别出我们感兴趣的补丁或补丁系列时,有几种方法可以在本地应用它们。例如,下面的内核补丁是为了支持可见的用户态PASID和设备绑定而编写的,如下所示

点击mbox.gz,下载到本地

3 打patch
在Linux内核代码的根目录,创建patches文件夹 mkdir patches
进入文件夹,把mbox.gz 解压 gunzip mbox.zip
回到根目录 执行git am -i patches/mbox
可能会提示为空,执行 git am -i --skip
后续会让输入是否全部apply 选择是

posted @ 2024-07-29 11:52  yxmhappy2024  阅读(439)  评论(0)    收藏  举报