内核编译与安装
获取内核源码
- 创建目录并进入该目录。
1 2
mkdir -p /home/kernel-bcache cd /home/kernel-bcache
- 下载内核源码包至“/home/kernel-bcache”目录。
下载路径:http://vault.centos.org/7.6.1810/updates/Source/SPackages/
- 解压源码包。
1 2
rpm2cpio kernel-alt-4.14.0-115.10.1.el7a.src.rpm | cpio -divm tar -xvf linux-4.14.0-115.10.1.el7a.tar.xz
- 安装依赖。
1
yum -y install rpm-build m4 gcc xmlto asciidoc openssl-devel hmaccalc python-devel newt-devel perl-ExtUtils-Embed elfutils-devel zlib-devel binutils-devel bison audit-libs-devel java-devel numactl-devel pciutils-devel ncurses-devel createrepo genisoimage net-tools git bc
替换Bcache模块
修改内核配置
- 获取内核配置文件。
1 2
cd /home/kernel-bcache/linux-4.14.0-115.10.1.el7a cp ../kernel-alt-4.14.0-aarch64.config .config
- 配置Bcache模块。
1
make menuconfig
- 修改内核PAGESIZE大小为4K。
- 修改配置文件。
1
vi .config
手动在第一行添加“#aarm64”。
- 确认配置文件。
- 覆盖默认配置文件。
1
cp .config ../kernel-alt-4.14.0-aarch64.config
输入y确认。
生成内核RPM包
- 内核源码重新打包。
1 2 3 4
cd /home/kernel-bcache tar -cvf linux-4.14.0-115.10.1.el7a.tar linux-4.14.0-115.10.1.el7a rm -f linux-4.14.0-115.10.1.el7a.tar.xz xz -z linux-4.14.0-115.10.1.el7a.tar
- 生成“rpmbuild”目录。
1 2 3
mkdir -p /home/rpmbuild cd /home/rpmbuild mkdir -p BUILD RPMS SOURCES SPECS SRPMS
- 修改默认“rpmbuild”路径。
1
vi /root/.rpmmacros
增加如下内容:
1
%_topdir /home/rpmbuild
- 拷贝文件至“rpmbuild”目录。
1 2 3
cp -r /home/kernel-bcache/* SOURCES/ cp /home/kernel-bcache/kernel-alt.spec SPECS/ rm -rf SOURCES/linux-4.14.0-115.10.1.el7a
- 更新内核补丁。
1
rpmbuild -bp /home/rpmbuild/SPECS/kernel-alt.spec
- 编译生成内核RPM包。
1
rpmbuild -bb /home/rpmbuild/SPECS/kernel-alt.spec --with baseonly --without debug --without debuginfo
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/rpmbuild/BUILDROOT/kernel-alt-4.14.0-115.10.1.el7a.aarch64 Wrote: /home/rpmbuild/RPMS/aarch64/kernel-4.14.0-115.10.1.el7a.aarch64.rpm Wrote: /home/rpmbuild/RPMS/aarch64/kernel-headers-4.14.0-115.10.1.el7a.aarch64.rpm Wrote: /home/rpmbuild/RPMS/aarch64/perf-4.14.0-115.10.1.el7a.aarch64.rpm Wrote: /home/rpmbuild/RPMS/aarch64/python-perf-4.14.0-115.10.1.el7a.aarch64.rpm Wrote: /home/rpmbuild/RPMS/aarch64/kernel-tools-4.14.0-115.10.1.el7a.aarch64.rpm Wrote: /home/rpmbuild/RPMS/aarch64/kernel-tools-libs-4.14.0-115.10.1.el7a.aarch64.rpm Wrote: /home/rpmbuild/RPMS/aarch64/kernel-tools-libs-devel-4.14.0-115.10.1.el7a.aarch64.rpm Wrote: /home/rpmbuild/RPMS/aarch64/kernel-devel-4.14.0-115.10.1.el7a.aarch64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.4Lfz8M + umask 022 + cd /home/rpmbuild/BUILD + cd kernel-alt-4.14.0-115.10.1.el7a + rm -rf /home/rpmbuild/BUILDROOT/kernel-alt-4.14.0-115.10.1.el7a.aarch64 + exit 0
- 查看生成的内核RPM包。
ls /home/rpmbuild/RPMS/aarch64/
安装内核
- 将生成内核RPM包中生成的内核RPM包上传至所有需要使用智能写Cache的服务器的“/home/kernel-rpm”目录。
1
mkdir -p /home/kernel-rpm
- 安装内核RPM包。
1 2
cd /home/kernel-rpm yum -y install kernel-4.14.0-115.10.1.el7a.aarch64.rpm kernel-devel-4.14.0-115.10.1.el7a.aarch64.rpm kernel-headers-4.14.0-115.10.1.el7a.aarch64.rpm
- 查看默认内核启动项。
1
grub2-editenv list
查看其中的默认内核版本号。
- 修改默认内核启动项。
1
cat /etc/grub2-efi.cfg | grep CentOS
其中“CentOS Linux (4.14.0-115.10.1.el7a.aarch64) 7 (AltArch)”为新装内核版本。
grub2-set-default "CentOS Linux (4.14.0-115.10.1.el7a.aarch64) 7 (AltArch)"
- 重启系统。
1
reboot
父主题: 安装Bcache