linux初探

首页

应用服务器

Linux技巧

中文文档

Linux初级

服务器源代码

命令详解

Linux技术应用

Linux安全应用

Linux业界新闻

UniX技术文章

Linux编程与内核

Linux数据库

Linux服务器

Linux安装指导

Linux论坛

首页>>Linux编程与内核>>文章正文

升级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

(注:#号后是终端命令行命令)

相关文章

·在Linux系统下实现定时器
·linux进程通信-信号量使用
·在CodeBlock中使用QT
·GCC编译优化设置
·Linux内核启动地址
·linux下JDK的安装
·Debian下安装manpages-dev
·Linux下C语言编程基础(Makefile)
·debian下 编译Emacs 23

热门文章

·C++中控制Windows关机的实用
·C++继承性应用实例 日期和时
·C++类型转换时定义非成员函数
·从模板中分离出参数无关的代
·C++中用函数模板实现和优化抽
·用C++ Builder检测Windows的
·用C++ Builder来定制系统菜单
·C++语言代码检查工具PC-Lint
·用C语言实现常见的三种中文内
·用C++ Builder开发多层数据库

Copyright@2005 www.linuxGoo.com All Right Reserved