升級SUSE Linux內核的完整步驟
安裝完SLED 10后發現仍然有“熱啟動網絡不通”的問題,原因是內核版本較低,于是升級到2.6.17版內核,成功解決此問題。為了造福廣大菜鳥,分享一下我的經驗,歡迎高手批評補充。1。將下載的新內核(比如linux-2.6.17.tar.bz2)拷貝到 /usr/src, 然后在/usr/src本地解壓,生成新目錄linux-2.6.17;
2.#cd linux-2.6.17; 編輯Makefile 找到EXTRAVERSION:
EXTRAVERSION = -xhawk(你自己給新內核取的名字) (注意前面的“-” 符號)
3。拷貝/boot/下的1個config文件到/usr/src/linux-2.6.17/(解壓的新內核目錄),更名為.config。
4。#make clean && make mrproper
5. #make xconfig
6. load 剛拷貝過來的/usr/src/linux-2.6.17/.config;
7. 在"Processor type and features" 欄目,選擇自己的CPU類型,我的CPU 是Athlon64 3000+,但我想用32位的SUSE Linux,這里仍然選擇Athlon64;選擇Preemptible Kernel(Low-Latency Desktop); Time Frequency 選擇1000Hz;
8。在Networking 欄目,去掉IPv6 Protocol;save;退出;
9.編輯 .config file;找到:CONFIG_BLK_DEV_RAM_SIZE 把值改為 128000;
10。在命令行執行 #export CHOST="i686-pc-linux-gnu"
11。#export CFLAGS="-march=athlon64 -O2 -pipe -funroll-all-loops -funit-at-a-time -fpeel-loops -ftracer -funswitch-loops -fomit-frame-pointer -fweb -msse3"
說明:如果CPU 是新版的Athlon64("Venice" or "San Diego")/Athlon64-X2("Manchester" or "Toledo"),加上-msse3,以支持SSE3 功能;
12.#export CXXFLAGS="${CFLAGS}"
13.#export MAKEOPTS="-j6"
說明:MAKEOPTS= will set number of concurrent threads. 我有 1GB 內存 所以我的 MAKEOPTS=”-j6”,如果內存小,選MAKEOPTS="-j2"。
------------------------------
***對于其它CPU的參數,請參考:
http://gentoo-wiki.com/CFLAGS
http://gentoo-wiki.com/Safe_Cflags#Intel_Processors
------------------------------
14。開始編譯:
#make bzImage
#make modules
#make modules_install
15.#make install 自動copy新內核到/boot,自動修改Grub. (不用再mkinitrd)
16.啟用新內核(這一步似乎可以不做,因為我忘記做這一步,仍然成功啟動到新內核):
#rm /boot/vmlinuz
#rm /boot/initrd
#ln -s vmlinuz-2.6.17-xhawk-default vmlinuz (注意新生成的內核的名稱,在/boot 下查一下)
#ln -s initrd-2.6.17-xhawk-default initrd
17。重起計算機,用#dmesg命令查看啟動信息,第一行就是當前內核版本。或者用命令 #uname -r
18.如果內核去掉了IPv6, 最好修改一下 /etc/sysconfig/SuSEfirewall2,
把 FW_IPv6="" 改為
FW_IPv6="no"
然后修改 /etc/modprobe.conf
將alias net-pf-10 ipv6 修改為 alias net-pf-10 off
添加 alias ipv6 off
內核網址:
http://www.kernel.org/
來自:http://blog.sina.com.cn/u/491529d60100061h
posted on 2007-07-04 06:10 狼愛上貍 閱讀(1031) 評論(0) 編輯 收藏 所屬分類: LINUX