升级SUSE Linux内核的完整步骤!

时间:2022-03-29 03:30:37

http://blog.sina.com.cn/s/blog_491529d60100061h.html

安装完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

内核网址: