会员登陆  支付方式  联系我们  在线客服  网站地图       
首页 关于域浪 互联网数据中心业务、主机托管、主机租用、机架租用、带宽租用、机房介绍、机房对比、CCN网络加速 adsl专线、深圳adsl专线 虚拟主机、域名注册、数据库、企业邮局、动态域名 网络安全、网络临近平台、安全服务、防火去墙租用、安全产品、域浪抗DDOS防火墙、NetScreen防火墙 技术支持  
   当前位置:首页 >> 技术支持 >> LINUX操作系统 >> linux2.6.7内核的升级
 
精华文章
    轻轻松松安装 Linux(...  
    轻轻松松安装 Linux(...  
    轻轻松松安装 Linux(...  
    Linux中的应用软件安装...  
    在Linux下使用办公软件...  
    Linux下的经典播放器  
    Linux下的视频播放系统...  
    了解Linux  
    Linux的常用网络命令  
    linux使用技巧二则  
    Linux下的FTP服务器配...  
    Linux下虚拟域名的实现...  
    Linux下虚拟域名的实现...  
    Linux下虚拟域名的实现...  
    Linux下配置DHCP服务器...  
    Linux下添加新硬盘及分...  
    认识Linux下Ext2与Ext...  
    RedHat Linux下防火墙...  
    Linux下硬盘分区的最佳...  
    Linux环境下防火墙配置...  
    Linux环境下防火墙配置...  
    Linux环境下防火墙配置...  
    一张软盘玩Linux  
    让你的Linux用起来跟W...  
    世界4个头号Linux认证...  
    linux2.6.7内核的升级  
    浅谈如何学习linux  
    几个重要的Linux内核文...  
  更多>>  
   LINUX操作系统
 linux2.6.7内核的升级
    一 编译前准备



    1)下载一份内核源代码,我下的是linux-2.6.7.tar.bz2,你可在如下地址下载它或者是更新的版本.

http://kernel.org/pub/linux/kernel/v2.6/



    2) 下载最新版本的module-init-tools( "module-init-tools-3.0.tar.gz" and "modutils-2.4.21-23.src.rpm")

http://www.kernel.org/pub/linux/ker...ools-3.0.tar.gz 

http://www.kernel.org/pub/linux/ker...4.21-23.src.rpm 



    3)安装module-init-tools. 它会替代depmod [/sbin/depmod]和其他工具.

tar -zxvf module-init-tools-3.0.tar.gz

cd module-init-tools-3.0

./configure --prefix=/sbin 

make

make install 

./generate-modprobe.conf /etc/modprobe.conf

4)安装modutils-2.4.21-23.src.rpm. 你可能会看到"user rusty and group rusty not existing"的警告. 没关系,你只需强制安装就是了.如果你不对Redhat 9和Redhat 8做这几步, 你将会在"make modules_install"这一步时出现问题. 

rpm -i modutils-2.4.21-23.src.rpm

rpmbuild -bb /usr/src/redhat/SPECS/modutils.spec

rpm -Fi /usr/src/redhat/RPMS/i386/modutils-2.4.21-23.i386.rpm



    5)解压缩内核源代码.把下载的源代码包放到目录/usr/src下,然后

cd /usr/src 

tar xvfj linux-2.6.7.tar.bz2 

cd linux-2.6.7 



    二、 编译配置



    在这一部分涉及几个重要模块的配置,请特别注意.一般用"make menuconfig"命令来配置内核.输入以上命令后出现一个菜单界面,用户可以对需要的模块.下面着重讲几个重要的配置。



    1)文件系统

请务必要选中ext3文件系统,

File systems--->[*] Ext3 journalling file system support[*] Ext3 Security Labels[*] JBD (ext3) debugging support

以上三项一定要选上,而且要内建(即标*). 这个非常重要,在配置完后一定要检查一下.config文件有没有"CONFIG_EXT3_FS=y"这一项. 如果不是"CONFIG_EXT3_FS=y"而是"CONFIG_EXT3_FS=m",你在运行内核时就会遇上以下错误: pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed 



    2)网卡驱动

请务必把自己网卡对应的驱动编译进内核,比较普遍的网卡是realtek 8139,以下就是这种网卡的配置,以供参考

Device Drivers--->

Networking support--->

Ethernet (10 or 100Mbit) --->

<*> RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)

<*> RealTek RTL-8139 PCI Fast Ethernet Adapter support 



    3)声卡驱动

也要选择自己声卡对应的驱动编译进内核,比较普遍的声卡是i810_audio,以下就是这种声卡的配置,以供参考

Device Drivers --->

Sound --->

<*> Sound card support

Advanced Linux Sound Architecture --->

<*> Advanced Linux Sound Architecture

<*> Sequencer support

< > Sequencer dummy client

<*> OSS Mixer API

<*> OSS PCM (digital audio) API[*] OSS Sequencer API

<*> RTC Timer support

PCI devices --->

<*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111

Open Sound System --->

< > Open Sound System (DEPRECATED)

以上三项配置关系到新内核能否正常运行,请备加注意.其他的配置如果不是很了解,大可以按默认的选择.



    三、 编译过程



按如下命令编译,大概需要一个多小时,大可以好好放松一下:-)

make bzImage 

make modules 

make modules_install

make install



运行新内核之前,请检查一下/boot/grub/grub.conf的内容,下面的配置可作参考

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You have a /boot partition. This means that

# all kernel and initrd paths are relative to /boot/, eg.

# root (hd0,0)

# kernel /vmlinuz-version ro root=/dev/hdc3

# initrd /initrd-version.img

#boot=/dev/hdc

default=1

timeout=10

splashimage=(hd0,0)/grub/splash.xpm.gz

title Red Hat Linux (2.6.7)

root (hd0,0)

kernel /vmlinuz-2.6.7 ro root=LABEL=/

initrd /initrd-2.6.7.img

title Red Hat Linux (2.4.20-8)

root (hd0,0)

kernel /vmlinuz-2.4.20-8 ro root=LABEL=/

initrd /initrd-2.4.20-8.img



    四、 运行内核的常见问题



    1)RPM问题

进入编译好的内核后,与RPM相关的命令有些不能使用,并出现下列错误:

rpmdb: unable to join the environment

error: db4 error(11) from dbenv->open: Resource temporarily unavailable

error: cannot open Packages index using db3 - Resource temporarily unavailable (11)

error: cannot open Packages database in /var/lib/rpm

no packages

解决方法是执行“export LD_ASSUME_KERNEL =2.2.25”命令,也可以将其写入/etc/bashrc。



    2)Sound问题

声音部分的模块名也改变了。我的笔记本原来的声卡驱动是i810_audio,现在已改为snd-intel8x0。因此需要把下面的内容添加到/etc/modprobe.conf中:

alias char-major-14 soundcore

alias sound snd-intel8x0

alias sound-slot-0 snd-intel8x0

alias snd-card-0 snd-intel8x0

alias sound-service-0-0 snd-mixer-oss

alias sound-service-0-1 snd-seq-oss

alias sound-service-0-3 snd-pcm-oss

alias sound-service-0-8 snd-seq-oss

alias sound-service-0-12 snd-pcm-oss

install snd-intel8x0 /sbin/modprobe --ignore-install sound-slot-0 && 

{ /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1; /bin/true; }

remove snd-intel8x0 

{ /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1; /bin/true; };

/sbin/modprobe -r --ignore-remove sound-slot-0

然后执行“modprobe sound”加载声音模块,并使用下列命令检验声卡驱动:

#cat /proc/asound/cards



显示结果如下:

0 [SI7012]: ICH - SiS SI7012

SiS SI7012 at 0xdc00, irq 11



    3)VMware问题



解决方法是:

◆ 将/usr/bin/vmware-config.pl中所有的“/proc/ksyms”替换为“/proc/kallsyms”。使用“sed”命令可以达到这个目的。

◆ 重新运行该脚本,使用内核头文件编译新的内核模块。在编译过程中如发生错误,应该进入/usr/lib/vmware/modules/source,使用下面的命令将vmnet.tar解包:

#tar xvf vmnet.tar

◆ 进入vmnet-only目录修改bridge.c文件。将“atomic_add(skb->truesize, &sk->wmem_alloc);”修改为“atomic_add(skb->truesize, &sk->sk_wmem_alloc);”,并用类似的方式将“protinfo”改为“sk_protinfo”。

◆ 再次把vmnet-only目录用下面的命令重新打包为vmmon.tar:

#tar cvf vmmon.tar vmnet-only。



  • 上一篇文章: 世界4个头号Linux认证浅析——解除你的迷惑
  • 下一篇文章: 浅谈如何学习linux
  • 域浪网络ISP经营许可证 深圳地址:深圳市罗湖区宝安北路国际商品交易大厦七楼C30室
    Tel:0755-82266883/82267566 Fax:0755-82261966
    邮编:518000 
                        Copyright © 2006-2008 elang.cn All Rights Reserved 深圳市域浪网络技术有限公司版权所有