⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kerneld.txt

📁 linux-bible.rar linux-bible.rar
💻 TXT
📖 第 1 页 / 共 3 页
字号:
   /etc/conf.modules 里的一个路径项目会取代 所有 modprobe 内置的路径!      通常你是不用自己加上路径的,因为预设的路行将己照顾到所有正常的设定。我   可保证!      另一方面,如果你只想加入代号 (alias) 或者选项 (option directive),你在   /etc/conf.modules 的新项目会加入到 modprobe 所知的。如果你想再定义一个   代号或选择,你在 /etc/conf.modules 中的项目会凌驾预设那个。     区块设备     如果你执行 '/sbin/modprobe -c',你会得到一个 kerneld 已知的模组的名单及   它们所对应的要求。例如,导致载入软碟驱动程式的要求是主号码 (major   number) 是 2 的区块设备。  osiris:~ $ /sbin/modprobe -c | grep floppy  alias block-major-2 floppy   为什麽是 block-major-2?因为软碟设备 /dev/fd* 的主号码 (major number)   是 2 ,又是区块设备。  osiris:~ $ ls -l /dev/fd0 /dev/fd1  brw-rw-rw-   1 root     root       2,   0 Mar  3  1995 /dev/fd0  brw-r--r--   1 root     root       2,   1 Mar  3  1995 /dev/fd1  字元设备     字元设备的方法处理也差不多。例如 ftape floppy tape driver 的是   major-device 27:  osiris:~ $ ls -lL /dev/ftape  crw-rw----   1 root     disk      27,   0 Jul 18  1994 /dev/ftape   但 kerneld 本身并不知道 ftape 驱动程式,它不会在 '/sbin/modprobe -c' 的   结果中出现。      所以,要使 kerneld 载入 ftape 驱动程式,我要加一行到 kerneld 的设定档   /etc/conf.modules 中:  alias char-major-27 ftape  网络设备     你也可以用设备的名称来代替那些 'char-major-xxx' 或 'block-major-yyy' 设   定。这样对网络设备尤其有用,例如把 ne2000 网络卡用作 eth0 可以籍此载入  alias eth0 ne   如果你需要传递一些选项给你的驱动程式,例如告诉模组这网络卡使用什麽 IRQ   ,你可加上如下一 'options' 行:  options ne irq=5   这样会使 kerneld 用以下指令来载入 NE2000 驱动程式∶  /sbin/modprobe ne irq=5   当然,实际上所用的选项会因应所用模组而有所不同。     二元格式     二元格式也以相似的方法处理。每当你尝试执行一个核心不懂载入的程式   ,kerneld 便会收到一个 "binfmt-xxx" 的要求, xxx 是一个由档案开头数个字   元决定的数字。使 kerneld 为 ZMAGIC (a.out) 执行档载入 binfmt_aout 模组   的设定是:  alias binfmt-267 binfmt_aout   因为 ZMAGIC 档的幻数 (magic number) 是 267。(如果你查看 /etc/magic,你   会见到 0413 这个数字,但 /etc/magic 使用八进位数 (octal numbers) 而   kerneld 使用十进数 (decimal),而八进位的 413 即十进数的 267。)由於   a.out 格式共有三款稍为稍为不同的可执行档 (NMAGIC, QMAGIC and ZMAGIC),   要全面支援 binfmt_aout 模组我们需要  alias binfmt-264 binfmt_aout  # pure executable (NMAGIC)  alias binfmt-267 binfmt_aout  # demand-paged executable (ZMAGIC)  alias binfmt-204 binfmt_aout  # demand-paged executable (QMAGIC)   kerneld 可自动辨认 a.out, Java 和 iBCS 二元格式,毋须特别设定。     连线规则 (slip, cslip and ppp)     连线规则用 "tty-ldisc-x"来作要求,而 x 一般是 1 (slip) 或 3 (ppp)   。kerneld 本身都认识这两样。      说起 ppp,如果你想 kerneld 载入 bsd_comp 资料压缩模组,你需要加两行到   /etc/conf.modules 中:  alias tty-ldisc-3 bsd_comp  alias ppp0 bsd_comp  网络协定 (IPX, AppleTalk, AX.25)     部分网络协定也可以模组载入。核心要用到一个网络家族 (network family)(如   IPX)时,会向 kerneld 作出对一个类似 "net-pf-X" 的要求,而 X 是一个代表   所属家族的数字。例如 net-pf-3 是 AX.25,net-pf-4 是 IPX,而 net-pf-5 是   AppleTalk。(这些数字是由 linux 源程式档 include/linux/socket.h 中   AF_AX25, AF_IPX 的定义而来的。)故此要自动载入 IPX 模组,你要加一个类似   以下的项目到 /etc/conf.modules 中:  alias net-pf-4 ipx   也请阅读以下有关防止开机时出现关於未定义的协定的[31]常见问题。     档案系统     有关档案系统的 kerneld 要求就是档案系统的名称。一个常见的用途是为光碟载   入 isofs 的模组,例如 "iso9660" 档案系统:  alias iso9660 isofs     _________________________________________________________________   需要特别设定的设备   部分设备不只要使用代码 (aliasing),还要其他设定,如模组的设备 (a   device to a module)。     * 主数码 10 的字元设备:[32]杂项设备 (The miscellaneous devices)     * [33]SCSI 设备     * [34]需特别初始化 (initialization) 的设备         char-major-10:滑鼠、看门狗和随机数 (Mice, watchdogs and randomness)     大多数硬件设备都以主数码分辨,例如 ftape 是 char-major-27。但如果你看看   在 /dev 中主数码是 10 的字元设备,你会见到一堆毫无关连的设备,包括:     * 各种各样的滑鼠(bus mice, PS/2 mice)     * 看门狗设备 (watchdog devices)     * 核心的 'random' 设备     * APM 介面 (Advanced Power Management interface)          很明显,这些设备是由多个不同的模组控制的。所以,这些杂项设备的 kerneld   设定用到主号码及副号码 (the major number and the minor number):        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 <options>   只有 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 </usr/src/modules-2.0.0/kerneld/GOODIES/blanker_patch   之後重建安装新核心。      当萤幕保护程式启动时,kerneld 会执行 "/sbin/screenblanker" 指令。这可以   是一个执行你喜欢的萤幕保护程式的命令手稿 (shell script)。   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -