传统编译内核模块的方法繁琐而费时,本文将告诉我们一种快速编译所需要内核模块的新方法。当您安装完Linux系统,并且已启动,恭喜您!假如您的硬盘上还安装了WinNT/2000系统,您试图去访问另一个NTFS分区时却碰到了麻烦。因为您所用的Linux系统没有已编译的支持NTFS文档系统的模块。怎么办?也许您会运行make menuconfig,重新定制您需要的任何模块,接着运行make modeules;make modeules_install来安装。这样不但繁琐、费时,还可能会出现问题。或因为编译内核对您有些棘手,太多的选择让您手足无措,您根本没有太好的方法。本文给您提供一个简单的方法,您能够轻松地去编译您所需要的支持NTFS系统的模块(ntfs.o)。以此为例,但愿对您编译其他模块有所帮助。
写此文时我用的系统是Red Hat Linux Release 7.0 (Guinness) Kernel 2.2.16-22 on an i686。从一个新安装的系统开始,我们一起去编译一个自己想要的支持NTFS文档系统模块。
一、找到编译内核所需要的.config文档
在/usr/src/linux/configs目录下有若干编译内核所用的配置。选择我们想要的配置,将他复制到/usr/src/linux目录下,改名为.config。
cp /usr/src/linux/configs/kernel-2.2.16-i686.config /usr/src/linux/.config
二、修改.config文档,去掉不用的模块,加上自己想要的模块
打开.config,有许多XXXX=m的项,这些都是要被编译为模块的项,因为我们不希望编译这些模块,所以要把XXXX=m的项统统去掉。然后再加上我们想要的模块,将# CONFIG_NTFS_FS is not set 改为CONFIG_NTFS_FS=m 当然,能够用您熟悉各种工具来做这件事。
三、编译NTFS模块
在/usr/src/linux目录下运行命令make modules来编译我们想要的NTFS模块。
四、安装NTFS模块
编译后得到的ntfs.o在/usr/src/linux/fs/ntfs目录下,手动将他复制到正确的目录下。
cp /usr/src/linux/fs/ntfs/ntfs.o /lib/modules/2.2.16-22/fs/
注意:千万不能运行命令make modules_install,否则将带来严重的后果,他会删除您系统中的任何模块,只安装刚刚编译的模块(ntfs.o)。
五、载入NTFS模块
运行命令depmod;modprobe ntfs 试着访问您的NTFS文档系统吧,祝您成功!
有些模块依赖于您的系统内核,所以不适用本文所提供的方法。更有些模块和其他模块有依赖关系。假如您不熟悉这些依赖关系的话,建议您在第二步去掉不用的模块选项后,通过make menuconfig来加上自己想要的模块。我用此方法用了三分钟编译了支持NTFS文档系统的模块,您呢?
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




