1. 程式人生 > >Ubuntu16.04編譯Linux核心

Ubuntu16.04編譯Linux核心

本文介紹在Ubuntu中編譯Linux核心並新增新的啟動項資訊。

第一步:下載核心原始碼並解壓

核心原始碼可以在官網下載:點選開啟連結

筆者用的核心版本是4.14的。把下載好的核心原始碼放在/usr/src/kernel目錄下,沒有這個目錄的話可以自己建立。通過以下命令把核心原始碼解壓,後面跟的是原始碼檔名。

tar xvJf  xxxxxx.tar.xz

第二步:配置編譯選項

配置編譯選項有多種方法:

(1)make config:基於文字的配置介面。

(2)make menuconfig:基於文字的選單式配置介面。

(3)make xconfig:基於X Windows(Qt)圖形配置介面。

(4)make gconfig:基於X Windows(Gtk)圖形配置介面。

(5)make oldconfig:使用原有核心配置。

這裡使用最簡單的make config。

進入解壓得來的資料夾,使用make config命令配置編譯選項。如果沒特殊要求,一路回車選擇預設配置就好。

第三步:開始編譯核心

使用make bzImage命令開始編譯核心,此過程大概需要一小時。

使用make modules編譯相應的核心模組,接著使用make modules_install安裝編譯好的核心模組。此過程大概需要兩個小時。

在以上過程中出現scripts/sign-file.c:23:30: fatal error: openssl/opensslv.h錯誤的解決辦法:點選開啟連結

第四步:新增新的啟動項資訊

將/usr/src/kernel/linux-4.14/arch/x86/boot下的bzImage檔案拷貝到/boot下,並重命名為vmlinuz-4.14.0,後面是核心版本。這時候該目錄下還有init-4.14.0,這是通過命令make modules_install得到的。


修改grub/grub.cfg檔案:


只需把上面名為"Ubuntu"的啟動項資訊複製下來,修改一下啟動項名字,還有在linux,initrd分別改成對應的兩個檔案即可。

重啟系統可以進入新的核心。通過uname -r命令可以得到當前核心版本。