linux編譯核心詳解(轉並修改)

2021-05-25 17:17:09 字數 1517 閱讀 9069

從原始碼編譯核心 (簡體中文)  

獲取原始碼

例:$ wget -c

$ cp linux-2.6.27.tar.bz2 ~/kernelbuild/

$ cd ~/kernelbuild

$ tar -xvjf linux-2.6.27.tar.bz2

$ cd ~/kernelbuild/linux-2.6.27

編譯前設定

$ zcat /proc/config.gz > .config

$ make oldconfig (僅當你已經拷貝了核心配置檔案)

$ make menuconfig

你也可以使用make xconfig(依賴qt)或者make gconfig(依賴 gtk),來代替終端模式的make menuconfig。

$ make menuconfig

what about /usr/src/ ?

用/usr/src/目錄編譯,連同建立連線這種方法已經不用了,很多 hackers 並不贊同這種方法。最潔淨的方法是簡單地利用自己的家目錄,作為乙個普通使用者設定並編譯自己的核心,以root身份安裝,或者用 makepkg 和pacman (上面提過)

編譯和安裝

選擇以下一種方法:

1.手動的傳統的方法

警告: 不要執行 make all 如果你用的是 grub ,並且依然裝有 lilo; 它最後會設定 lilo,這樣你可能再也不能啟動你的機器了。如果你使用的是 grub 執行前make all先解除安裝 lilo(pacman -r lilo)。

$ make clean

$ make dep

$ make modules

$ make bzimage

# make modules_install

(如果你是以普通使用者身份編譯的話,先執行make clean && make,然後以root身份執行make modules_install。

# cp -v arch/i386/boot/bzimage /boot/vmlinuz-2.6.27-revision1

(你也可以拷貝配置檔案和system.map到/boot,但是一般來說他們再也不需要了。

mkinitcpio -k 2.6.27-revision1 -g /boot/kernel26-revision1.img

$ cd ~/kernelbuild/linux-2.6.27/arch/i386/boot/ # sh ./install.sh

當然,你可以將vmlinuz, kconfig, and system.map 檔案更名; 然而, 版本號系統對控制和跟蹤系統中的核心(如你編譯了多少個核心)。你也可以試試在名稱中加入日期和時間,當然你可以堅持你想要的簡單的名字。

最後要說就是如果你是使用lilo的話,一旦sh ./install是無效的話

那麼就修改/etc/lilo.conf中的配置節

修改完之後一定要記得/sbin/lilo 來完成關聯,否則lilo不知道已經修改配置節

建議,你就模仿已經存在就可以!

了解並編譯linux核心

一 核心的功能 1 系統呼叫 2 程序控制 3 記憶體管理 4 檔案系統管理 5 裝置驅動程式 二 編譯linux核心 進入到核心源 目錄 cd usr src linux 2.6.15 make config make xconfig make menuconfig make 三 裁剪linux ...

編譯核心並替換核心

以5.3.8 最新 linux 核心為例 wget安裝核心編譯所需的環境 sudo apt get install git fakeroot build essential ncurses dev xz utils libssl dev bc flex libelf dev bison解壓核心原始碼...

linux核心編譯測試環境搭建詳解

具體見1 4部。點開看看 如果你想要動態載入的組建的話,直接跳過1就可以了。include include include include module license gpl static struct completion comp static struct task struct t sta...