Kuye 发表于 2002-12-5 23:56:36

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

此文应该对不想为了一个模块而编译全部模块的兄弟姐妹有一定帮助
感谢 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 :)

Romanx 发表于 2003-12-15 21:08:58

我还不懂喔!!

GGGO 发表于 2003-12-16 01:03:30

能不能解释一下那些gcc命令 :?:

delphi1977 发表于 2004-1-26 01:18:41

编译显卡驱动,也可这样吗?

cobranail 发表于 2004-1-26 04:39:03

好象麻烦了,
在内核没有太大改动的情况下,只执行make modules和make modules_install就行,我一直是这么作。

hangbing0203 发表于 2005-3-15 15:45:40

好象麻烦了,
在内核没有太大改动的情况下,只执行make modules和make modules_install就行,我一直是这么作。我还是看不懂 能不能详细一点    我是菜鸟
请问在什么目录下

hangbing0203 发表于 2005-3-15 15:49:34

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

此文应该对不想为了一个模块而编译全部模块的兄弟姐妹有一定帮助
感谢 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 :)      搞不懂 详细一点

Kuye 发表于 2005-3-16 17:59:56

好寒。。。上千年的文物被淘出来了。

明天来完善一下。现在下班了。。。:mrgreen:

fudaming 发表于 2005-4-26 11:11:39

:mrgreen::mrgreen:
2.6内核的reiserfs模块编译,实在不想整个来一遍。找到了src包,AS4的。

解开了,然后rpmbuild -bp --target=i686 ×.spec,得到源码。
页: [1]
查看完整版本: [转] 只编译内核里面的一个模块的方法。:D