📄 three.txt
字号:
首
页
| 新闻动态 | 基本教程 | 网络教程 | 精品文章 | 软件下载 | Linux内核 | java专区 | C语言编程 | PHP 编程 | MY SQL | linux相册
| 嵌入应用 | 英汉词典 | 认证信息 | 风云人物 合作伙伴:eNet下载 中国Linux教育网 zhaolinux QQ群:271585997
首页>Linux 内核>正文
Linux内核编译实战
来源:Linux应用基站 责任编辑:gjb1021 作者: 日期:2006-5-9 6:39:01 点击次数:992
needusbstorage=
if [ $usb = "1" ]; then
needusbstorage=`LC_ALL=C grep -e "^I.*Cls=08" /sys/bus/usb/devices 2>/dev/null`
action $"Initializing USB 1.1 host controller: " modprobe ohci-hcd 2> /dev/null
action $"Initializing USB HID interface: " modprobe hid 2> /dev/null
action $"Initializing USB keyboard: " modprobe usbkbd 2> /dev/null
action $"Initializing USB mouse: " modprobe usbmouse 2> /dev/null
fi
如果USB总线是2.0的,还需将“ohci-hcd”改为“ehci-hcd”。
5)Sysfs问题
解决方法是:
◆ 建立目录/sys:#mkdir /sys
◆ 在/etc/rc.d/rc.sysinit文件中找到“mount -f /proc”,在其下一行加入“mount -f /sys”。
◆ 同样在/etc/rc.d/rc.sysinit文件中找到“action $"Mounting proc filesystem: " mount -n -t proc /proc /proc”,在其下一行加入“action $"Mounting sysfs filesystem: " mount -n -t sysfs /sys /sys”。
◆ 在/etc/fstab文件中加入“none /sys sysfs defaults 0 0”。
◆ 在/etc/init.d/halt的halt_get_remaining函数中找到“awk '$2 ~ /^\/$|^\/proc|^\/dev/{next}”,改为“awk '$2 ~ /^\/$|^\/proc|^\/sys|^\/dev/{next}”。
6)Hotplug(热插拔)问题
内核对热插拔功能的支持与KMOD内核线程有关。
解决方法是将/etc/rc.sysinit中所有的/proc/ksyms替换为/proc/kallsyms。执行如下命令:
#mv /etc/rc.d/rc.sysinit /etc/rc.d/rc.sysinit.bak
#sed -e 's/\/proc\/ksyms/\/proc\/kallsyms/g' /etc/rc.d/rc.sysinit.bak > /etc/rc.d/rc.sysinit
7)Glibc问题
用户可以升级Glibc标准库的软件包来解决该问题。因为有些发行版,例如Red Hat 9.0上默认安装的Glibc可能是被Red Hat内核小组修改过的。软件包的下载地址是:
ftp://ftp.rpmfind.net/linux/redhat/...27.9.i386.rpm。
可以连同以下几个软件包一起升级:
ftp://ftp.rpmfind.net/linux/redhat/...2-27.9.i386.rpm
ftp://ftp.rpmfind.net/linux/redhat/...2-27.9.i386.rpm
ftp://ftp.rpmfind.net/linux/redhat/...2-27.9.i386.rpm
如果使用“rpm -Uvh glibc*”失败,请用命令“rpm -e”先删除旧的Glibc,然后用命令“rpm -Uvh --force glibc*”强制安装。
其它问题
大家也许还会遇到其它问题,但是无论遇上什么问题都可以依照下列步骤尝试解决:
1.内核组件尽可能编译为模块。执行如下命令可以快速重建内核:
#make all modules_install install
2.软件失败的大多数情况是由于模块名已被更改,而/etc/rc.d/rc.sysinit和/etc/rcX.d/*下的脚本却没有修改这些值而导致的。因此,依次修改相关条目可以改进,但是这也需要相当多的背景知识。如果觉得麻烦,可以把所有加载模块的命令集中在/etc/rc.d/rc.local中。例如:
modprobe eth0
modprobe isofs
modprobe loop
modprobe vfat
同时修改/etc/modoribe.conf文件。具体可参见“man modoribe.conf”获得更多的帮助信息。
3.如果想知道某模块变更后的名字,可以首先在“make menuconfig”时找到该选项,选择Help找到它的配置名称(CONFIG_*),然后到源代码相关目录下的makefile中寻找CONFIG_*。一般可以找到obj-$(CONFIG_*)一项,其值就是该模块的名字。
本新闻共3页,当前在第3页 1 2 3
发
表
评
论
会员名称: 密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
查看评论
显
示
评
论
作者笔名 简单内容(共0个评论) 查看全部内容 发表日期
打印本页 关闭窗口
linux吧学习交流网版权所有 Copyright 2005-2008 陇ICP备05005178号 QQ联系方式:391661813 [本站统计]
英 汉 词 典
位运算符
字面值
变量
成员
强制转换
八进制
声明
域
垃圾回收
更多...
Linux 风云人物
一个高级黑客给黑客同胞们的
十大超级老牌黑客:莫里斯
十大超级老牌黑客之:卡普尔
十大超级老牌黑客之:雷蒙德
十大超级老牌黑客之:米特尼
十大老牌黑客之:约翰.德拉浦
十大老牌黑客之:斯托曼
十大超级老牌黑客:丹尼斯.利
十大老牌黑客之:沃兹尼克
十大超级老牌黑客之:李纳斯
更多...
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -