免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1500 | 回复: 2
打印 上一主题 下一主题

如何在linux下单独编译一个模块??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-20 19:09 |只看该作者 |倒序浏览
因为刚刚换了一个linux操作系统,想用刻录机,但没有ide_scis模块。
那位兄弟单独编译过一个模块请指教。在网上也找了一些如:



最初由 FlawZero 发布
发信人: reden (鱼 ~ 憧憬着风花雪月), 信区: Linux
标 题: Linux 下编译Kernel的误区!
发信站: BBS 水木清华站 (Mon Sep 21 00:32:54 199

现在大家一般碰到什么网卡找不到, 鼠标,或其它硬件问题,
通常是重新编译Kernel, 这样速度慢,不是最好的方法!

如果你的Kernel 配置支持Modules的话,解决那些问题是比较简单的

只要编译那些.o文件就可以啦.

比如我的声卡经常Irq 和 IO 不对, 我就到 /usr/src/linux/drivers/sound目录下.

gcc -o configure configure.c
./configure

选好IO,IRQ 等等,
make
cp sound.o /lib/modules/2.0.34/misc

rmmod sound
insmod sound init_trace=1
测试一下.
直到成功为止.

这样可比在 /usr/src/linux 下, make menuconfig ;
make dep;make clean;make zImage;.... 好多了.



谢谢!

论坛徽章:
0
2 [报告]
发表于 2004-12-20 20:13 |只看该作者

如何在linux下单独编译一个模块???

大哥大姐???

论坛徽章:
0
3 [报告]
发表于 2004-12-21 15:11 |只看该作者

如何在linux下单独编译一个模块???

终于找到了一个方法:
为你的Linux快速编译所需要的模块
2004-12-21 15:09:00
刘军民 (fancao0515@0451.com)
2001 年 5 月

传统编译内核模块的方法繁琐而费时,本文将告诉我们一种快速编译所需要内核模块的新方法。

当你安装完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文件系统的模块,你呢?

作者简介
刘军民,海辰天泽公司的工程师(www.hisen.com),源码开放运动的追随者,业余时间喜欢用写程序打发时光。您可以通过电子邮件 fancao0515@0451.com与他联系

我没有用以上的方法是直接修改的.config文件后make ; make modules_install; make install

ok
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP