|
|
光长时间不鼓捣这个东东了,这不又想学了,嘻嘻,别打我! ^_^
机子老点就装了个rh 9 (scsi 18.4g , adaptec 7880p 40m , sis 300 ,ga-6vx 创新8738)
按着论坛上的2.4 -->2.6.X 升级之南上的修改,成功编译了2.6.10 ,感觉 不错,这不又出来了2.6.11 ,按着原来的试试,OK了,下面说说俺是怎么弄的吧!
俺的系统是装好后,先用apt 升的级,不知道与这个有没有关系!!
1. 下面是引用的 http://www.linuxsir.cn/bbs/showthread.php?t=113208 上一段话,嘻嘻
安装module-init-tools-3.0.tar.gz工具包
linux-2.6.x内核的module处理过程有所改变(很多原先在用户态下由modutils处理的工作都放到内核里去完成了), 因此2.4.x下的modutils工具包已经不在适合新的2.6.x内核, 必需将其升级到module-init-tools工具包. 该工具包的最新版本是3.0(ps, 该工具包的版本从0.9.15一下跳到3.0, 其跨度之大...hoho). 可以下载module-init-tools-3.0.tar.gz源码包的地方有两个:
o Rusty's Linux Kernel Page: http://www.kernel.org/pub/linux/ker...ools-3.0.tar.gz
o http://www.kernel.org/pub/linux/uti...ools-3.0.tar.gz
接下来, 按照下列步骤安装module-init-tools工具包:
# configure --prefix=/
# make moveold
# make all install
# ./generate-modprobe.conf /etc/modprobe.conf
命令"make moveold"将把系统原来的modutils工具程序改名为"*.old"(比如,lsmod.old等等). NOTE! 这是非常重要的一步, 千万不要省略. 这将使得你可以继续使用原有的linux-2.4.x系统, 因为在2.4.x系统下, 新的module-init-tools工具包实际上是倚赖原来"*.old"程序来加载内核模块. 如果忘记了这一步也不要紧张, 可以先下载并安装原来的modutils程序包, 然后按照上面的步骤重来一遍就可以了.
新的module-init-tools工具包不再使用原来的/etc/modules.conf配置文件了, 而是使用新的配置文件/etc/modprobe.conf. 因此必需用命令"./generate-modprobe.conf /etc/modprobe.conf"来生成新的配置文件/etc/modprobe.conf. 但是令人不爽的是, 这个生成的新配置文件存在BUG, 下面我们将会提到.
2.装了个 modutils-2.4.26-16.i386.rpm ,忘了是rpm -Uvh 还是ivh了,反正不懂,自家试试就中,没接的话上rpmfind.net 上找找吧
3.然后 载kernel ,然后 解开(放到了/usr/src/下, 然后cd /usr/src/linux-2.6.11 然后 make xconfig
4.按着这里
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=40011
修改了一部分
5.其它的,大部分是默认的,大体从网上找了找,像从www.linuxfans.org上的精华上找的,记住的大体说说
Block devices 这一项
Normal floppy disk support (系统应该自己就选择了吧)
Parallel port IDE device
这一项,只选 了Parallel port ATAPI CD-ROMs ,其它的不懂,就成了模块了
Loopback device support 忘了这是干么的了,从网上查,选 上好
Cryptoloop Support(这个是它的选项,选 上再说)
Network block device support (好像是网络支持还是)
Low Performance USB Block driver 不知道干么的,
RAM disk support (选 上吧,如果你有usb,或者scsi 就用到吧,俺选 了)
Packet writing on CD/DVD media
其它的不选了,
ATA/ATAPI/MFM/RL
Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
Include IDE/ATAPI CDROM support
IDE Taskfile Access
generic/default IDE chipset support
SCSI emulation support 这个不知道干么的,可能与俺的scsi 有关就选 了
CMD640 chipset bugfix/support 系统就选 了
PCI IDE chipset support
Sharing PCI IDE interrupts support
Generic PCI IDE Chipset Support
Generic PCI bus-master DMA support
Intel PIIXn chipsets support
VIA82CXXX chipset support
算了,还是不复制and 粘贴了,把config 弄上来,想看的看看吧
就是usb 我只选 了
Support for Host-side USB
USB device filesystem
EHCI HCD (USB 2.0) support
OHCI HCD support
UHCI HCD (most Intel and VIA) support
USB Mass Storage support
USB Human Interface Device 里面的选 项都 没选
然后把网卡,声卡都 编进去了
6.make && make modules && make modules_install
7. cd /usr/src/linux-2.6.11/drivers/ 把scsi 这个目录 考到 /lib/modules 中的2.6.11 目录中,是对于用scsi 的说的, 原因: 如果不这样做,无论你加为模还是加入到内核和中去,你make install 时会出错! 原话:
从网上找到的
①在内核配置时需要将“RAM Disk support”和“Initial RAM disk”编译进内核,同时将SCSI驱动编译成可加载模块,这样在make install后就可以生成initrd.img文件。
②有时候即便如此install脚本也会弹出No modules BusLogic found for kernel X的错误,原因是mdinitrd程序没有找到已经编译好的SCSI驱动模块,从某种程度来说这是install脚本编写者所犯下的错误,为了弥补这种错误我们需要手工将mkinitrd所需要的可加载模块放在一个它能找到的位置,比如/lib/modules/2.x/scs/
8.好了,你可以看到,已经编译好了,在/boot 下什么都 有了,连grub 也都给弄好了
9. 解决usb ,成功了,但没有试过行不行,至少不会在启动时出错了
引用:http://www.linuxfans.org/nuke/mo ... wtopic&t=100067
USB问题主要是因为2.6内核中的这些模块已经改名了
USB-2.0的host控制器的内核模块名字仍然是ehci-hcd
USB-1.1的host控制器的内核模块名字已经从usb-ohci改为ochi-hcd
通用USB host控制器的内核模块名字已经从usb-uhci该为uhci-hcd.
USB键盘的模块名字从keybdev变为usbkbd
支持USB鼠标的模块名字也从mousedev改为usbmouse
因此, 我们必需修改启动脚本/etc/rc.sysinit文件. 同时必须兼容原有的2.4.x系统:
首先修改/etc/modprobe.conf
找到:
alias usb-controller usb-ohci
alias usb-controller1 ehci-hcd
把它改为:
alias usb-controller ohci-hcd
alias usb-controller1 ehci-hcd
修改/etc/rc.sysinit
2.6内核默认将HID编进内核,这样将不会生成hid,usbmouse,和usbkbd模块,也不会有USBMOUSE,USBKEYBOARD选项
Device Drivers--->
USB support--->
<*>USB Human Interface Device(full HID)supportHID layer inout support
[ ]/dev/hiddev raw HID device support
#////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#MOdify by June.Hn.
#2.6内核中找不到usbdevfs
#odl:
#if [ $usb = 1 -a ! -f /proc/bus/usb/devices ]; then
# action $"Mounting USB filesystem: " mount -t usbdevfs usbdevfs /proc/bus/usb
#fi
if [ "$KERNELVER" = "2.4" ]; then
if [ $usb = 1 -a ! -f /proc/bus/usb/devices ]; then
action $"Mounting USB filesystem: " mount -t usbdevfs usbdevfs /proc/bus/usb
fi
fi
#end
#////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
needusbstorage=
if [ $usb = "1" ]; then
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#Add by June.Hn.
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 usbhid 2> /dev/null
else
#end
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
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
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#Modify by June.Hn.
#2.6内核中被编进内核,不需要加载
#old:
#action $"Initializing USB keyboard: " modprobe keybdev 2> /dev/null
#action $"Initializing USB mouse: " modprobe mousedev 2> /dev/null
#new:
if [ "$KERNELVER" = "2.4" ]; then
action $"Initializing USB keyboard: " modprobe keybdev 2> /dev/null
action $"Initializing USB mouse: " modprobe mousedev 2> /dev/null
fi
#end
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
fi
如果把USB Human Interface Device(full HID)support编译成模块,有USBMOUSE,USBKEYBOARD选项
Device Drivers--->
USB support--->
<m>USB Human Interface Device(full HID)supportHID layer inout support
[ ]/dev/hiddev raw HID device support
USB HID Boot Protocol drivers--->USB HIDBP Keyboard(simple Boot)supportUSB HIDBP Mouse(simple Boot)support
如果你要把它作为模块,请参考snoopyxp大哥的<<2.4->2.6内核升级指南>>中的这一段
# ----- 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 usbhid 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
然后把
# Initialize USB controller and HID devices
usb=0
if ! LC_ALL=C grep -iq "nousb" /proc/cmdline 2>/dev/null && ! LC_ALL=C grep -q "usb" /proc/devices 2>/dev/null ; then
aliases=`/sbin/modprobe -c | awk '/^alias usb-controller/ { print $3 }'`
if [ -n "$aliases" -a "$aliases" != "off" ]; then
modprobe usbcore
for alias in $aliases ; do
[ "$alias" != "off" ] && action $"Initializing USB controller ($alias): " modprobe $alias
done
[ $? -eq 0 -a -n "$aliases" ] && usb=1
fi
fi
if ! LC_ALL=C grep -iq "nousb" /proc/cmdline 2>/dev/null && LC_ALL=C grep -q "usb" /proc/devices 2>/dev/null ; then
usb=1
fi
#if [ $usb = 1 -a ! -f /proc/bus/usb/devices ]; then
# action $"Mounting USB filesystem: " mount -t usbdevfs usbdevfs /proc/bus/usb
#fi
上的 上面三行打上# 因为上面已经有了,不然你开机还会有错误!
10.重起吧,老大,!
^_^
问题:1,内核中好多不东不知该选 还是不该 选 ,望 大家共同去鼓捣一下!
2.按我的配置,虽然成功,但是在第六步时出现
arch/i386/kernel/apm.c:1191: warning: `pm_send_all' is deprecated (declared at include/linux/pm.h:126)
arch/i386/kernel/apm.c:1241: warning: `pm_send_all' is deprecated (declared at include/linux/pm.h:126)
arch/i386/kernel/apm.c: In function `check_events':
arch/i386/kernel/apm.c:1357: warning: `pm_send_all' is deprecated (declared at include/linux/pm.h:126)
kernel/intermodule.c:179: warning: `inter_module_register' is deprecated (declared at kernel/intermodule.c:38)
kernel/intermodule.c:180: warning: `inter_module_unregister' is deprecated (declared at kernel/intermodule.c:79)
kernel/intermodule.c:183: warning: `inter_module_put' is deprecated (declared at kernel/intermodule.c:160)
kernel/power/pm.c: In function `pm_undo_all':
kernel/power/pm.c:201: warning: `pm_send' is deprecated (declared at kernel/power/pm.c:155)
kernel/power/pm.c: In function `pm_send_all':
kernel/power/pm.c:242: warning: `pm_send' is deprecated (declared at kernel/power/pm.c:155)
kernel/power/pm.c: At top level:
kernel/power/pm.c:259: warning: `pm_register' is deprecated (declared at kernel/power/pm.c:62)
kernel/power/pm.c:260: warning: `pm_unregister' is deprecated (declared at kernel/power/pm.c:86)
kernel/power/pm.c:261: warning: `pm_unregister_all' is deprecated (declared at kernel/power/pm.c:115)
kernel/power/pm.c:262: warning: `pm_send_all' is deprecated (declared at kernel/power/pm.c:234)
这个东东,望高手指点,是不是还是没有配置好,
3.请高手根把我的配置,建议我都是选 那些好,原因?
4.大家别打我! ^_^ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|