首先还是要说在 RH8/RH9 上最好升级回与原版本相同的内核(如 kernel-2.4.xx )否则会因为版本差别太大而造成很多不必要的麻烦。废话少说,下面开始升级
一. 在升级前必须对以下的组件升级 1. 升级 device-mapper,在 ftp://sources.redhat.com/pub/dm下载 cd /usr/src tar -zxvf device-mapper.1.01.04.tgz cd device-mapper.1.01.04 ./configure --perfix=/ make all make install
2. 安装 LVM2,在 ftp://sources.redhat.com/pub/lvm2下载 cd /usr/src tar -zxvf LVM2.2.01.14.tgz cd LVM2.2.01.14 ./configure --perfix=/ make all make install PS: 如果 make 时出错,可能是与系统原来的LVM1有冲突,可以 rpm -e --nodeps lvm 把原LVM1删除掉,再重新编译过device-mapper 和 LVM2。
3. 升级 mkinitrd 在 http://rpm.pbone.net/ 下查找 rpm -Uvh mkinitrd-3.5.11-3.9.i386.rpm
4.update modutils 在 ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/下载 cd /usr/src tar -zxvf modutils-2.4.27.tar.gz cd modutils-2.4.27 ./configure --perfix=/ make all make install
5.安装module-init-tools,在 ftp://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools 下载 cd /usr/src tar -zxvf module-init-tools-3.2-pre9.tar.gz cd module-init-tools-3.2-pre9 ./configure --prefix=/ make moveold
ps:"make moveold"将把系统原来的modutils工具程序改名为"*.old"(比如,lsmod.old等,是非常重要的一步! 如果忘记了这一步也不要紧张, 可以按照上面的步骤4重装一遍modutils就可以了.
make
ps: 用module-init-tools-3.1 编译时会出现 "make: *** [modprobe.conf.5] Error 127"
建议用 3.0 或 3.2-pre 版
make install ./generate-modprobe.conf /etc/modprobe.conf
二. 升级内核, 在 ftp://ftp.kernel.org/pub/linux/kernel/ 下载 cd /usr/src tar -zxvf linux-2.6.13.3.tar.gz cd linux-2.6.13.3.tar bzip2 -dc patch-2.6.13.3.bz2 | patch -p1 -R ;打补丁 make mrproper ;初次编译可以不运行这一步 make clean ;初次编译不用运行这一步,第2次编译时把上一次编译出来的删除掉 make menuconfig ; 配置内核
ps:另外可以用以下命令代替 1. make config ;基于文本的最为传统的配置界面 2. make oldconfig ;自动保存为旧版的设置 3. make menuconfig ;txt界面下的菜单设置 4. make xconfig ;kernel 2.6 下新图形窗口模式的配置界面需要PQ库的支持 5. make gconfig ;旧的图形窗口模式的配置界面
要点: 1. Device Drivers -->Block devices--〉Initial RAM disk (initrd) support 一定要选上(Y),Default RAM disk size一定要改成16384以上 2. 有SCSI卡(如VMware 中的BusLogic BT946C) 的要把它编译成模块(M) 不然会在make install 出错 3. USB support 选模块(M) USB HID Boot Protocol drivers 中的 Keyboard/Mouse选(M) 4. Sound card support 可以选上新支持的模块Advanced Linux Sound Architecture ,至于旧的Open Sound System 模块就不要再选了. 关键是把Sound card support 以及 Advanced Linux Sound Architecture 里面的选项选成模块(M) 5. 通过lspci 命令查看硬件设备, 如有列出的一定要在 config 时选上
make ;漫长的编译过程,你可以走出去喝茶吃包,回来还没有编译完... ps:在kernel 2.6 下已经省略了 make dep这一步
make modules_install install ; 安装内核及模块。安装完成后可以重启进入新的内核
三. 在新内核里发现有不少的改变,如果要正常运行必须要做一些修改, 1.在修改之前先备份以下文件(好的习惯) /etc/rc.sysinit /etc/fstab /etc/rc.d/init.d/halt /etc/modprobe.conf
2.新增的文件系统 sysfs 1. mkdir /sys 2. 在 /etc/rc.sysinit 中 找 mount -f /proc 在其后加上在下面加上 mount -f /sys 再顺便把下一行 [ -f /proc/bus/usb/devices ] && mount -f -t usbdevfs usbdevfs /proc/bus/usb 改成 [ -f /sys/bus/usb/devices ] && mount -f -t usbfs usbfs /sys/bus/usb
找 action $"Mounting proc filesystem: " mount -n -t proc /proc /proc 在其后加上在下面加上 action $"Mounting sysfs filesystem: " mount -n -t sysfs /sys /sys 3. 在/etc/fstab中加上一行 none /sys sysfs defaults 0 0 4. 修改 /etc/rc.d/init.d/halt 找 awk '$2 ~ /^/$|^\/proc|^\/dev/{next} 改成 awk '$2 ~ /^/$|^\/proc|^\/sys|^\/dev/{next} 找 [ -f /proc/bus/usb/devices ] && umount /proc/bus/usb 改成 [ -f /sys/bus/usb/devices ] && umount /sys/bus/usb 5.找 rc.sysinit和/etc/rc.d/init.d/halt 中的所有 /proc/bus/usb 改成 /sys/bus/usb
2.ps/2鼠标设备从原来的/dev/psaux 改成 /dev/input/mice rm /dev/psaux ln -s /dev/psaux /dev/input/mice
3.USB模块名的更改 打开 /etc/rc.sysinit,找 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
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 2> /dev/null
action $"Initializing USB mouse: " modprobe mousedev 2> /dev/null
fi
改成
modprobe usbcore action $"Initializing USB controller (uhci-hcd): " modprobe uhci-hcd
usb=1
if [ $usb = 1 -a ! -f /sys/bus/usb/devices ]; then
action $"Mounting USB filesystem: " mount -t usbfs usbfs /sys/bus/usb
fi
needusbstorage=
if [ $usb = "1" ]; then
needusbstorage=`LC_ALL=C grep -e "^I.*Cls=08" /sys/bus/usb/devices 2>/dev/null`
action $"Initializing USB HID interface: " modprobe usbhid 2> /dev/null
action $"Initializing USB keyboard: " modprobe usbkbd 2> /dev/null
action $"Initializing USB mouse: " modprobe usbmouse 2> /dev/null
fi
ps: 2.6中模块名已经改了 usb_huic --> uhci-hcd ; uhci-hcd 是通用控制器/ ochi-hcd USB-1.1控制器 / ehci-hcd USB-2.0控制器 hid --> usbhid ;输入模块 keybdev --> usbkbd ;键盘模块 mousedev --> usbmouse ;鼠标模块 4.新增的声卡模块ALSA 1). 首先把Sound card support 以及 Advanced Linux Sound Architecture 里面的选项编译成模块(M) 2). 把 /etc/modprobe.conf 里有关声卡的选项除了 alias char-major-14-* soundcore 外都删除掉 ps:ALSA是需要soundcore的支持.通过命令modinfo soundcore 可以看到以下信息 description: Core sound module author: Alan Cox license: GPL alias: char-major-14-* vermagic: 2.6.13 PENTIUM4 REGPARM gcc-3.2 depends: srcversion: 6E1C8780DE9ADFFB5BCD439
3). 启动新内核后必须要安装 alsa-lib-1.0.9.tar.bz2 和 alsa-utils-1.0.9.tar.bz2 你可以到官方网站 http://www.alsa-project.org/ 下载。 cd /usr/src tar -jxvf alsa-lib-1.0.9.tar.bz2 tar -jxvf alsa-utils-1.0.9.tar.bz2 cd alsa-lib-1.0.9 ./configure;make;make install cd ../alsa-utils-1.0.9 ./configure;make;make install
4). 装完alsa-lib / alsa-utils 后就可以通过alsaconf来对声卡作设置 5). 用lsmod看到声卡模块被加载 6). 用alsamixer设置声卡音量 7). 测试声卡可以 aplay /usr/share/sounds/alsa/Front_Center.wav,终于能发声了,兴奋ing... . 重启内核后发现声卡模块可能无法正常加载, 可以在 /etc/rc.d/rc.local 加入 modprobe 声卡模块名 让内核启动时自动加载声卡 9). 有关 ALSA 的详细说明请在官方网站 http://www.alsa-project.org/alsa-doc/ 选上你声卡的型号查看
5.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.5 并把才句加入 /etc/bashrc 里面 再 rpm -q mkinitrd 看一下, 正常了。
6.CD-ROM 模块的改变 1). vi /etc/fstab 把
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
改成
/dev/hdc /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
2). mount /dev/hdc
spb就只能在R9上装的 并且 mount -t usbdevfs usbdevfs /proc/bus/usb 好象不对阿,因该是 mount -t usbfs usbfs /proc/bus/usb 并且2.6的usb鼠标需要 modprobe ehci-hcd modprobe ohci-hcd modprobe usbhid modprobe evdev modprobe parport modprobe parport_pc
|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
24 | 25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 |
|
常用链接
留言簿(55)
随笔分类
随笔档案
文章分类
相册
mplayer安装
U-Boot官方DULG
Useful Site
嵌入式Linux移植
搜索
最新评论
阅读排行榜
评论排行榜
|
|