以5.3.8(最新)linux 核心為例
wget
安裝核心編譯所需的環境
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
解壓核心原始碼
xz -d linux-5.3.8.tar.xz && tar xvf linux-5.3.8.tar
核心編譯配置檔案.config的生成
可以拷貝當前系統的核心配置檔案到原始碼目錄,也可以自己通過menuconofig
選擇需要編譯的feature,當然也可以在當前系統的核心配置檔案基礎上執行menuconfig
進行修改.
# 進入原始碼根目錄
# 拷貝當前系統核心配置檔案
cp -v /boot/config-$(uname -r) .config
# make menuconfig
編譯核心
make -j $(nproc)
安裝編譯生成的modules
sudo make modules_install
安裝新核心相關檔案
sudo make install
重啟
reboot
在重啟的grub介面選擇想要進入的核心版本即可
部分ubuntu版本在grub時預設顯示可選擇的核心版本,部分ubuntu版本在grub時需要進入ubuntu高階選項
才能看到可選擇的核心版本.
附:
ubuntu18.04在編譯之後無法看到grub引導介面,而是直接以新核心啟動了系統,因此無法選擇需要啟動的核心版本問題
該問題是由grub設定導致的,需要修改grub的配置檔案
sudo vim /etc/default/grub
將檔案中的grub_timeout_style
選項的值從hidden
改為menu
如果grub_timeout
選項的值為0,則修改為5或10,該選項在grub_timeout_style
為menu
時,為grub進入預設引導項的倒計時等待時間.
修改grub配置檔案後需要允許以下命令,以更新grub設定.
sudo update grub
然後重啟即可.
reboot
Linux核心編譯和替換核心
linux核心支援多種架構。該篇小記是筆者第一次針對已有的核心配置檔案來編譯核心的,比如arm系列的博通bcm,海思hisi,恩智浦i.mx6ull 本次是針對博通bcm2709 defconfig來編譯核心的。本次是針對博通bcm2709 defconfig來編譯核心 安裝交叉編譯工具鏈 安裝nc...
了解並編譯linux核心
一 核心的功能 1 系統呼叫 2 程序控制 3 記憶體管理 4 檔案系統管理 5 裝置驅動程式 二 編譯linux核心 進入到核心源 目錄 cd usr src linux 2.6.15 make config make xconfig make menuconfig make 三 裁剪linux ...
核心 核心編譯 proc sys
單核心體系設計 但充分借鑑了微核心設計體系的優點,為核心引入模組化機制。核心組成部分 kernel 核心核心,一般為bzimage,通常在 boot目錄下,名稱為vmlinuz version release kernel object 核心物件,一般放置於 lib modules version ...