**linux核心編譯過程
作者 李萬鵬
基礎知識:
/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核心編譯過程
基礎知識 boot vmlinuz啟動壓縮核心 boot system.map核心符號的位址 boot initrd.img初始化ram硬碟,儲存根檔案系統掛載所需的模組 lib modules目錄 核心的模組和自己編譯的模組都在這裡.lib modules build 儲存為該版本編譯核心所需要的...