linux核心學習---Linux核心編譯
阿新 • • 發佈:2020-09-10
一:核心編譯前準備
(一)檢視使用的作業系統版本
hostnamectl
(二)下載Linux核心原始碼包(含疑惑)
原本打算使用低版本的Linux核心進行實驗,但是編譯完成了幾個3.X版本以後發現總是出現CPU宕機或者無法開機情況,所以這裡還是先用與原系統核心的版本相近的進行編譯(佔了近20G空間)。(好像是gcc編譯器?或者系統版本導致??)
下載地址:(下面都可以)
https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/
使用wget進行下載,或者使用共享資料夾上傳...都可以,放入/usr/src/下
(三)解壓原始碼檔案
sudo tar -zxvf linux-4.10.14.tar.gz
(四)進入原始碼資料夾
cd linux-4.10.14
二:開始編譯核心
(一)執行下面3條語句
sudo make mrproper #檢查有無不正確的.o檔案和依賴關係,使用剛下載的完整的源程式包進行編譯,所以本步可以省略。而如果你多次使用了這些源程式編譯核心,那麼最好要先執行一下這個命令。
sudo make clean #clean為清除上一次產生的編譯中間檔案
sudo make menuconfig #進入到圖形介面,進行核心配置
補充:menuconfig,我們初次選擇預設即可。save之後退出即可
其中,每一個配置選項有三種選擇,它們的含義如下: <*>或[*]:表示將該功能編譯進核心 [ ]:表示不將該功能編譯進核心 [M]:表示將該功能編譯成在需要時動態插入到核心的程式碼 使用者根據需要進行配置。
(二)開始編譯核心(兩種方法)
sudo make –j執行緒數
設定執行緒數,可以提高編譯速度!!!
或者
sudo make bzImage #編譯為映像---使用了這個
(三)安裝核心模組
sudo make modules_install //安裝核心模組
(四)安裝核心
sudo make install
(五)配置grub檔案
安裝核心以後,會預設將新的核心資訊更新到grub中,但是我們需要修改grub檔案,使得我們可以進行開機選擇進入的核心
sudo gedit /etc/default/grub
然後將GRUB_HIDDEN_TIMEOUT=0使用#註釋掉,如下圖:
然後進行更新grub即可
sudo update-grub
所以我們下面直接重啟即可!!
三:進入新的核心
(一)重啟選擇高階選項
(二)選擇我們剛剛編譯完成的核心
(三)重新檢視系統核心
(四)注意:我們發現修改核心,不會改變系統原本的資訊!!!
原始資料未改變