Linux 2 6核心編譯,核心公升級

2021-04-22 06:35:01 字數 1610 閱讀 3289

本文描述了在fc8下公升級linux核心為2.6.25的詳細步驟.

1. 首先從如下**得到linux-2.6.25.

2. 然後在/usr/src下untar這個包.

tar -xjfv linux-2.6.25.tar.bz2

3. 配置核心

cd /usr/src/linux-2.6.25

make mrproper(刪除一些stable的檔案,針對剛download下來的包這一步沒必要)

make menuconfig(以選單的方式顯示, 可以定製linux模組, 在選單頂部有命令幫助)

3. 編譯核心

make (這一步花的時間最多,我用了將近40分鐘)

make modules_install

make install(系統將會把vmlinuz和system.map複製到/boot目錄下同時修改grub)

在2.6以前需要make bzimage make modules, 而且還需要將vmlinuz和system.map複製到/boot目錄.

要想得到更詳細關於編譯的描述, 可以參考/usr/src/linux-2.6.25的readme. 每個linux核心的發行都有這個檔案.

4. 重啟機器

shutdown -r now

這樣在開始的grub選單裡你可以選擇用新的核心來啟動linux

如果啟動時遇到這個錯:

"enforcing mode requested but no policy loaded. halting now."

kernel panic: attempted to kill init!

可以用如下方法解決:

try adding enforcing=0 to your grub.conf.

kernel /boot/bzimage-2.6.5 ro root=/dev/hda5 enforcing=0

或者在/etc/selinux/config檔案中,將selinux的值設為disabled.

說明:

2. 我們不是發燒友,動就公升級,f8核心已經是2.6.23.1-42,公升到2.6.25也沒那個必要,不過,現在的linux發行版本都不帶原始碼包的,所以做驅動開發的下個原始碼包編譯安裝是有必要的,所以我也下了當時最新版2.6.25,在開發板上移植我也用該版本。

3. make menuconfig的時候,根據自己的需要選擇,不清楚就預設即可

4. shutdown -r now 之後我可以在開始的grub選單裡選擇用新的核心來啟動linux,沒有遇到上述錯誤,系統正常執行。

5. 我解壓編譯後的linux-2.6.25檔案達到1.7g左右,交叉編譯到開發板則538.6m這樣,所以感覺當初裝系統的時候分配給系統檔案的9g還小了點。如果/ 下的空間不夠,那麼啟動系統的時候會出現「xx應用程式即將崩潰」,進入命令列下把一些檔案刪掉即可。

linux2 6核心模組的編譯

首先將下面的程式寫進乙個hello1.c的檔案裡 vim hello1.c include linux module.h include linux kernel.h include linux init.h static int init lkp init void static void exi...

Linux2 6核心啟動分析

我們已知u boot的終極目的是啟動核心,那麼核心啟動的開始必定是u boot傳入的引數。開啟armlinux.c 發現有一行的 為 thekernel 0,bd bi arch number,bd bi boot params 帶入三個引數 第乙個引數是0,第二個引數是機器id,第三個引數是引數所...

Linux 2 6 核心驅動移植

隨著 linux 2.6的發布,由於2.6核心做了教的改動,各個裝置的 驅動程式在不同程度上要進行改寫。為了方便各位linux愛好者我把自己整理的這分文件share出來。該文當列舉了2.6核心同以前版本的絕大多數變化,可惜的是由於時間和精力有限沒有詳細列出各個函式的用法。1 使用新的入口 必須包含 ...