DannyWu帶你學習Linux 核心編譯,高效不走坑
前言
- Linux作業系統最重要的部分莫過於核心了,它負責管理系統的程序、記憶體、驅動程式、檔案系統和網路系統,系統的效能和穩定性也由核心來決定。由於Linux是開源的,因此Danny就在想,能不能自己將Linux核心原始碼進行編譯,根據自己的需求打造一個更高效、更穩定的Linux核心呢?下面Danny以Ubuntu為例帶你學習如何編譯Linux核心。
1.下載Linux核心原始碼壓縮包
- 首先去Linux核心官網( ofollow,noindex">http://www.kernel.org )下載Linux核心的壓縮檔案。
2.解壓核心原始碼並複製到/usr/src下
-
在此說明一下,一般都將核心原始碼放到/usr/src下,並建立連結linux,類似快捷方式,便於切換到核心路徑下。**
-
我下載的核心版本是:linux-4.19.1.tar.xz;接著將核心原始碼壓縮包解壓並複製到/usr/src路徑下,此時可能需要1-2分鐘時間;解壓時注意一下你的核心原始碼所在的路徑,例如我的是在虛擬機器的共享資料夾下;之後切換到/usr/src路徑下,再建立一個名為linux的連結:**
root@dannylinux:/# tar xf /mnt/hgfs/Desktop/ubuntu/linux-4.19.1.tar.xz -C /usr/src/
root@dannylinux:/usr/src# ln -sv linux-4.19.1 linux
- 此時,輸入:
root@dannylinux:/usr/src# ls
- 就可以看到生成了一個名為linux-4.19.1的資料夾和一個名為linux的連結。
3.安裝編譯環境
- 由於Danny在編譯Linux核心時遇到了各種坑,為了讓大家少走坑,我們先安裝編譯時需要的依賴環境:
root@dannyLinux:/# sudo apt-get install gcc root@dannyLinux:/# sudo apt-get install make root@dannyLinux:/# sudo apt-get install ncurses-dev root@dannyLinux:/# sudo apt-get install bison root@dannylinux:/# sudo apt-get install flex root@dannylinux:/# sudo apt-get install libssl-dev root@dannyLinux:/# sudo apt-get install libelf-dev
4.配置
root@dannylinux:/usr/src/linux# make menuconfig`
-
使用預設配置,save 後 exit
image

image

image

image
- 注意:在我踩過深坑之後,才知道,Makefile是有問題的,要修改595行在開頭加一橫槓“-”,不然你會浪費n多小時。

image
5.編譯(4執行緒編譯)
- 編譯時間大概在兩個小時左右,根據你的電腦配置來決定。**
root@dannylinux:/usr/src/linux# make -j 4
- 編譯好之後,我們將進行下一步安裝核心模組。
6.安裝核心模組
root@dannylinux:/usr/src/linux# sudo make modules_install
- 此步完成之後,在/lib/modules/路徑下就會生成一個以版本號命名的一個核心模組了,快大功告成了,繼續安裝核心。
7.安裝核心
root@dannylinux:/usr/src/linux#sudo make install
-
安裝完核心之後,會在/boot/路徑下生成一個核心檔案vmlinuz-4.19.1和其他幾個檔案。
-
到此Linux核心就編譯完了,可以開啟grub.cfg配置檔案看一下,會有一個新的版本:
root@dannylinux:/usr/src/linux# vim /boot/grub/grub.conf
-
彆著急,你以為重啟就好了吧(如果是安在物理機上重啟是可以了),但是如果安裝在虛擬機器上,要將記憶體調至4G才可以,不然會報記憶體不足的錯誤。
-
然後重啟吧,進入啟動項會提示你選擇核心版本,這時候你選擇ubuntu4.19.1就可以使用你新編譯的Lniux核心了!
**DannyWu部落格**

image
長按二維碼關注公眾號
原創申明:本文為DannyWu原創,轉載務必註明本文連結,否則視為侵權!