2021-05-12 14:32:11
CentOS 6/7 上編譯安裝Linux核心
小編以前寫過一篇軟體的原始碼編譯安裝,今天小編再給大家帶來一篇核心的編譯安裝。今天,就以CentOS 7 編譯安裝最新版本Linux 4.13.2 核心為例,給大家詳解。編譯安裝之前,檢查一下自己的磁碟空間,大約需10G左右。
一、去官網(www.kernel.org)下載最新版本4.13.2
① rz上傳
② 建立一個放核心的空目錄 /app/kernel4.13,mv linux-4.13.2.tar.xz /app/kernel4.13/
③ tar xvf linux-4.13.2.tar.xz
解包,解包之前大約只有100M,解包之後875M
④ 擴充套件小知識:for i in `find /app/linux-4.13.2 -name *.c |xargs -n1` ;do file=`cat $i |wc -l` ;let sum+=file ;done ;echo sum=$sum
可以查出以.c結尾的檔案有17233537行程式碼,還不是所有檔案,可知編寫一個核心有多麼難!!!
二、準備文字組態檔(選單): .config
以系統上原有的作業系統為模板,拷一個模板檔案到我們的目錄,並命名為.config的隱藏檔案
cp /boot/config-3.10.0-514.el7.x86_64 /app/kernel4.13/linux-4.13.2/.config
這個檔案的作用:定義編譯核心時,功能的特性
=y:打到核心裡,以後放在 vmlinux中
=m:模組方式,以後就表現為 ko檔案
not set:該功能不啟用
三、安裝編譯安裝需要的包組
yum groupinstall "development tools"
注意要加"",這個包組提供了編譯安裝所需要的工具
如果已安裝就無需再安裝
四、設定核心選項:make menuconfig
(1) cd /app/kernel4.13/linux-4.13.2/ 一定要進入自己的目錄檔案去完成後邊的執行
(2) make menuconfig
就相當於小編以前部落格中編譯安裝服務的.config指令碼類似的功能
執行後會發現出錯,因為缺包
(3) 缺什麼包,安裝什麼包yum install ncurses-devel -y
(4) 繼續執行make menuconfig,成功後,會顯示這樣的視窗選單
(5) 視窗選單中的一些設定,迴車就進入子選單,在這個選單中,想要設定什麼功能,都可以自己設定
按m,打到模組中,以後就表現為 ko檔案
按y,打到核心裡,以後放在 vmlinux中
空 ,就是關閉該功能
① General setup --->的子選單
Local version - append to kernel release 進入這一項可以寫自己編譯安裝後的核心版本名
後續都是和硬體相關的,先不改了,按exit 退到上一層
② File systems ---> 檔案系統,ext4 xfs ntfs ... 裡邊有很多檔案系統
DOS/FAT/NT Filesystems ---> 進入ntfs 的子選單,為了實驗後邊的證明,我們把這個功能開啟
③ Networking support ---> 網路的支援,有各種網路
Wireless ---> 例如無線網路
④ Device Drivers ---> 裝置的驅動
......
(6)退到最後,會有彈框,選擇yes儲存退出
(7)這一步進行的所有操作都放入了.config中,為了驗證,我們剛才的操作儲存了,grep -i ntfs .config
查詢ntfs,發現和我們修改的一樣
五、開始編譯:make
(1)因為這一步需要很長的時間,為了讓大家看到我花費的時間,我加了date,並且設定執行完成後提示10次警報提醒我date >> /app/date.log ;make -j 8 ;date >> /app/date.log ;for i in {1..10} ;do echo -e "a" ;sleep 0.5 ;done
大家執行這一步,只需 make -j 8
就行
(2)初次執行,也會報錯,缺少包
(3)yum -y install openssl-devel
老方法,缺啥按啥
(4)繼續執行date >> /app/date.log ;make -j 8 ;date >> /app/date.log ;for i in {1..10} ;do echo -e "a" ;sleep 0.5 ;done
編譯完成,我的機器設定較低,用時48分鐘,目錄大小變為: 9.2G
六、安裝模組:make modules_install
安裝完成後ls /lib/modules
會出現咱們自己編譯的核心
七、安裝核心相關檔案:make install
安裝完成後ls /boot
會出現咱們自己編譯的核心相關檔案
執行後,會有個報錯,不用管,不用終止,等它生產檔案
八、查詢grub的組態檔,看有沒有多新的選單
cat /boot/grub2/grub.cfg
reboot 重新啟動時,發現有咱們的核心新選單
到此,我們的編譯安裝核心就完成了!!!我們就可以愉快的用我們的新核心了。但是企業中應該很少會換核心,因為新的核心可能不適合自己的系統,有各種各樣的BUG,當然,我們還是要掌握這高大上的技術,因為可以出去裝B。。。
九、解除安裝核心
如果發現自己編譯安裝的核心版本不適合自己的系統,可以解除安裝,不能只會安裝。
1、cd /boot 刪除(自己安裝的版本eg:4.13)啟動的核心和核心映像檔案
2、cd /lib/modules/ 刪除不需要的核心庫檔案
3、cd/app (自己安裝原始碼的目錄) 刪除不需要的核心原始碼
4、vim /boot/grub/grub.conf 更改grub的組態檔,刪除不需要的核心啟動列表選單
這樣自己編譯安裝的核心就清乾淨了。
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-11/148276.htm
相關文章