編譯安裝最新的Linux系統核心
現在還有不少機器是 8 Stream系統,雖然上了賊船,不影響用就是了。8的編譯和7大同小異,只是踩了更多的坑在這裡記錄一下,或許會幫到看到的朋友。 |
yum groupinstall "Development Tools" -y \ yum install openssl-devel epel-release -y \ yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto -y \ yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel -y \ yum install ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel ncurses-devel -y
yum install ncurses-devel -y \ yum install bc -y \ yum install python3 -y \ yum install rsync -y \ yum -y install rpm-build
(CentOS8 Stream無需切換gcc版本)從kernel.org下載6.0 rc3 的壓縮包有203MB,由於國內網路的特殊情況下載會非常的慢,請自備加速手段或者耐心。
wget
tar zxvf linux-6.0-rc3.tar.gz
cd linux-6.0-rc3
編譯核心需要硬碟50G左右的空間!!!
以下生成config檔案的操作二選一,如果拿不準就選擇第一個,有圖形配置介面的。編輯config檔案可以選定編譯過中需要的核心模組或者元件。不懂不知道就全程預設。
make menuconfig
在
linux-6.0-rc3
目錄下敲這個
,會進去一個配置介面,如果看不懂就保持預設配置,就按右方向鍵選定 save 然後回車,根據提示儲存.config檔案,
cat .config //檢視有沒有正確儲存
也可透過現有核心引數生成的新引數檔案.config 。要注意
/boot/config-3.10.0-957.el7.x86_64
,就是/boot/目錄下面這個相似的目錄。或許不同CentOS8 Stream的路徑名不同。要根據實際機器的目錄改動。
cp /boot/config-3.10.0-957.el7.x86_64 ./.config
make oldconfig //操作這裡要一路回車
cat .config
上面兩個生成.config的操作,二選一即可,一般選第一個1 然後全部儲存預設。在CentOS8 Steam實際編譯過程中,會有兩個引數導致編譯失敗,這裡可以提前修改避免這個問題。
開啟.config,找到
CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem"
不要刪除這行配置,將這行配置引號內的內容清空即可,即
CONFIG_SYSTEM_TRUSTED_KEYS=""
如果沒改,編譯過程中可能會導致下面報錯:
.make[1]: *** No rule to make target 'certs/rhel.pem', needed by 'certs/x509_certificate_list'. Stop.
make: *** [Makefile:1729: certs] Error 2
將.config中
CONFIG_DEBUG_INFO_BTF=y
引數由y改為n,即
CONFIG_DEBUG_INFO_BTF=n
如果沒改,編譯過程中可能會導致下面報錯:
.BTF: .tmp_vmlinux.btf: pahole (pahole) is not available Failed to generate BTF for vmlinux Try to disable CONFIG_DEBUG_INFO_BTF make: *** [Makefile:1113: vmlinux] Error 1
我要再再提醒你一次,金箍戴上以後,你再也不是一個凡人,執行以下 ,你將又是一個編譯Linux核心的人。-j12視具體情況修改。
make -j12 all
上面命令跑完後,核心模組如果沒有特殊需求,可以把核心模組的debug資訊給去掉,節約點硬碟空間。
make INSTALL_MOD_STRIP=1 modules_install > /dev/null && make modules_install && make install
設定預設新的kernel啟動
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg && sudo grub2-set-default 0 && sudo grub2-mkconfig -o /boot/grub2/grub.cfg
編譯出單獨的通用RPM包可以在其他的CentOS 8 Stream機器上直接安裝,免去了以上繁瑣的手動編譯的過程。在當前目錄
linux-6.0-rc3
下執行 :
yum -y install rpm-build && make rpm-pkg -j32
如果需要壓縮體積,可以將make rpm-pkg -j32 換成 make INSTALL_MOD_STRIP=1 rpm-pkg -j32 。
這條命令又會執行一會。執行完不出意外,會在系統的
~/rpmbuild/RPMS/x86_64/
目錄下出現三個rpm安裝包。
[root@localhost x86_64]# ll -h 總用量 487M -rw-r--r--. 1 root root 308M 9月 1 10:53 kernel-6.0.0_rc3-1.x86_64.rpm -rw-r--r--. 1 root root 177M 9月 1 10:54 kernel-devel-6.0.0_rc3-1.x86_64.rpm -rw-r--r--. 1 root root 1.5M 9月 1 10:53 kernel-headers-6.0.0_rc3-1.x86_64.rpm
在其他機器CentOS8 Stream上安裝(
yum localinstall kern* -y
)or
dnf localinstall kern* -y
這三個rpm包就行可以更新核心了。三個包裝完還要更新一下啟動項。
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg && sudo grub2-set-default 0 && sudo grub2-mkconfig -o /boot/grub2/grub.cfg
這是我打包好的三個適用CentOS8 Stearm
。不做任何可靠保證,請避免在生產環境上直接使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2950809/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在Debian系統中編譯Linux核心需要安裝的軟體包(轉)編譯Linux
- 編譯系統核心編譯
- 在Linux系統上安裝Java反編譯工具的方法LinuxJava編譯
- ubuntu系統編譯安裝OpenCV 4.4Ubuntu編譯OpenCV
- Centos8編譯安裝核心CentOS編譯
- CentOS7 編譯安裝最新的Linux Kernel 6.0 rc3CentOS編譯Linux
- FreeBSD編譯安裝新核心(轉)編譯
- ffmpeg安裝之linux編譯安裝Linux編譯
- Linux編譯安裝NginxLinux編譯Nginx
- Linux作業系統核心編譯詳解(2)(轉)Linux作業系統編譯
- 編譯linux核心編譯Linux
- CentOS8 Stream編譯安裝最新的Linux Kernel 6.0 rc3CentOS編譯Linux
- UKTools:安裝最新 Linux 核心的簡便方法Linux
- Ubuntu 20.04系統編譯安裝Apache教程。Ubuntu編譯Apache
- Ubuntu 20.04系統編譯安裝PHP教程。Ubuntu編譯PHP
- Ubuntu 20.04系統編譯安裝Docker教程。Ubuntu編譯Docker
- Ubuntu 20.04系統編譯安裝Redis教程。Ubuntu編譯Redis
- Ubuntu 20.04系統編譯安裝Memcached教程。Ubuntu編譯
- Ubuntu 18.04系統編譯安裝Apache教程。Ubuntu編譯Apache
- Ubuntu 18.04系統編譯安裝PHP教程。Ubuntu編譯PHP
- Ubuntu 18.04系統編譯安裝Docker教程。Ubuntu編譯Docker
- Ubuntu 18.04系統編譯安裝Memcached教程。Ubuntu編譯
- Ubuntu 18.04系統編譯安裝Redis教程。Ubuntu編譯Redis
- Linux 編譯 安裝 PHP 7.3.1Linux編譯PHP
- Linux gcc編譯器安裝LinuxGC編譯
- Linux下編譯安裝BOOSTLinux編譯
- Linux 編譯安裝 PythonLinux編譯Python
- CentOS6.5編譯安裝最新MySQL 5.7.11CentOS編譯MySql
- linux-原始碼的編譯安裝和解除安裝Linux原始碼編譯
- 【MySQL安裝】Linux下安裝MySQL(預編譯)MySqlLinux編譯
- PHP Linux安裝擴充套件(編譯安裝)PHPLinux套件編譯
- 編譯最小linux系統編譯Linux
- Debian11系統編譯安裝Nginx教程。編譯Nginx
- Debian11系統編譯安裝PHP教程。編譯PHP
- Debian11系統編譯安裝Apache教程。編譯Apache
- Debian11系統編譯安裝Docker教程。編譯Docker
- Debian11系統編譯安裝Memcached教程。編譯
- Debian11系統編譯安裝Redis教程。編譯Redis