QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1152|回复: 3

从2.4.x-2.6.x──我的升级之路

[复制链接]
发表于 2004-9-7 12:02:05 | 显示全部楼层 |阅读模式
看到大家升级中有各种各样的问题出现,作为一个菜鸟,我能够深刻地理解大家遇到问题的时候的焦急心态,所以我在这里总结一些自己升级的时候遇到的问题和解觉的方法供大家参考。欢迎大家批评指正

注意:本文所写都是在升级中出现的问题的解决,即在2.4.x下可用,而2.6.x不能用了的情况。

redhat 9.0通过

1.内核编译:请参考一些别的文章,但是我建议采用无模块的编译方式──这样做可以避免一些问题,而且其实我觉得内核在怎么大也不过1M左右,怎么也节省不料多少空间,而且要是模块装来卸去的更不合算。

2,宽带联不上: 检查你的.config文件,看看PPPOE有没有配置成y──不要告诉我你的网卡还没有驱动起来。另外,如果是两块网卡,那么看看到底该是哪块,不要搞混──我的/etc/modules.conf非得给网卡一个别名,而且刚刚好是反的,改回来就好了。

        #alias eth0 8139too
        #alias eth1 fealnx
注释掉,改成:
        alias eth0 fealnx
        alias eth1 8139too
然后安装adsl-setup
应该就可以了。另:建议在拨号前先down掉你的对应的网卡。

3。rpm不能用:

在/usr/lib/rpm/macros里面寻找

%__dbi_cdb         create cdb mpool mp_mmapsize=16Mbmp_size=1Mb

修改成

%__dbi_cdb          create cdb mpool mp_mmapsize=16Mb mp_size=1Mb private

就可以了,

4.usb鼠标键盘:如果你编译成不支持模块的内核,那么恭喜你,只要你选择了相应的选项,那么虽然启动的时候报错,可是对应的设备是可以用的。如果你就想要模块。。。。可以参考

”linux-2.6.x的USB驱动模块的名字已经改变了, 所以由此引起的问题多多......, 对应于USB-2.0的host控制器的内核模块名字仍然是ehci-hcd, 对应USB-1.1的host控制器的内核模块名字已经从usb-ohci改为ochi-hcd, 对应于通用USB host控制器的内核模块名字已经从usb-uhci该为uhci-hcd.

然而不幸的是, 在安装module-init-tools程序包时生成的/etc/modprobe.conf配置文件却仍然使用usb-ohci这个名字. 例如:

alias usb-controller usb-ohci
alias usb-controller1 ehci-hcd

因此, 要把它改为:

alias usb-controller ohci-hcd
alias usb-controller1 ehci-hcd

如果不做这样的修改, 那么使用USB-1.1 host控制器的机器在启动内核的时候将着不到相应的驱动模块.

支持USB键盘的模块名字也从keybdev变为usbkbd, 支持USB鼠标的模块名字也从mousedev改为usbmouse. 因此, 我们必需修改启动脚本/etc/rc.sysinit文件. 同时为了兼容原有的2.4.x系统, 我们在脚本的一开始定义两个变量:

#
# ----- KERNEL 2.6.x support ------
# This is for compatibility between kernel-2.4.x and kernel-2.6.x
#
UNAME=`uname -r`
KERNELVER=${UNAME:0:3}
if [ "$KERNELVER" = "2.6" ]; then
#
# This is kernel-2.6.x
#
KSYMS=/proc/kallsyms
KEYBDEV_NAME=usbkbd
MOUSEDEV_NAME=usbmouse
else
#
# This is kernel-2.4.x
#
KSYMS=/proc/ksyms
KEYBDEV_NAME=keybdev
MOUSEDEV_NAME=mousedev
fi

然后, 把/etc/rc.sysinit脚本文件中出现keybdev和mousedev的地方都改为$KEYBDEV_NAME和$MOUSEDEV_NAME. 把脚本文件/etc/rc.sysinit中的needusbstorage部分从:

needusbstorage=
if [ $usb = "1" ]; then
needusbstorage=`LC_ALL=C grep -e "^I.*Cls=08" /proc/bus/usb/devices 2>/dev/null`
LC_ALL=C grep 'hid' /proc/bus/usb/drivers || action $"Initializing USB HID interface: " modprobe hid 2> /dev/null

action $"Initializing USB keyboard: " modprobe $KEYBDEV_NAME 2> /dev/null
action $"Initializing USB mouse: " modprobe $MOUSEDEV_NAME 2> /dev/null
fi

改为:

needusbstorage=
if [ $usb = "1" ]; then
if [ "$KERNELVER" = "2.6" ]; then
needusbstorage=`LC_ALL=C grep -e "^I.*Cls=08" /sys/bus/usb/devices 2>/dev/null`
LC_ALL=C grep 'hid' /sys/bus/usb/drivers || action $"Initializing USB HID interface: " modprobe hid 2> /dev/null
else
needusbstorage=`LC_ALL=C grep -e "^I.*Cls=08" /proc/bus/usb/devices 2>/dev/null`
LC_ALL=C grep 'hid' /proc/bus/usb/drivers || action $"Initializing USB HID interface: " modprobe hid 2> /dev/null
fi
action $"Initializing USB keyboard: " modprobe $KEYBDEV_NAME 2> /dev/null
action $"Initializing USB mouse: " modprobe $MOUSEDEV_NAME 2> /dev/null
fi“

我也是参考的这个,遗憾的是我的系统不知道为什么,居然没有/etc/modprobe.conf这个文件。。。。 :-(

5。声卡:也是一样,如果编译进内核,不会有问题的。。。。。。


别的好象也没有什么了,我的经验也就这些,希望对大家有所帮助,要是误导了大家,这里就先说抱歉了,因为毕竟我也是菜鸟一只。
发表于 2004-9-7 17:40:19 | 显示全部楼层
原创的我都顶
回复

使用道具 举报

 楼主| 发表于 2004-9-7 21:22:04 | 显示全部楼层
only one.....thx more and more and most ......
回复

使用道具 举报

发表于 2004-10-4 23:25:16 | 显示全部楼层
请问oprofile这个东西有没有解决?2.6.8.1内核要求用这个的,rh9本来的内核偏偏不支持!我重新编译了rh9内核,还是不支持,兄弟能帮一下么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 18:22 , Processed in 0.074968 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表