linux ppp 编译,100分,100分,linux ppp内核驱动

哪位兄弟,小弟有个问题不解,我在现在要编译linux-2.6.29下面drivers/net下的pppoe.ko,pppox.ko,这是ppp驱动

之前编译的pppoe.ko,pppox.ko能正常使用(就是make modules)

而后我觉得全部编译太久了,于是

make modules SUBDIRS=driver/net

也编译出来了pppoe.ko,pppox.ko,

但是pppox.ko,pppoe.ko变小了,也不能正常使用,求高手指点是什么原因呢?

dmesg

83.569987] kobject: 'pppoe' (ffffffffa02182f0): kobject_uevent_env

[   83.570006] kobject: 'pppoe' (ffffffffa02182f0): fill_kobj_path: path = '/module/pppoe'

[   83.576395] BUG: unable to handle kernel NULL pointer dereference at           (null)

[   83.576401] IP: [] pppoe_init_net+0x1f/0x70 [pppoe]

[   83.576406] PGD 36fbc067 PUD 1c39b067 PMD 0

[   83.576409] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC

[   83.576412] last sysfs file: /sys/devices/pci0000:00/0000:00:10.0/host2/target2:0:0/2:0:0:0/uevent

[   83.576415] CPU 0

源码版本都是2.6.39啊

只不过第一次是通过make modules产生(等了两个小时)

第二次make modules SUBDIRS=driver/net产生

net下有pppoe.c,pppox.c

求支教什么原因呢?

|

2.6内核与2.4不同,

编译过程

1、首先会到内核源码目录下,读取顶层的Makefile文件,需要链接一个vermagic.o,其中包含目标内核版本信息、编译器版本信息、及一些配置变量的设置。模块版本号的确定

2、然后再返回模块源码所在目录。

modinfo drivers/net/pppox.ko

查看vermagic是否与`uname -r`一致?如果不一致说明没有连接vermagic.o

编译时,指定版本号,试试

make prepare

cp /boot/config-2.6.xx .config

make modules_prepare

make -C /lib/modules/`uname -r`/build SUBDIRS=drivers/net modules

不过你的dmesg给出的信息似乎并不是由两种不同的编译引起的,是引用 NULL 指针引起的。

|

是否跟其他模块有关联,看一下Kconfig跟Makefile

新旧的ko加载后lsmod对比下,是不是有其他模块也加载了。

慢编译慢,安装ccache,第一次编译后,以后编译就会相当快了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值