CentOS rebuild Kernel
定制化重新编译CentOS的内核
编译环境
$ sudo yum groupinstall "Development Tools"
下载源代码
查看当前内核版本
$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
$ uname -r
3.10.0-1127.18.2.el7.x86_64
安装依赖
$ sudo yum install wget gcc gc bc gd make perl ncurses-devel xz rpm-build xmlto asciidoc hmaccalc python-devel newt-devel pesign binutils-devel audit-libs-devel numactl-devel pciutils-devel perl-ExtUtils-Embed
$ sudo yum install elfutils-libelf-devel elfutils-devel java-devel python-docutils
下载源码包
http://vault.centos.org
$ wget https://archive.kernel.org/centos-vault/7.8.2003/os/Source/SPackages/kernel-3.10.0-1127.el7.src.rpm
解包
$ sudo useradd mockbuild
$ rpm -ivh kernel-3.10.0-1127.el7.src.rpm
$ ll rpmbuild/
总用量 4
drwxr-xr-x. 2 wii wii 4096 8月 2 19:40 SOURCES
-rw-rw-r--. 1 wii wii 879 8月 7 2019 centos-ca-secureboot.der
-rw-rw-r--. 1 wii wii 1063 8月 7 2019 centos-kpatch.x509
-rw-rw-r--. 1 wii wii 1070 8月 7 2019 centos-ldup.x509
-rw-rw-r--. 1 wii wii 4408 4月 1 04:02 centossecureboot001.crt
-rwxrwxr-x. 1 wii wii 3118 11月 28 2019 check-kabi
-rw-rw-r--. 1 wii wii 150 11月 28 2019 cpupower.config
-rw-rw-r--. 1 wii wii 294 11月 28 2019 cpupower.service
-rw-rw-r--. 1 wii wii 368 11月 28 2019 debrand-rh-i686-cpu.patch
-rw-rw-r--. 1 wii wii 891 11月 28 2019 debrand-rh_taint.patch
-rw-rw-r--. 1 wii wii 967 4月 1 04:02 debrand-single-cpu.patch
-rw-rw-r--. 1 wii wii 0 11月 28 2019 extra_certificates
-rwxrwxr-x. 1 wii wii 16842 11月 28 2019 find-debuginfo.sh
-rw-rw-r--. 1 wii wii 130336 3月 31 20:14 kernel-3.10.0-ppc64.config
-rw-rw-r--. 1 wii wii 130641 3月 31 20:14 kernel-3.10.0-ppc64-debug.config
-rw-rw-r--. 1 wii wii 130340 3月 31 20:14 kernel-3.10.0-ppc64le.config
-rw-rw-r--. 1 wii wii 130656 3月 31 20:14 kernel-3.10.0-ppc64le-debug.config
-rw-rw-r--. 1 wii wii 68313 3月 31 20:14 kernel-3.10.0-s390x.config
-rw-rw-r--. 1 wii wii 67937 3月 31 20:14 kernel-3.10.0-s390x-debug.config
-rw-rw-r--. 1 wii wii 33507 3月 31 20:14 kernel-3.10.0-s390x-kdump.config
-rw-rw-r--. 1 wii wii 153555 3月 31 20:14 kernel-3.10.0-x86_64.config
-rw-rw-r--. 1 wii wii 153786 3月 31 20:14 kernel-3.10.0-x86_64-debug.config
-rw-rw-r--. 1 wii wii 12459 4月 1 04:03 kernel-abi-whitelists-1127.tar.bz2
-rw-rw-r--. 1 wii wii 52686 4月 1 04:03 kernel-kabi-dw-1127.tar.bz2
-rw-rw-r--. 1 wii wii 93464248 4月 1 04:03 linux-3.10.0-1127.el7.tar.xz
-rw-rw-r--. 1 wii wii 0 11月 28 2019 linux-kernel-test.patch
-rw-rw-r--. 1 wii wii 1869 3月 31 20:14 Makefile.common
-rw-rw-r--. 1 wii wii 215 11月 28 2019 modprobe-dccp-blacklist.conf
-rw-rw-r--. 1 wii wii 0 11月 28 2019 Module.kabi_dup_ppc64
-rw-rw-r--. 1 wii wii 0 11月 28 2019 Module.kabi_dup_ppc64le
-rw-rw-r--. 1 wii wii 0 11月 28 2019 Module.kabi_dup_s390x
-rw-rw-r--. 1 wii wii 0 11月 28 2019 Module.kabi_dup_x86_64
-rw-rw-r--. 1 wii wii 42128 3月 31 20:14 Module.kabi_ppc64
-rw-rw-r--. 1 wii wii 42128 3月 31 20:14 Module.kabi_ppc64le
-rw-rw-r--. 1 wii wii 39071 3月 31 20:14 Module.kabi_s390x
-rw-rw-r--. 1 wii wii 45442 3月 31 20:14 Module.kabi_x86_64
-rwxrwxr-x. 1 wii wii 643 12月 3 2019 sign-modules
-rw-rw-r--. 1 wii wii 348 11月 28 2019 x509.genkey
drwxr-xr-x. 2 wii wii 25 8月 2 19:40 SPECS
-rw-rw-r--. 1 wii wii 8398323 4月 1 04:02 kernel.spec
修改
如果我只想修改内核配置文件(.config -> kernel-3.10.0-x86_64.config)
$ cd rpmbuild/SOURCES
$ makdir tmp
$ tar -xvf linux-3.10.0-1127.el7.tar.xz
$ cd tmp/linux-3.10.0-1127.el7
$ cp ../../kernel-3.10.0-x86_64.config .config
$ make menuconfig
$ vi .config
+# x86_64
$ cp .config ../../kernel-3.10.0-x86_64.config
编译rpm包
[rpmbuild]$ rpmbuild -bb --target=$(uname -m) SPECS/kernel.spec