kerneld mini-HOWTO(2)
2008-02-23 07:23:36来源:互联网 阅读 ()
# Start kerneld - this should happen very early in the
# boot process, certainly BEFORE you run fsck on filesystems
# that might need to have disk drivers autoloaded
if [ -x /sbin/kerneld ]
then
/sbin/kerneld
fi
# Your standard fsck commands go here
# And you mount command to mount the root fs read-write
# Update kernel-module dependencies file
# Your root-fs MUST be mounted read-write by now
if [ -x /sbin/depmod ]
then
/sbin/depmod -a
fi
第一部分启动 kerneld。
第二部分开始时执行 'depmod -a'。depmod 建立所有可找到的模组的清单及分析它们之间互相依赖的情况。所以,它会知道载入一个模组前是否需要先载入其他模组。
注意∶最新版本的 kerneld 可选择链结 (link) GNU 的 dbm 程式库 libgdbm。如果在编译 module-utilities 时作了此抉择,找不到 libgdbm 时 kerneld 便不能启动。这很有可能当 /usr 在另一个磁碟分区 (partition),而企图在挂 (mount) /usr 前启动 kerneld 时发生。建议的解决方法是把 libgdbm 从 /usr/lib 移到 /lib,或静态连结 kerneld (link kerneld statically)。
之後,你要把核心的源程式解压,设定及建立一个你喜欢的核心。如果你未试过这样做,你必须阅读在 Linux 源程式码顶层目录 (top directory) 中的 README 档。在执行 make config 设定核心时,你要注意数条在早期出现的问题:
Enable loadable module support (CONFIG_MODULES) [Y/n/?] Y
你要选择 loadable module support,否则根本不会有模组让 kerneld 载入。答 Yes。
Kernel daemon support (CONFIG_KERNELD) [Y/n/?] Y
当然,这也是需要的,很多东西都可建立为模组。你会见到类似的问题:
Normal floppy disk support (CONFIG_BLK_DEV_FD) [M/n/y/?]
你可回答 'M' 来代表模组。通常只有开机时必须的驱动程式,如硬碟机驱动程式,和根目录的档案系统等必需建立在核心中。其他皆可建立为模组。
完成 'make config' 後,执行 'make dep', 'make clean', 'make zImage' 或 'make zlilo', 'make modules' 和 'make modules_install'。
成功!
'make zImage' 会把你的新核心映像 (kernel image) 放到 arch/i386/boot/zImage。你要把它拷贝到你放置启动映像的地方或用 LILO 安装它。
想得到更多有关设定,建立及安装核心部分的资料,请阅读定时贴上 comp.os.linux.answers 的Kernel-HOWTO ,你也可在 sunsite.unc.edu 的 /pub/Linux/docs/HOWTO 找到它。(译按:中文版可在 http://www.linux.org.tw/CLDP/Kernel-HOWTO.html找到。)
--------------------------------------------------------------------------------
试用 kerneld
现在你可用新的核心部分开机。在系统启动後,执行 'ps -ax',你应该会见到 kerneld 的一行:
PID TTY STAT TIME COMMAND
59 ? S 0:01 /sbin/kerneld
kerneld 其中一个好处是只要你有所需的核心及安装好监控程式,你只需作很少设定。现在,你可尝试用一个建立成模组的驱动程式—它多数会不需再作设定而能使用。我把软磁碟的驱动程式建立成模组,所以我放入一只 DOS 磁碟及
osiris:~ $ mdir a:
Volume in drive A has no label
Volume Serial Number is 2E2B-1102
Directory for A:/
binuti~1 gz 1942 02-14-1996 11:35a binutils-2.6.0.6-2.6.0.7.diff.gz
libc-5~1 gz 24747 02-14-1996 11:35a libc-5.3.4-5.3.5.diff.gz
2 file(s) 26689 bytes
即是说软磁碟的驱动程式运作正常—当我尝试使用软磁碟时,它被自动载入。
要看到软磁碟的模组真的被载入,你可执行 /sbin/lsmod,它会列出现时载入了的模组。
osiris:~ $ /sbin/lsmod
Module: #pages: Used by:
floppy 11 0 (autoclean)
"(autoclean)" 代表如果有一分钟没用此模组,它就会被 kerneld 自动移走。所以,那 11 页记忆体(44 kB,一页等於 4kB)只会在我使用软碟机时被占用。如果我一分钟不用软碟,它会被释放。如果你的记忆体不敷应用,这就太棒了!
--------------------------------------------------------------------------------
kerneld 如何知道该载入什麽模组?
虽然 kerneld 本身对常用的模组有所认识,有时它会不知如何应付核心提出的要求。例如光碟机驱动程式或网络驱动程式等可能需要超过一个模组的情形。
kerneld 从核心部分会收到以下种类的要求:
区块设备驱动程式 (a block-device driver)
字元设备驱动程式 (a character-device driver)
二元格式 (a binary format)
tty 连线规则 (a tty line discipline)
档案系统 (a filesystem)
网络设备 (a network device)
网络服务 (a network service),如 rarp
网络协定 (a network protocol),如 IPX
kerneld 从架构档案 (configuration file) /etc/conf.modules 中得知有什麽模组需要载入。这里有两类项目:路径 (paths)(模组档案的位置)和代号 (aliases)(要载入什麽模组)。如果你未有此档,你可用以下方法自己制造:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Bzip2 Howto
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
