LINUX核心編譯過程

2021-08-25 12:37:46 字數 2202 閱讀 7046

基礎知識:

/boot/vmlinuz啟動壓縮核心

/boot/system.map核心符號的位址

/boot/initrd.img初始化ram硬碟,儲存根檔案系統掛載所需的模組

/lib/modules目錄

核心的模組和自己編譯的模組都在這裡.

/lib/modules//build

儲存為該版本編譯核心所需要的檔案

/lib/modules//kernel

儲存核心的目標檔案,都是(.ko字尾),它的目錄組織和核心原始碼中的kernel目錄組織相同

/lib/modules 模組別名定義,模組載入工具使用它來載入

/lib/modules 定義了模組間的依賴關係

/lib/modules 指定符號屬於哪個模組

我使用的是ubuntu8.04 預設核心是2.6.24.16

sudo cp /tmp/linux-2.6.25.1.tar.bz2 /usr/src/

拷貝到/usr/src

sudo tar jxvf linux-2.6.25.1.tar.bz2

cd linux-2.6.25.1

如果以前編譯過就用

make clean

make mrproper

清一下如果是第一次安裝則不需要直接進行下面的操作

1.核心配置工具

(1)make config

(2)make menuconfig(常用)

在ubuntu 8.04下需要安裝 libncurses5-dev,因為menuconfig需要ncurse庫的支援,其他

ubuntu的發行版版本可能需要不同的包。

sudo apt-get install libncurses5-dev

(3)make xconfig

這裡需要自己進行配置,如果是初學者,可以用現成的配置檔案,這個是最適合自己電腦的,

以免自己配置錯誤

sudo cp /boot/config-2.6.24-16-generic /usr/src/linux-2.6.25.1/

sudo mv config-2.6.24-16-generic .config

在menuconfig中選中

預設就是.config

選中然後退出

2.編譯核心

sudo make

這個需要一兩個小時或以上根據機器配置。

這個相當於手工執行下面兩步:

#make bzimage

#make modules(編譯可載入模組)

其中make bzimage 將在/usr/src/linux-2.6.25.1/arch/i386/boot 目錄下生成bzimage

然後將其複製到/boot目錄下

sudo cp /usr/src/linux-2.6.25.1/arch/i386/boot/bzimage /boot/

3.sudo make install

4.sudo make modules_install

安裝模組

5.製作initrd.img

編譯2.6.14以後的核心需要使用mkinitramfs

sudo apt-get install bootcd-mkinitramfs

sudo mkinitramfs -o /boot/initrd-img-2.6.25.1 2.6.25.1

6.新增符號鏈結

ln -sf vmlinuz-2.6.25.1 vmlinuz

ln -sf system.map-2.6.25.1 system.map

ln -sf initrd.img-2.6.25.1 initrd.img

ln -sf config-2.6.25.1 config

7.然後修改grub

cd /boot/grub

chmod 777 menu.lst

sudo gedit menu.lst 新增

title ubuntu 8.04.4 lts, kernel 2.6.251

root (hd0,0)

kernel /boot/vmlinuz-2.6.25.1 root=uuid=db857fbd-ed11-4146-a010-7f97cc55d41d ro quiet splash

initrd /boot/initrd.img-2.6.25.1

quiet

8.重啟 大功告成

linux核心編譯過程

檢視系統的版本 uname a linux u2 2.4.20 8 2 一 4月 8 20 04 05 cst 2006 i686 i686 i386 gnu linux 核心編譯 make dep 檢視關聯,確定依賴性 make clean 清除一些不必要的檔案 make bzimage 生成新核...

Linux核心編譯過程

一.核心源 準備 1.獲取核心源 a.可以找乙個移植好的核心源 2.拷貝核心源 包到宿主機 借助samba伺服器從windows複製核心原始碼包到linux宿主機共享目錄下。3.解壓核心源 包 tar xvzf linux x x.tgz 二.核心編譯步驟 1.切換為超級使用者 su 2.拷貝con...

LINUX核心編譯過程

linux核心編譯過程 作者 李萬鵬 基礎知識 boot vmlinuz啟動壓縮核心 boot system.map核心符號的位址 boot initrd.img初始化ram硬碟,儲存根檔案系統掛載所需的模組 lib modules目錄 核心的模組和自己編譯的模組都在這裡.lib modules b...