很多時候我們在使用ubuntu的時候,想修改一下核心配置,然後編譯,安裝到ubuntu中。這也是進行ubuntu核心開發的前提。
有很多方法可以獲得ubuntu核心**,但是下面兩種非常方便。
uname -r顯示當前核心的版本號,apt-get source則用來獲取package的source code:
其中release codename通過lsb_release -a獲取,比如ubuntu 16.04的codename為xenial。git clone git:
distributor id: ubuntups:從實際使用來看,apt-get source的方式更方便,也不容易出錯,獲取的核心**和當前使用的是同乙個版本。description: ubuntu 16.04.3 lts
release: 16.04
codename: xenial
如果需要編譯核心,還需要安裝乙個package。可以使用如下命令:
整個編譯過程使用的配置檔案分布在若干子配置檔案中,使用如下命令可以將這些配置檔案集中,呼叫menuconfig進行修改。sudo apt-get build-dep linux-image-$(uname -r)
使用chmod解決部分指令碼可執行許可權問題,
進入核心**的根目錄,執行如下命令:chmod a+x debian/ruleschmod a+x debian/scripts/*
chmod a+x debian/scripts/misc/*
fakeroot debian/rules clean
fakeroot debian/rules editconfigs # you need to go through each (y, exit, y, exit..) or get a complaint about config later
如果編譯成功,在根目錄下會生成若干.deb包。fakeroot debian/rules clean# quicker build:
fakeroot debian/rules binary-headers binary-generic binary-perarch
# if you need linux-tools or lowlatency kernel, run instead:
fakeroot debian/rules binary
如下是4.4.0-57-generic核心在amd64系統上生成的.deb包:
使用dpkg -i安裝若干.deb檔案到系統中,然後重啟:
有時進行debug需要符號表,這就需要在編譯的時候進行配置。首先需要安裝pkg-config-dgbsym,然後在執行編譯binary-*的時候增加』skildbg=false』:sudo dpkg -i linux*4.4.0-57*.debsudo reboot
如果部分核心不需要,可以選擇刪除。需要先檢視當前使用的核心版本:sudo apt-get install pkg-create-dbgsymfakeroot debian/rules clean
fakeroot debian/rules binary-headers binary-generic binary-perarch skipdbg=false
uname -a可以獲取當前核心版本號。
在ubuntu核心映象包含了以下的包。
首先檢查系統中安裝的核心映象:
輸出如下結果:dpkg --list|greplinux-image
dpkg --list|greplinux-headers
al@al:~/data/ubuntu-kernel$ dpkg --list|grep linux-image在列出的核心映象中,你可以移除乙個特定的版本(比如3.13.0-105和3.13.0-32)。ii linux-image-3.13.0-105-generic 3.13.0-105.152 amd64 linux kernel image for version 3.13.0 on 64 bit x86 smp
rc linux-image-3.13.0-32-generic 3.13.0-32.57 amd64 linux kernel image for version 3.13.0 on 64 bit x86 smp
ii linux-image-4.4.0-57-generic 4.4.0-57.78 amd64 linux kernel image for version 4.4.0 on 64 bit x86 smp
ii linux-image-extra-3.13.0-105-generic 3.13.0-105.152 amd64 linux kernel extra modules for version 3.13.0 on 64 bit x86 smp
rc linux-image-extra-3.13.0-32-generic 3.13.0-32.57 amd64 linux kernel extra modules for version 3.13.0 on 64 bit x86 smp
ii linux-image-extra-4.4.0-57-generic 4.4.0-57.78 amd64 linux kernel extra modules for version 4.4.0 on 64 bit x86 smp
ii linux-image-generic 4.4.0.57.60 amd64 generic linux kernel image
al@al:~/data/ubuntu-kernel$ dpkg --list|grep linux-headers
ii linux-headers-4.4.0-57 4.4.0-57.78 all header files related to linux kernel version 4.4.0
ii linux-headers-4.4.0-57-generic 4.4.0-57.78 amd64 linux kernel headers for version 4.4.0 on 64 bit x86 smp
ii linux-headers-generic 4.4.0.57.60 amd64 generic linux kernel headers
sudo apt-getpurge linux-image-3.19.0-15
dpkg --list|greplinux-headers
還可以通過sudo update-grub2來更新grub列表。 編譯自己的Ubuntu核心
很多時候我們在使用ubuntu的時候,想修改一下核心配置,然後編譯,安裝到ubuntu中。這也是進行ubuntu核心開發的前提。有很多方法可以獲得ubuntu核心 但是下面兩種非常方便。uname r顯示當前核心的版本號,apt get source則用來獲取package的source code ...
ubuntu 編譯核心
第一步 安裝必要的工具 首先要安裝必要的包。包有 libncurses5 dev menuconfig 需要的 和 essential sudo apt get install build essential kernel package 核心打包deb的可以不用裝手動安裝 sudo apt get...
編譯ubuntu核心
看了 奔跑吧 linux 核心 的書,感覺記憶體管理這一部分後面的例子不錯,就想手敲一遍體驗一下例子 自己對這方面感覺一直雲裡霧裡 nasri ubuntu usr local apt cache search linux source linux source linux kernel sourc...