[from: https://blog.csdn.net/wylfengyujiancheng/article/details/67644077]
在實際的生產環境中由於一些bug或內核功能限制需要打開內核的一些參數,就要用到手工編譯內核,編譯方法下面介紹如下:
編譯環境
centos7.2 min安裝
安裝開發工具
# yum install gcc* ncurses-devel bc openssl openssl-devel libssl-dev perl rpm-build -y
下載內核
# wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.11.tar.xz
解壓
# xz -d linux-4.9.11.tar.xz
# tar -xvf linux-4.9.11.tar
# cd linux-4.9.11
# make menuconfig
如果.config不存在,運行make menuconfig時的缺省設置由固化在各個Kconfig文件中各項目的缺省值決定。
# mkdir -p /root/roofs && cd /root/rootfs
# /usr/lib/dracut/skipcpio initramfs-$(uname -r).img | zcat | cpio -imd
General setup ---> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
(/root/rootfs) Initramfs source file(s) // 輸入initframfs目錄的絕對路徑.
如果.config存在,運行make menuconfig時的缺省設置即是當前.config的設置,若對設置進行了修改.config將被更新。
按多次ESC鍵退出保存
開始編譯rpm,時間比較長,請耐心等待。約1h
# make rpm
生成位置:
/root/rpmbuild/SRPMS/kernel-4.9.11-2.src.rpm
/root/rpmbuild/RPMS/x86_64/kernel-4.9.11-2.x86_64.rpm