1. 程式人生 > >Ubuntu 14.04 32位環境 編譯 Linux 4.19.0核心

Ubuntu 14.04 32位環境 編譯 Linux 4.19.0核心

-------ForLinux------

------------為作者原創文章,轉載請註明出處。------------------------
寫在前面:
首先,這是一篇Linux核心編譯的極其詳細的教程,以至於叫一個從未接觸過Linux的孩子照著流程也能編譯成功,所以——我勸你在時間充裕的情況下,大致瀏覽並關閉頁面自己嘗試,我編譯的時候也遇到了一些小坑,這些小坑大多在Ubuntu的問答社群裡都有解釋,也希望你能夠看下去英文社群的問答,因為你以後很多問題的答案也許都是in English。
下面進入正文:

一、下載Linux核心原始碼

進入上面的網址下載所需要編譯的Linux核心,我選擇了最新4.19.0版的核心,下載後為壓縮包。(*請先保證網路正常)

2、存放

建立一個專屬的資料夾,存放該壓縮包。

二、編譯部分

1、解壓縮

如下圖所示,並保證要進入linux-4.19的目錄,後續工作都需在此目錄下進行!

# tar xf linux-4.19.tar.xz	
# cd linux-4.10.1/

在這裡插入圖片描述

2、安裝必要的包

我看見有教程給了很多包,其實以下兩個足夠了:

sudo apt-get install libssl-dev
sudo apt-get insatll libncurses5-dev

如圖所示:在這裡插入圖片描述

在這裡插入圖片描述

此處注意:**CentOs下這兩包的名稱分別為ncurses-devel openssl-devel Ubuntu下包的名稱就不一樣了,大家這裡注意一下 :

https://packages.ubuntu.com/
在這裡可以檢索到你所需要的包。

3、驗證

看看都裝上了沒,總之,缺什麼補什麼少什麼添什麼(下圖有我的錯誤示範和正確示範,再次注意這是Ubuntu不是CentOs)

sudo apt-get install gcc make libssl-dev libncurses5-dev

在這裡插入圖片描述

4、構建.config檔案用於編譯

1.先我們用原先Ubuntu的配置檔案進行拷貝轉移

這樣對編譯極其方便,如圖:新開terminal開啟自己的boot,可以看到其下的config檔案:

ls /boot

在這裡插入圖片描述

拷貝轉移到當前目錄下:(不要盲目複製,根據自己的版本做修改)

cp /boot/config-4.4.0-31-generic ./

在這裡插入圖片描述

2、新增缺少項

這裡首先menuconfig,其次,還是那句話缺什麼補什麼少什麼添什麼:

make menuconfig
sudo apt-get install bison
sudo apt-get install flex

在這裡插入圖片描述

在這裡插入圖片描述

3、出界面

make menuconfig

進入介面
在這裡插入圖片描述

按右鍵進入load介面:
在這裡插入圖片描述

backspace刪除.config,匯入剛才的檔案:
在這裡插入圖片描述

點選ok儲存,這時候檔名才為.config:
在這裡插入圖片描述

在這裡插入圖片描述

然後預設的不要動,exit就好。

這時候再看下當前資料夾下:

ls -a

就能看見.config檔案夾了:
在這裡插入圖片描述

5、編譯

這時候基本上快結束了:

make

在這裡插入圖片描述

出現上面介面的時候就一直等吧,三四個小時也不為過。

make modules_install

就一直跑:
在這裡插入圖片描述

完了輸入:

make install

在這裡插入圖片描述
在這裡插入圖片描述

三、重啟

uname -a

檢視當前版本:
在這裡插入圖片描述