QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2883|回复: 8

[转] 只编译内核里面的一个模块的方法。:D

[复制链接]
发表于 2002-12-5 23:56:36 | 显示全部楼层 |阅读模式
此文应该对不想为了一个模块而编译全部模块的兄弟姐妹有一定帮助
感谢 dooom 兄辛苦实践
---------------------------------------------------------------------
只编译内核里面的一个模块的方法。:D

我看到很多版上都有兄弟问这个问题,我在这里解释一下。我想对于天天和内核打交道的DIYers来说应该非常有用。

具体做法如下。
1。解压缩内核。如:
tar -zxvf kenerl-source.tar.gz

2。进行CONFIGURE设定。
make menuconfig
(MAKE XCONFIG经常不正常工作,这个文本格式的没有问题。)

3。建立依赖关系。
make dep

4。编译一个内核模块。
例如我们要编译SCYLD这个驱动。进入SCLYD源码的目录。
cd /usr/src/linux/scyld

gcc -D__KERNEL__ -DMODULE -I/usr/src/linux/include/ -O3 -c 3c59x.c

or

gcc -D__KERNEL__ -DMODULE -I/usr/src/linux/include/ \
-Wall -Wstrict-prototypes -O3 -c 3c59x.c

or

gcc -D__KERNEL__ -DMODULE -I/usr/src/linux/include/ \
-Wall -Wstrict-prototypes \
-include/usr/src/linux/include/linux/modversions.h -DMODVERSIONS -O3 -c 3c59x.c

如果你遇到VERSION。H的错误,时时这个:
cd /usr/src/linux, make include/linux/version.h

其他模块的编译照猫画虎就可以了。

GOOD LUCK :)
发表于 2003-12-15 21:08:58 | 显示全部楼层
我还不懂喔!!
回复

使用道具 举报

发表于 2003-12-16 01:03:30 | 显示全部楼层
能不能解释一下那些gcc命令
回复

使用道具 举报

发表于 2004-1-26 01:18:41 | 显示全部楼层
编译显卡驱动,也可这样吗?
回复

使用道具 举报

发表于 2004-1-26 04:39:03 | 显示全部楼层
好象麻烦了,
在内核没有太大改动的情况下,只执行make modules和make modules_install就行,我一直是这么作。
回复

使用道具 举报

发表于 2005-3-15 15:45:40 | 显示全部楼层
[quote:4f11681c1f="cobranail"]好象麻烦了,
在内核没有太大改动的情况下,只执行make modules和make modules_install就行,我一直是这么作。[/quote]我还是看不懂 能不能详细一点    我是菜鸟  
请问在什么目录下
回复

使用道具 举报

发表于 2005-3-15 15:49:34 | 显示全部楼层

Re: [转] 只编译内核里面的一个模块的方法。:D

[quote:3fac0a555e="Kuye"]此文应该对不想为了一个模块而编译全部模块的兄弟姐妹有一定帮助
感谢 dooom 兄辛苦实践
---------------------------------------------------------------------
只编译内核里面的一个模块的方法。:D

我看到很多版上都有兄弟问这个问题,我在这里解释一下。我想对于天天和内核打交道的DIYers来说应该非常有用。

具体做法如下。
1。解压缩内核。如:
tar -zxvf kenerl-source.tar.gz

2。进行CONFIGURE设定。
make menuconfig
(MAKE XCONFIG经常不正常工作,这个文本格式的没有问题。)

3。建立依赖关系。
make dep

4。编译一个内核模块。
例如我们要编译SCYLD这个驱动。进入SCLYD源码的目录。
cd /usr/src/linux/scyld

gcc -D__KERNEL__ -DMODULE -I/usr/src/linux/include/ -O3 -c 3c59x.c

or

gcc -D__KERNEL__ -DMODULE -I/usr/src/linux/include/ \
-Wall -Wstrict-prototypes -O3 -c 3c59x.c

or

gcc -D__KERNEL__ -DMODULE -I/usr/src/linux/include/ \
-Wall -Wstrict-prototypes \
-include/usr/src/linux/include/linux/modversions.h -DMODVERSIONS -O3 -c 3c59x.c

如果你遇到VERSION。H的错误,时时这个:
cd /usr/src/linux, make include/linux/version.h

其他模块的编译照猫画虎就可以了。

GOOD LUCK :)[/quote]      搞不懂 详细一点
回复

使用道具 举报

 楼主| 发表于 2005-3-16 17:59:56 | 显示全部楼层
好寒。。。上千年的文物被淘出来了。

明天来完善一下。现在下班了。。。  
回复

使用道具 举报

发表于 2005-4-26 11:11:39 | 显示全部楼层
  
2.6内核的reiserfs模块编译,实在不想整个来一遍。找到了src包,AS4的。

解开了,然后rpmbuild -bp --target=i686 ×.spec,得到源码。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-14 16:42 , Processed in 0.168909 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表