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

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


咨詢
建站咨詢
