|
楼主 |
发表于 2005-10-17 13:32:19
|
显示全部楼层
三. 在新内核里发现有不少的改变,如果要正常运行必须要做一些修改,
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 |
|