kerneld mini-HOWTO(4)
2008-02-23 07:23:36来源:互联网 阅读 ()
alias char-major-10-1 psaux # For PS/2 mouse
alias char-major-10-130 wdt # For WDT watchdog
要用到此特性,你需要一个 1.3.82 或之後的核心部分。较旧的核心不会把副号码传给 kerneld,因此,kerneld 不能找出所需要的杂项设备。
载入 SCSI 驱动程式: scsi_hostadapter 项目
SCSI 设备包括一个 SCSI 配接卡 (SCSI host adapter, 例如 Adaptec 1542)及一个所需设备(如硬碟机 (hard disk)、光碟机 (CD-ROM) 或磁带机 (tape-drive))的驱动程式。这全都可以模组来载入。但是,当你想存取连接到 Adaptec 卡的光碟机时,核心和 kerneld 只知道它需要载入 sr_mod 模组来支援那 SCSI 光碟机—它不知道那光碟机连接到什麽 SCSI 控制器 (SCSI controller),所以不知道载入什麽模组来支援那光碟机。
要解决这问题,你可加一个你的 SCSI 驱动程式的项目到你的 /etc/conf.modules 中,籍以告诉 kerneld 如何在众多 SCSI 控制器模组中选择:
alias scd0 sr_mod # sr_mod for SCSI CD-ROM's ...
alias scsi_hostadapter aha1542 # ... need the Adaptec driver
这只适用於 1.3.82 或之後的核心。
这方法只当你只用一个 SCSI 控制器时适用。如果你有超过一个,难度就高一点。
一般来说,如果已经载入了一个配接器,你不能再叫 kerneld 载入另一个。你可把两个都编译到核心中(不用模组),或自己把模组载入。
事实上,有一个方法可使 kerneld 载入多个 SCSI 驱动程式。James Tsiao 有以下提议:
只要你亲手建立 modules.dep 的倚赖 (dependency),你可很轻易使
得 kerneld 载入第二个 SCSI 驱动程式。你只需一个类似的项目:
/lib/modules/2.0.30/scsi/st.o: /lib/modules/2.0.30/scsi/aha1542.o
来使 kerneld 在载入 st.o 前先载入 aha1542.o。我家中的电脑就使用
了几乎相同的设定,对我所有二级 SCSI 设备 (secondary scsi devices),
包括磁带机、光碟机和其他一般的 SCSI 设备都没问题。缺点是
'depmod -a' 不能自动查出这些倚赖,所以你要自己加入这些,而且不
可在开机时执行 'depmod -a'。但只要设定好了,kerneld 就能自动载入
aha1542.o。
你要知道这技考只当你有不同种类的 SCSI 设备接驳在两个控制器时才有用,例如,把硬碟驳在其中一个,而把光碟机、磁带或其他 SCSI 驳到另一个。
要载入超过一个模组时:“post-install”项目
有时,只把模组载入不足以使设备运作。例如,如果你把音效卡编译为模组,你也会希望调整至适当音量。问题题你的设定在下次载入时便会失去。这里是由 Ben Galliart (bgallia@luc.edu) 提供的秘诀:
最终的解决方法需要安装 setmix-0.1
( ftp://sunsite.unc.edu/pub/Linux/apps/sound/mixers/setmix-0.1.tar.gz )
之後把以下一行加到我的 /etc/conf.modules:
post-install sound /usr/local/bin/setmix -f /etc/volume.conf
这样,当音效的模组载入後,kerneld 会执行 'post-install sound' 项目的指令。因此该模组会被 '/usr/local/bin/setmix -f /etc/volume.conf 指令设定好。
这方法对其他模组也有用,例如 lp 模组可籍以下一句用 tunelp 程式设定好:
post-install lp tunelp
只有 1.3.69f 版或之後的 kerneld 才支援这些选项。
注意: :此 mini-HOWTO 的较旧版本曾提及一个 "pre-remove" 选项,让你可在 kerneld 卸下一个模组时执行一个指令。但这从未成功,因此并不鼓励使用。这个选项多数会在未来版本的 kerneld 中消失。所有有关模组 "设定" 的事情都在改变中,在你看到这文件时,可能已有所不同了。
--------------------------------------------------------------------------------
侦察 kerneld
如果你什麽方法都已试过,但仍找不出核心在要在 kerneld 做什麽,你可用一个方法找出 kerneld 收到什麽要求,从而知道该加什麽到 /etc/conf.modules。你需要 kdstat 程式。
这个好用的程式已包括在 modules-package 中,但预定是不会编译及安装的。你可用以下方法建立它:
cd /usr/src/modules-2.0.0/kerneld
make kdstat
之後,要使 kerneld 显示它正在做什麽,执行
kdstat debug
kerneld 便会开始在主控台印出其工作的资料。当你执行所需的指令时,你会见到 kerneld 收到的要求。这些要求可放到 /etc/conf.modules 中,加上所需模组的别名 (alias),便可使工作完成。
要停止除错时,执行 '/sbin/kdstat nodebug'。
--------------------------------------------------------------------------------
kerneld 的特殊用途
我知道你想问如何设定萤幕保护程式 (screensaver) 的模组…
modules-package 的 'kerneld/GOODIES' 目录中有一些和萤幕保护程式及主控台哔声支援有关的核心修补 (kernel patches)。它们尚未在官方的核心出现。所以你要自行修正及重新编译核心。
要安装修补,你要用 "patch" 指令:
cd /usr/src/linux
patch -s -p1
之後重建安装新核心。
当萤幕保护程式启动时,kerneld 会执行 "/sbin/screenblanker" 指令。这可以是一个执行你喜欢的萤幕保护程式的命令手稿 (shell script)。
在核心想重绘萤幕时,它会送出一个 SIGQUIT 讯号到正执行 /sbin/screenblanker 的行程 (process)。你的命令稿或萤幕保护程式要捕捉 (trap) 这讯号及结□。记著之後还要把萤幕还原到原本的文字模式 (text mode)。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系: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
