查詢當前內核的版本號和OS 鏡像來源
[root@localhost ~]# uname -a
Linux localhost.localdomain 4.14.0-115.el7a.0.1.aarch64 #1 SMP Sun Nov 25 20:54:21 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (AltArch)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (AltArch)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
當前操作系統發行廠商為:CentOS-7。內核版本號: 4.14.0-115.el7a.0.1
2. 從官方
http://vault.centos.org/7.6.1810/os/Source/SPackages/ 下載部分源碼rpm 包kernel-alt-4.14.0-115.el7a.0.1.src.rpm
3. 編譯內核之前,必須安裝編譯內核基本工具鏈。
筆者碰到問題:
error: Failed build dependencies:
xmlto is needed by kernel-alt-4.14.0-115.el7.0.1.aarch64
asciidoc is needed by kernel-alt-4.14.0-115.el7.0.1.aarch64
newt-devel is needed by kernel-alt-4.14.0-115.el7.0.1.aarch64
pciutils-devel is needed by kernel-alt-4.14.0-115.el7.0.1.aarch64
使用命令解決筆者的問題:
yum install –y xmlto asciidoc newt-devel pciutils-devel
通常要求的工具鏈:
sudo yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto
sudo yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel
sudo yum install ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel
4. 編譯之前確保mockbuild用戶和mockbuild所屬的組有效。
groupadd mockbuild
useradd mockbuild -g mockbuild
5. 安裝rpm 包。此rpm 包實際為rpmbuild 構建工程
rpm -ivh kernel-alt-4.14.0-115.el7a.0.1.src.rpm
安裝完成,rpm構建工程自動部署在
/root/rpmbuild/SPECS
/root/rpmbuild/SOURCES
6.rpmbuild 構建,會自動下載全量內核代碼(包括補丁合入)
cd /root/rpmbuild/SPECS
rpmbuild -bp --target=$(uname -m) kernel-alt.spec
7. 構建完成后,可以獲取到全量內核源碼,路徑為:
cd /root/rpmbuild/BUILD/kernel-alt-4.14.0-115.el7a/linux-4.14.0-115.el7.0.1.aarch64
8.內核編譯
make -j 64
9. 此項可選:驅動安裝
make modules_install
10. 此項可選:內核安裝:
make install
11.此項可選: 重啟,選擇對應的內核