Linux内核编译全过程详解(kernel2.6.7)

http://tech.ddvip.com   2007年03月05日    社区交流

本文详细介绍Linux内核编译全过程详解(kernel2.6.7)

  #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/updates/9/en/os/i386/glibc-2.3.2-27.9.i386.rpm。

  可以连同以下几个软件包一起升级:

  ftp://ftp.rpmfind.net/linux/redhat/updates/9/en/os/i386/glibc-common-2.3.2-27.9.i386.rpm

  ftp://ftp.rpmfind.net/linux/redhat/updates/9/en/os/i386/glibc-devel-2.3.2-27.9.i386.rpm

  ftp://ftp.rpmfind.net/linux/redhat/updates/9/en/os/i386/glibc-utils-2.3.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_*)一项,其值就是该模块的名字。

来源:Linux公社    责编:豆豆技术应用

正在加载评论...