Kernel 2 6x 編譯過程

2021-04-01 06:53:51 字數 2742 閱讀 1729

提要:

在kernel 2.6x和以前的版本的編譯方法有點區別,所以就簡單的把編譯過程寫出來,主要是幫助初學linux的兄弟。

kernle 2.6x

編譯比較簡單,最適合我等菜鳥!!

本文是以redhat為例,內版本是

二、解壓

1.linux-

2.6.0

-test8.tar.bz2

#mv linux-

2.6.0

-test8.tar.bz2 /usr/src

#tar jxvf linux-

2.6.0

-test8.tar.bz2

2.進入相應的目錄編譯和安裝,進入核心選項設定

#cd linux-

2.6.0

-test8

#make mrproper

#make menuconfig

進入核心選項卡,m是以模快方式編譯,*是直接編入核心

至於哪些要編入核心,哪些要編譯成模組。在文章管理器和基礎討論區的帖子中都有,自己試著找一找。另外核心中的doc也有相應的文件

3.編譯和安裝核心

#make

#sudo make install

這個過程是編譯和安裝核心的過程,系統自動為我們做了哪些事?

1]系統會在/usr/src/linux/arch/i386/boot/目錄中產生bzimage,並把bzimage複製為vmlinuz-

2.6.0

-test8到/boot目錄中,並創建議vmlinuz-2.6.0-test8的鏈結vmlinuz;

2]在/boot目錄中,系統會產生system.map-2.6.0-test8,以及建立它的鏈結system.map;

3]在/boot目錄中,自動生為initrd-2.6.0-test8.img;

4]修改/etc/grub.conf 檔案,加入了新核心的啟動項。

[注]經大熊寶寶兄的提示,怕初學的弟兄不明白這個過程,所以就把這個過程詳細的寫出來,所以我也做了補充。以上的四點都是系統自動安裝核心時所做的任務。檢視一下/boot目錄中的檔案以及/etc/grub.conf就明白了。這一點和以往2.4.x不一樣的地方。做個比喻就是2.4.x還是半自動的,上面的東西要執行好多個命令,而在2.6.x中,一步就到位,是全自動的!

4.編譯和安裝模快

#make modules

#make modules_install

5.設定/etc/grub.conf,我不用lilo,更確切的來說,我不太懂,所以只能說grub的設定辦法。

為什麼要設定這個呢?其實在編譯和安裝核心的過程中,系統已經自動把新核心的啟動項直接新增到了/etc/grub.conf中。當我們不對/etc/grub.conf進行改動,直接啟用新核心會發現vfs錯誤之類的提示。

下面的是我安裝後新核心後,沒有改動過的

/etc/grub.conf

title fedora core (

2.6.0

-test8)

root (hd0,7)

kernel /boot/vmlinuz-

2.6.0

-test8 ro root=label=/

initrd /boot/initrd-

2.6.0

-test8.img

title fedora core (

2.4.22

-1.2061.nptl)

lock

root (hd0,7)

kernel /boot/vmlinuz-

2.4.22

-1.2061.nptl ro root=label=/

initrd /boot/initrd-

2.4.22

-1.2061.nptl.img

改動後的就是

title fedora core (

2.6.0

-test8)

root (hd0,7)

kernel /boot/vmlinuz-

2.6.0

-test8 ro root=/dev/hda8

initrd /boot/initrd-

2.6.0

-test8.img

title fedora core (

2.4.22

-1.2061.nptl)

lock

root (hd0,7)

kernel /boot/vmlinuz-

2.4.22

-1.2061.nptl ro root=label=/

initrd /boot/initrd-

2.4.22

-1.2061.nptl.img

對比改動過的/etc/grub.conf,我們不難發現,我們在新核心2.x中,指定root的根分割槽所在的位置時,沒有用標籤label=/,而是用的是真正的分割槽位置。

請對linux不太熟的弟兄,不要照搬我的分割槽設定。如果想知道這方面的,在基礎討論區中,有關於grub和分割槽訪問的文章,在文章管理器中也有。

對比改動過的/etc/grub.conf,我們不難發現,我們在新核心2.x中,指定root的根分割槽所在的位置時,沒有用標籤label=/,而是用的是真正的分割槽位置。

請對linux不太熟的弟兄,不要照搬我的分割槽設定。如果想知道這方面的,在基礎討論區中,有關於grub和分割槽訪問的文章,在文章管理器中也有。

編譯核心全過程 kernel2 6 XX

來自 bekars渦輪增壓的blog 編譯核心全過程 kernel2.6.xx 今天把核心公升上了2.6.10,很順利,爽呀!可以連同以下幾個軟體包一起公升級 ftp ftp.rpmfind.net linux redhat 2 27.9.i386.rpm ftp ftp.rpmfind.net l...

windows下使用Mingw編譯x264

4.進入mingw目錄,c mingw msys 1.0,執行msys.bat,在命令列下進入yasm所在目錄,依次執行命令 cd d yasm 1.2.0 進入目錄 configure 回車 執行配置檔案 make 回車 開始編譯 make install 回車 安裝 5.編譯x264 講x264...

QT5 X 編譯QFtp全過程

為什麼5.x不提供qftp自己去查一下吧,應該都知道。首先由qtcreate開啟根目錄下的pro,專案裡面有三個可以直接看到的專案 examples src tests 我們只編譯第二個src 然後又兩處修改 第一是src qftp qftp.pro中的 config static config s...