我以前从未做过内核补丁,最近我才开始研究它是如何完成的。我注意到,对于补丁的文件名,它告诉我们内核版本(即 dm-raid45-2.6.25-rc2_20080221.patch.bz2)。所以,我知道对于内核 2.6.25,我肯定需要应用这个补丁。但是,我只是想确定:如果我有一个比提到的内核更新的内核(例如 2.6.26),这是否意味着该补丁已经转移到 2.6.26 内核版本并且我根本不需要应用它?
感谢您的澄清!
答案1
首先,您不需要仅仅因为内核不是最新的就需要修补它。您通常会依赖发行版维护人员来进行修补。如果您有某种不常见的硬件,您可能需要修补,但大多数时候,您只需要一个与内核分开提供的不同或更新的内核模块。我当前的触摸板在使用 Ubuntu 内核时存在问题,但我安装了一个别人构建的软件包来修复它,而不是修补我的内核。修补内核的一些更常见的原因是测试一些新功能或更新一些比设备驱动程序更核心的功能。
假设您需要或只是想修补内核,请注意大多数修补程序都是针对普通内核的,因为可以从 kernel.org 下载。大多数 Linux 发行版已经针对普通内核应用了他们选择的许多补丁,这可能会导致补丁无法应用。如果您想学习如何修补内核,我会首先练习构建一个普通内核,并在修补它之前尝试从它启动一次。
要回答你的最后一个问题,这完全取决于。如果不确切知道补丁是什么并查看 2.6.26 的变更日志,我无法告诉您它是否在更高版本的内核中。许多人出于各种原因提供针对内核的补丁。该补丁可能是错误修复,也可能只是增强功能。有时,它是提高磁盘 I/O 吞吐量的实验,或其他一些实验。可能有意或无意将其与下一个内核版本集成。补丁并不意味着需要修复错误,或者它可能会尝试修复小错误,但会造成漏洞并在集成之前被拒绝。