在centos6,7 上編譯安裝內核

  小編之前寫過一篇軟件的源碼編譯安裝,今天小編再給你們帶來一篇內核的編譯安裝。
  今天,就以centos7 編譯安裝最新版本4.13.2 內核爲例,給你們詳解。編譯安裝以前,檢查一下本身的磁盤空間,大約需10G左右。linux

1、去官網(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行代碼,還不是全部文件,可知編寫一個內核有多麼難!!!vim

2、準備文本配置文件(菜單): .config

以系統上原有的操做系統爲模板,拷一個模板文件到咱們的目錄,並命名爲.config的隱藏文件
  cp /boot/config-3.10.0-514.el7.x86_64 /app/kernel4.13/linux-4.13.2/.config
這個文件的做用:定義編譯內核時,功能的特性centos

=y:打到核內心,之後放在 vmlinux中
=m:模塊方式,之後就表現爲 ko文件
not set:該功能不啓用

3、安裝編譯安裝須要的包組

yum groupinstall "development tools"

注意要加"",這個包組提供了編譯安裝所須要的工具
若是已安裝就無需再安裝網絡

4、配置內核選項: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) 窗口菜單中的一些設置,回車就進入子菜單,在這個菜單中,想要設置什麼功能,均可以本身設置app

按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,發現和咱們修改的同樣

  less

5、開始編譯: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工具

6、安裝模塊:make modules_install

安裝完成後ls /lib/modules 會出現我們本身編譯的內核

  centos7

7、安裝內核相關文件:make install

安裝完成後ls /boot 會出現我們本身編譯的內核相關文件
執行後,會有個報錯,不用管,不用終止,等它生產文件

  操作系統

8、查詢grub的配置文件,看有沒有多新的菜單

cat /boot/grub2/grub.cfg

reboot 重啓時,發現有我們的內核新菜單
3d

到此,咱們的編譯安裝內核就完成了!!!咱們就能夠愉快的用咱們的新內核了。可是企業中應該不多會換內核,由於新的內核可能不適合本身的系統,有各類各樣的BUG,固然,咱們仍是要掌握這高大上的技術,由於能夠出去裝B。。。
  

9、卸載內核

若是發現本身編譯安裝的內核版本不適合本身的系統,能夠卸載,不能只會安裝。
一、cd /boot 刪除(本身安裝的版本eg:4.13)啓動的內核和內核映像文件
二、cd /lib/modules/ 刪除不須要的內核庫文件
三、cd/app (本身安裝源碼的目錄) 刪除不須要的內核源碼
四、vim /boot/grub/grub.conf 更改grub的配置文件,刪除不須要的內核啓動列表菜單
這樣本身編譯安裝的內核就清乾淨了。
  

好了,今天就到這裏了,有什麼不懂的能夠聯繫我。

相關文章
相關標籤/搜索