内核编译与安装
获取内核源码
- 创建目录并进入该目录。
1 2
mkdir -p /home/kernel-bcache cd /home/kernel-bcache
- 下载内核源码包至“/home/kernel-bcache”目录。
下载路径:https://repo.openeuler.org/openEuler-20.03-LTS-SP1/source/Packages/
- 解压源码包。
1 2
rpm2cpio kernel-4.19.90-2012.4.0.0053.oe1.src.rpm | cpio -divm tar -zxvf kernel.tar.gz
- 配置镜像源。
- 通过SFTP工具将“openEuler-***-everything-aarch64-dvd.iso”上传到服务器上“/root”目录下。
- 创建一个本地文件夹用于挂载本地镜像。
1
mkdir -p /iso
- 将iso文件挂载到本地文件夹。
1
mount /root/openEuler-***-everything-aarch64-dvd.iso /iso
- 创建镜像yum源。
1
vi /etc/yum.repos.d/openEuler.repo
在文件中加入以下内容:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
[Base] name=Base baseurl=file:///iso enabled=1 gpgcheck=0 priority=1 [openEuler-source] name=openEuler-source baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/source/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/source/RPM-GPG-KEY-openEuler [openEuler-os] name=openEuler-os baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/OS/aarch64/ enabled=0 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/OS/aarch64/RPM-GPG-KEY-openEuler [openEuler-everything] name=openEuler-everything baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/aarch64/ enabled=0 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/aarch64/RPM-GPG-KEY-openEuler [openEuler-EPOL] name=openEuler-epol baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/EPOL/aarch64/ enabled=1 gpgcheck=0 [openEuler-update] name=openEuler-update baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/update/aarch64/ enabled=1 gpgcheck=0
- 安装依赖。
1
dnf -y install ncurses-devel bison m4 flex rpm-build rpmdevtools asciidoc audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel gtk2-devel java-1.8.0-openjdk-devel xz-devel libbabeltrace-devel libunwind-devel newt-devel numactl-devel openssl-devel pciutils-devel perl-generators python3-devel python3-docutils xmlto zlib-devel mkeuleros createrepo genisoimage
替换Bcache模块
修改内核配置
- 获取内核配置文件。
1 2
cd /home/kernel-bcache/kernel cp arch/arm64/configs/openeuler_defconfig .config
- 配置Bcache模块。
1
make menuconfig
- 修改内核PAGESIZE大小为4K。
- 确认配置文件。
- 覆盖默认配置文件。
1
cp .config arch/arm64/configs/openeuler_defconfig
输入y确认。
生成内核RPM包
- 内核源码重新打包。
1 2
cd /home/kernel-bcache tar -zcvf kernel.tar.gz kernel
- 生成“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.spec SPECS/ rm -rf SOURCES/kernel
- 编译生成内核RPM包。
1
vi /usr/lib/rpm/macros
修改“%_unpackaged_files_terminate_build 1”为“%_unpackaged_files_terminate_build 0”。
1
rpmbuild -bb /home/rpmbuild/SPECS/kernel.spec --with baseonly --without debug --without debuginfo
- 查看生成的内核RPM包。
ls /home/rpmbuild/RPMS/aarch64/
安装内核
- 将生成内核RPM包中生成的内核RPM包上传至“/home/kernel-rpm”目录。
1
mkdir -p /home/kernel-rpm
- 安装内核RPM包。
1 2
cd /home/kernel-rpm dnf -y install kernel-4.19.90-2012.4.0.0053.aarch64.rpm kernel-devel-4.19.90-2012.4.0.0053.aarch64.rpm
- 查看默认内核启动项。
1
grub2-editenv list
查看其中的默认内核版本号。
- 修改默认内核启动项。
1
cat /etc/grub2-efi.cfg | grep openEuler
其中“openEuler (4.19.90-2012.4.0.0053.aarch64) 20.03 (LTS-SP1)”为新安装内核版本。
grub2-set-default "openEuler (4.19.90-2012.4.0.0053.aarch64) 20.03 (LTS-SP1)"
- 重启系统。
1
reboot
父主题: 安装Bcache