当然,这也是需要的,很多东西都可建立为模组 。你会见到类似的问题:
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 STATTIME 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-199611:35a binutils-2.6.0.6-2.6.0.7.diff.gz
libc-5~1 gz24747 02-14-199611:35a libc-5.3.4-5.3.5.diff.gz
2 file(s)26689 bytes
即是说软磁碟的驱动程式运作正常—当我尝试使用软磁碟时,它被自动载入 。
要看到软磁碟的模组真的被载入,你可执行 /sbin/lsmod,它会列出现时载入了的模组 。
osiris:~ $ /sbin/lsmod
Module:#pages:Used by:
floppy110 (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)(要载入什麽模组) 。如果你未有此档,你可用以下方法自己制造:
/sbin/modprobe -c | grep -v "^path" >/etc/conf.modules
如果你想加多一个路径到预定路径中,你必须包括所有现有的路径 。因为在 /etc/conf.modules 里的一个路径项目会取代 所有 modprobe 内置的路径!
推荐阅读
- Zip Drive Mini-HOWTO
- Soundblaster 16 PnP Mini-Howto 如何在Linux设定16位P
- 新闻 Leafsite mini-HOWTO
- 使用LILO做为Win95+WinNT+Linux多重开机 mini-HOWTO
- LINUX modules 模块安装 MINI-HOWTO
- Linux + NT OS Loader mini-HOWTO
- The RCS MINI-HOWTO
- Linux+FreeBSD mini-HOWTO
- The Linux+DOS+Win95 mini-HOWTO
- Large Disk mini-HOWTO 大硬盘