内核_如何加载自己写的模块[ZT]
来源:互联网 发布:飞秋2017 mac 编辑:程序博客网 时间:2024/05/10 04:33
以NTFS为例子,可参考。
当你安装完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。
二、修改.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目录下,手动将它复制到正确的目录下。
这里的2.2.16-22是你的linux核心的版本号,请注意。
注意:千万不能运行命令make modules_install,否则将带来严重的后果,它会删除你系统中的所有模块,只安装刚刚编译的模块(ntfs.o)。
五、载入NTFS模块.
运行命令depmod;modprobe ntfs 试着访问你的NTFS文件系统吧,祝你成功!
有些模块依赖于你的系统内核,所以不适用本文所提供的方法。还有些模块和其他模块有依赖关系。如果你不熟悉这些依赖关系的话,建议你在第二步去掉不用的模块选项后,通过make menuconfig来加上自己想要的模块。
写此文时我用的系统是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/
这里的2.2.16-22是你的linux核心的版本号,请注意。
注意:千万不能运行命令make modules_install,否则将带来严重的后果,它会删除你系统中的所有模块,只安装刚刚编译的模块(ntfs.o)。
五、载入NTFS模块.
运行命令depmod;modprobe ntfs 试着访问你的NTFS文件系统吧,祝你成功!
有些模块依赖于你的系统内核,所以不适用本文所提供的方法。还有些模块和其他模块有依赖关系。如果你不熟悉这些依赖关系的话,建议你在第二步去掉不用的模块选项后,通过make menuconfig来加上自己想要的模块。
- 内核_如何加载自己写的模块[ZT]
- 自己写freebsd的内核防火墙模块
- 编译一个自己的内核模块,并加载进内核
- 如何把一个自己写的外部驱动模块编译添加到内核中 来自网络
- 模块是如何加载到内核的
- Linux内核如何加载编译进内核的模块
- 内核模块的加载
- 如何把自己的驱动编译进内核或模块
- 如何把自己的模块编译到内核中
- 如何把自己的驱动编译进内核或模块 .
- 如何把自己的驱动编译进内核或模块
- 如何把自己的驱动编译进内核或模块
- 如何把自己的驱动编译进内核或模块
- 如何把自己的驱动编译进内核或模块
- 如何把自己的驱动编译进内核或模块
- 如何把自己的驱动编译进内核或模块
- 在Linux 2.6内核下编译可以加载的内核模块_转载
- Lua:如何将自己写的模块加入环境中
- 本人博客文章阅读说明
- 如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置
- 朋友推荐的web UI 框架
- JavaScript 中美元符号 $ 是什么
- C语言堆栈入门——堆和栈的区别
- 内核_如何加载自己写的模块[ZT]
- 通用网站系统漏洞及修复方法
- 常用htaccess.文件配置,轻松上手
- 集群神器——terracotta与各种框架的整合
- 冷山的博客思听书摘索引页
- 在VC中调用fortran生成的dll
- TCP协议握手OPTION字段解析及其应用 | 本真心灵
- 使用Qt设计师(Qt Designer)快速设计窗体
- 关于MYSQL持久连接