日期:2014-05-16  浏览次数:20773 次

高手指点linux内核驱动
问题是这样的,我的内核版本是linux-2.6.39
现在我要编译pppoe,pppox驱动模块
之前全部编译生成的driver/net/pppoe.ko(5123452 bit大小),driver/net/pppox.ko(321541 bit大小),pppoe只依赖pppox,pppox没有依赖其他模块,能够正常加载使用)(第一次编译make modules)

现在功能调整,要重新编译pppoe.c,pppoe.c,pppox.c与原来代码全部一样
只不过我通过make modules SUBDIRS=drivers/net也生成了pppoe.ko(470934 bit),pppox(315432 bit)同样的源码为什么生成的ko文件变小了呢?能够insmod上,但是使用中就出问题,请问是什么原因呢?pppox也没有依赖其他的啊,为什么变小了呢?

也就是通过make modules SUBDIRS=drivers/net变异的ko变小了,也不能正常使用



------解决方案--------------------
既然全部一样,为啥重新编译? 使用中啥问题?
------解决方案--------------------
不知原因

不过linux的make很智能,第二次make modules只会编译你修改了的文件,
你没有必要make modules SUBDIRS=drivers/net
------解决方案--------------------
你直接 make 或者 make modules 看看结果如何。
看起来像是内核配置的问题, 对比一下 .config 和之前的 .config 是否有差异。