用RPM编译CentOS内核时,替换源文件



我正在尝试修改一个centos(7.6(内核源文件,并重新编译所有内容以进行以后安装。

我遵循Wiki.centos的指南进行自定义内核:https://wiki.centos.org/howtos/custom_kernel

我发现,在步骤5中,RPM方法总是从焦油文件中解开包装源文件,并在build/.

中更换了我的修改

因此,我改变了自己的方式。我将修改放在另一个位置,并在规格下添加了kernel.spec文件中的一行,将文件复制到构建/中。也就是说,使用cp命令的单行放在%build中的CC_3之前(解开包装后(。但是,%build部分中的汇编错误:

...
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.Vd6by5
BUILDING A KERNEL FOR x86_64...
USING ARCH=x86_64
...
###
### Now generating an X.509 key pair to be used for signing modules.
###
### If this takes a long time, you might wish to run rngd in the
### background to keep the supply of entropy topped up.  It
### needs to be run as root, and uses a hardware random
### number generator if one is available.
###
Generating a 3072 bit RSA private key
....++
......................................................................................................................................................................................++
writing new private key to 'signing_key.priv'
-----
###
### Key pair generated.
###
  - Including cert /home/user/rpmbuild/BUILD/kernel-3.10.0-957.12.2.el7/linux-3.10.0-957.12.2.el7.v2.x86_64/centos-kpatch.x509
  - Including cert /home/user/rpmbuild/BUILD/kernel-3.10.0-957.12.2.el7/linux-3.10.0-957.12.2.el7.v2.x86_64/centos-ldup.x509
  - Including cert signing_key.x509

RPM build errors:

有人可以建议我在编译过程中替换源文件的更好方法吗?谢谢。

我自己找到了解决方案。我们应该在RPM内应用patch,而不是直接替换文件,以指示修改后的文件和原始文件之间的差异。

首先,使用diff命令构建补丁程序。然后,修改规格文件kernel.spec,将补丁应用于构建过程。

本网站以这种方式编译内核时显示了一个示例:https://www.hiroom2.com/2016/05/29/centos-7-rebuild-kernel-kernel-with-src-rpm/

修补文件的更清晰的参考:https://rpm-packaging-guide.github.io/#patching-software

最新更新