新聞中心
編譯內(nèi)核

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了阜新免費建站歡迎大家使用!
前提:
(1)準備好開發(fā)環(huán)境
(2) 獲取目標主機上硬件設(shè)備的相關(guān)信息
(3) 獲取目標主機系統(tǒng)功能的相關(guān)信息
例如:需要啟用相應(yīng)的文件系統(tǒng)
(4) 獲取內(nèi)核源代碼包
www.kernel.org
開發(fā)環(huán)境準備
包組(centos 7):Development Tools
#yum grouplist 查看包組信息
目標主機硬件設(shè)備相關(guān)信息:
CPU: #cat /proc/cpuinfo
#lscpu
PCI設(shè)備:
lspci (-v|-vv)
lsusb (-v|-vv)
lsblk 塊設(shè)備
這是在虛擬機上做的實驗,可以把cpu設(shè)置成4核的,內(nèi)存設(shè)置成2G,這樣可以快速的編譯:
步驟如下:
1、下載源碼文件:linux-4.12.tar ;并解壓縮到/root下
#tar xvf linux-4.12.tar
2、安裝開發(fā)包組
#yum groupinstall “Development Tools”
#cd /boot
#cp /boot/config-3.10.0-514.e17.x86_64 /root/linux-4.12/.config
4、配置內(nèi)核選項,通過菜單的方式,定義內(nèi)核的選項:
cd /root/linux-4.12
運行 #make menucofig命令時,發(fā)現(xiàn)報錯,缺ncurses-devel包
#yum install ncurses-devel 安裝包
繼續(xù)運行#make menuconfig,會打開一個Kernel Configuration 配置窗口:如下圖
上圖中”[ ]“ 里*表示打到核心里,M:是以模塊方式打到核心里;空白就表示不設(shè)置。
上圖中選中General setup ,回車展開如下圖:
在下圖中輸入內(nèi)核的版本,以及編譯者信息,可以自己隨便設(shè)定:
設(shè)置完內(nèi)核選項后,按TAB建切換
設(shè)置好的內(nèi)核選項,就被保存到了,/root/linux4.12/.config 文件里,可以查看已經(jīng)設(shè)置的內(nèi)容
5、開始編譯,操作如下圖:
通過lscpu 命令看到有4個CPU,內(nèi)核編譯支持多線程編譯,執(zhí)行命令:
# make -j 4 && for i in {1..10} ;do echo -e “-a”;sleep 1 ;done
由于編譯時間過長,這里編寫一個下循環(huán),編譯結(jié)束時發(fā)聲,提醒便宜結(jié)束。
編譯過程發(fā)現(xiàn)報錯,如下圖:
上圖中提示缺少openssl工具;缺什么就安裝什么:yum -y install openssl-devel
然后繼續(xù)運行:# make -j 4 && for i in {1..10} ;do echo -e “-a”;sleep 1 ;done
編譯過程時間比較長,所以不要急??梢栽俅蜷_一個終端窗口,cd /root/linux-4.12 下;
wach -n 5 du -sh . 可以每隔5秒統(tǒng)計一下大小,總計大小差不多9個多G.請耐心等待。
6、 當聽到發(fā)聲提醒時,說明第5 步已經(jīng)完成了。然后執(zhí)行如下操作:
make modules_install 安裝模塊。把/root/linux-4.12目錄下的大量的內(nèi)核模塊包,復(fù)制生成到/lib/modules目下;
會生成一個文件夾如下圖:
7、 #make install
安裝內(nèi)核相關(guān)文件 :安裝bzImage為/boot/vmlinuz-VERSION-RELEASE 生成initramfs文件, 編輯grub2的配置文件
8、重啟就可以選擇linux-4.12的內(nèi)核啟動加載了。
在編譯完成后,那么怎么在已經(jīng)執(zhí)行過編譯操作的內(nèi)核源碼樹做重新編譯呢?如下描述:
1、#make clean :清理大多數(shù)編譯生成的文件,但會保留condig文件等
2、#make mrproper :清理所有編譯生成的文件、config及某些備份文件
3、#make distclean : mrproper、patches以及編輯器備份文件
如果編譯有錯誤,或者還想用舊的內(nèi)核啟動,那么怎么刪除新的內(nèi)核呢?
只要把上述編譯的每一步驟生成的文件目錄刪除就可以了;如下操作:
1、rm -rf /lib/modules/4.12.0.1.0-wangkernel/
2、rm -rf /boot/*4.12* 把帶有4.12的文件都刪了。如下圖:
3、刪除/boot/grub2/grub.conf文件下生成的配置文件刪除了:如下圖選中的部分都刪除了;
文章題目:CentOS7.2編譯安裝Linux4.12內(nèi)核
鏈接地址:http://www.5511xx.com/article/dpjoido.html


咨詢
建站咨詢
