Linux核心編譯

2021-08-24 19:22:43 字數 2338 閱讀 3886

如何編譯linux核心? 相信你會得到很多種不同的答案,而我在寫此文章之前,總是獲得一些編譯錯誤的結果。

1. linux系統編譯核心的通用方法

核心**中的readme檔案對編譯過程有非常 詳細介紹,下而介紹的方法是linux核心通用的編譯方法,它是makefile檔案已定義好的編譯過程。

wget

2) 解壓,並把它放到/usr/src/目錄下

gzip -d linux-2.6.28.1.tar.gz

tar -xvf linux-2.6.28.1.tar

mv -rf linux-2.6.28.1 /usr/src

3) 在/usr/src/建立乙個軟鏈結到linux-2.6.28.1目錄

cd /usr/src

ln -s linux-2.6.28.1 linux

4) 清理源**(如果是之前已生成一些中間檔案可執行此命令,否則不必了)

make mrproper

5) 生成config檔案

cp /boot/config-`uname -r` ./.config

make menuconfig

在make menuconfig的配置介面中,先選擇load config file, 把該才拷貝的檔案載入進來再進行修改,修改完成後,直接選exit,然後在提示中選擇保當前配置檔案。

6) 編譯

make

7) 安裝模組

make modules_install

該命令會把模組及相關檔案放到目錄/lib/modules/2.6.18.1/下,並不會與當前核心產生衝突,除非核心版本是一樣的。

8)安裝核心

make install

該命令會把核心相關檔案(bzimage, initrd.img,system.map .config)放到/boot/目錄下,檔名均帶有核心版本名,與其它版本相關區別。

如果系統安裝了lilo,它會自己把該核心的啟動加進來。如果是grub程式,那要看情況而定。我在fodera系統中,它會自動新增該啟動項到/boot/grup/menu.lst檔案中,而在ubuntu中則不會,需要手動新增。新增完也,即可重啟進行新核心。

2. ubuntu核心編譯方法。

上面介如的通常方法適合於所有的linux系統,ubuntu也不例外。ubuntu同樣提供了編譯核心的方法。而且方法非常簡單,把上述第6)和7)步換成下面這一命令即可。

該命運行完畢後,生成兩個deb包,其它乙個是核心和模組的包;另乙個是標頭檔案的deb包。如果不需要,可在命令列上把kernel_header去掉。

安裝核心變異常簡單,只需安裝乙個生成的核心映象的deb包。使用如下命令:

dpkg - i linux-image-2.6.28.1_2.6.28.1-10.00.custom_i386.deb

安裝完後,所有的事情也就完成了,連/boot/grub/menu.lst的啟動選單項都修改好了,你所要做的事情就是重啟系統而已。

使用這種方法的好處是不言而喻的:你只需要在一台ubuntu上編譯好乙個較新的核心,就可以在整個實驗室中公升級,何樂而不為呢?

3. fodera 核心編譯方法

很抱歉,目前還未有找到很準確的fodera核心編譯方法,後面會補上。但這裡介紹的方法仍然適後fodera系統,那就是象ubuntu一樣,把核心編譯成為乙個rpm包。而且非常簡單,只需把上面的第6)和7)步換成下面的命令:

make rpm-pkg

執行完後,核心rpm包位於目錄/usr/src/rpm/rpms/i386/kernel-2.6.28.1.i386.rpm下,使用rpm -i kernel-2.6.28.1.i386.rpm命令即可安裝。

安裝rpm完成後,請檢查/boot/grup/menu.lst檔案是否有新核心的啟動,若否請手工新增。

核心刪除:

有時我們基於各種原因可能刪除一些老的核心,基本步驟如下:

1. 檢視當前系統的核心版本,千萬不要刪除錯了

#uname -r 或者 uname -a

2. 對於通過rpm方式安裝的核心,刪除就很簡單了。直接用rpm -e 相應的核心版本就能刪除掉了。

對於手工編譯安裝的核心,刪除起來稍微就要麻煩些了。

(1)、修改 /etc/grub/grub.conf 或 /etc/grub/menu.lst ,刪除那些不想要的核心選項。

(2)、刪除 /lib/modules/相對應的核心版本的目錄

(3)、刪除 /boot/相對應的核心版本的檔案

對於ubuntu系統:

$dpkg –get-selections|grep linux-image //檢視核心版本名稱

$sudo apt-get remove 核心版本(如:linux-image-2.6.15-23-386)

編譯 linux 核心

一 準備工作 tpv te0 首先說明,下面帶 號的行都是要輸入的命令列,且本文提到的所有命令列都在終端裡輸入。ixpub技術部落格 rc0p a6zx j 啟動linux系統,並用根使用者登入,進入終端模式下。6i sb w,a0 ixpub技術部落格c gng,y y ixpub技術部落格 k,...

linux編譯核心

red hat linux版本的核心編譯 make j2 編譯 make modules make modules install make install cd boot mkinitramfs o initrd.img 2.6.30.10 2.6.30.10 此項可能不需要 vim boot g...

Linux核心編譯

經過幾天的努力,本人終於把乙個核心編譯成功了,嘿嘿,現在把編譯過程記下來,以後再接再勵,注意 以下的操作都要有root許可權。linux 2.6.36.tar.bz2。2 解壓縮。cd usr src tar xvf home ibm linux 2.6.36.tar.bz2.usr src下就會多...