歡迎您光臨本站 註冊首頁

虛擬機中RH9 2.4內核升級為2.6內核方法

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
   

1.去linux的官方網站上下一個linux 2.6的內核!http://www.kernel.org;

 

2.安裝一個modules-init-tools-3.0.tar.gz工具包,因為2.4.x的modutils工具包已經不適合新的2.6.x內核,必須將它升級到modele-init-tools工具包。

 

可以到http://www.kernel.org/pub/linux/ ... it-tools-3.0.tar.gz下載

 

3.安裝modele-init-tools工具包

#configure --prefix=/

#make moveold (將原來的工具程序改名,這樣還可繼續使用原來的2.4.x內核)

#make all install

 

#./generate-modprobe.conf /etc/modprobe.conf(生成2.6.x內核的新配置文件)

 

4.安裝Mkinitrd 4.1.18-2 工具包,將當前目錄切換到mkinitrd-4.1.18-2.i386.rpm、device-mapper-1.00.19-2.i386.rpm和lvm2-2.00.25-1.01.i386.rpm的下載目錄(三個文件最好在同一目錄)下,依次執行如下命令(注意,這裡是有序的執行):

 

rpm -ivh --nodeps --force device-mapper-1.00.19-2.i386.rpm

 

rpm -ivh --nodeps --force lvm2-2.00.25-1.01.i386.rpm

 

rpm -ivh --nodeps --force mkinitrd-4.1.18-2.i386.rpm

 

5.安裝binutils-2.17.tar.gz,(這個是升級虛擬機中的LINUX所必備的),依次執行如下命令:

 

tar zxf binutils-2.17.tar.gz

 

cd binutils-2.17

 

./configure

 

make

 

make install

 

6.在升級之前,還要確定以下一些軟體不低於以下的版本:

Name: Minimum version: How to find version:

Gnu C Compiler 2.95.3 gcc--version

Gnu Make 3.78 make--version

binutils 2.12 ld-v

util-linux 2.10o fdformat--version

module-init-tools 0.9.9 depmod-V

procps 2.0.9 ps--version

(參見“Documentation/Change”中的最新更新)

 

接下來正式開始升級:

 

#tar xzvf linux-2.6.20.tar.gz /usr/src/

#./configure //生成Makefile文件,如果已經有Makefile這步就沒必要了

#make menuconfig //開始配置內核

 

關於menuconfig中的配置,以下幾點值得注意:

 

o 關於"Loadable Module support"選項, 一定要選上"Module unloading"和"Automatic kernel module loading"這兩個選項.

 

關於"Processor type and features"選項, 一定要選上"Preemptible Kernel"選項, 這是2.6.x內核優於2.4.x內核的重要原因之一.

 

關於"Device Driver"的主菜單里配置以下內容:

 

o 關於"Block Devices"的配置, 一定要選上對loopback和ramdisk的支持.

o 關於"Multi-device support(RAID and LVM)", 要選上"device mapper".

o 關於"Input device support", 記得要選上"Keyboards"和"Mice"的支持.

o 關於"Graphics support", 要選上對frame buffer的支持.

 

o 關於sound選項里,與ALSA有關的, 要選上"OSS API emulation"選項. OSS可以不用了.

 

o 關於USB, 能選的都選上

 

o關於文件系統,常用的幾種一定要選上,比如

 

Ext2 extended attributes

Ext2 POSIX Access Control Lists

Ext2 Security Labels

Ext3 journalling file system support

Ext3 extended attributes

Ext3 POSIX Access Control Lists

Ext3 Security Labels

 

注意1:另外,如果使用虛擬機的一定要把sics的驅動選擇上

 

配製好內核后保存退出(保存的名字推薦使用默認的.config,這樣做的好處是在下次再menuconfig時,它會自動自動裝載這次.config中的配置), 然後就可以直接編譯了, "make dep"這一步在2.6已經不需要了。

 

接下來可以開始編譯了:

# make bzImage

 

注意2:在這一步快要完成時可能會出現一下錯誤提示:

 

....

OBJCOPY arch/i386/boot/compressed/vmlinux.bin

BFD: Warning: Writing section `.bss' to huge (ie negative) file offset 0xc0277000.

objcopy: arch/i386/boot/compressed/vmlinux.bin: File truncated

make[2]: *** [arch/i386/boot/compressed/vmlinux.bin] Error 1

make[1]: *** [arch/i386/boot/compressed/vmlinux] Error 2

make: *** [bzImage] Error 2

 

解決辦法:

在arch/i386/Makefile裡面做一些修改:

 

將OBJCOPYFLAGS改成如下的:

OBJCOPYFLAGS := -O binary --change-section-lma .bss-0xc0000000 -R .note -R .comment -S

 

然後重新make bzImage OK!

 

# make modules

# make modules_install

 

# cp /usr/src/linux-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi

 

注意3:這一步用於解決SCSI硬碟+VMWARE+REDHAT架構中,因為BusLogic被編譯進了內核而不是一個module的形式(2.4內核的Buslogic模塊即使靜態編譯進內核也不行)。解決方式是直接將BusLogic.o文件複製過去.(如果不是SCSI硬碟+VMWARE+REDHAT架構中上面的拷貝可以省略)

 

# make install

 

重啟系統

到這裡內核的編譯已經完成,可以重新啟動linux系統了

 

#reboot

(責任編輯:A6)



[火星人 ] 虛擬機中RH9 2.4內核升級為2.6內核方法已經有399次圍觀

http://coctec.com/docs/program/show-post-71718.html