Chinaunix首页 | 论坛 | 博客
  • 博客访问: 327844
  • 博文数量: 113
  • 博客积分: 2239
  • 博客等级: 大尉
  • 技术积分: 1280
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-20 20:51
文章分类

全部博文(113)

文章存档

2015年(6)

2014年(15)

2013年(1)

2012年(91)

我的朋友

分类: LINUX

2012-07-01 15:29:46

http://www.linuxidc.com/Linux/2012-02/53265.htm

新升级linux到3.2.2 发现编译bcm4312驱动出错 错误信息如下:

CC [M] /home/liu/document/hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_linux.o


/home/liu/document/hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_linux.c:388:2: 错误:初始值设定项里有未知的字段‘ndo_set_multicast_list’
/home/liu/document/hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_linux.c:388:2: 警告:从不兼容的指针类型初始化 [默认启用]
/home/liu/document/hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_linux.c:388:2: 警告:(在‘wl_netdev_ops.ndo_validate_addr’的初始化附近) [默认启用]
make[2]: *** [/home/liu/document/hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_linux.o] 错误 1
make[1]: *** [_module_/home/liu/document/hybrid-portsrc_x86_32-v5_100_82_112] 错误 2
make[1]: 离开目录“/usr/src/kernels/3.2.2-1.fc16.i686.PAE”
make: *** [all] 错误 2


对比之前3.1.9的内核文件 /lib/modules/3.1.9-1.fc16.i686.PAE/source/include/linux/netdevice.h 和3.2.2中的文件,

发现结构体net_device_ops中少了ndo_set-multicast_list成员。

把驱动中388行注解掉,重新编译,提示:


/home/liu/document/hybrid-portsrc_x86/src/wl/sys/wl_linux.c:1730:1: 警告:‘wl_set_multicast_list’定义后未使用 [-Wunused-function]
CC [M] /home/liu/document/hybrid-portsrc_x86/src/wl/sys/wl_iw.o
CC [M] /home/liu/document/hybrid-portsrc_x86/src/wl/sys/wl_cfg80211.o
LD [M] /home/liu/document/hybrid-portsrc_x86/wl.o
Building modules, stage 2.
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
MODPOST 1 modules
WARNING: modpost: missing MODULE_LICENSE() in /home/liu/document/hybrid-portsrc_x86/wl.o
see include/linux/module.h for more information
CC /home/liu/document/hybrid-portsrc_x86/wl.mod.o
LD [M] /home/liu/document/hybrid-portsrc_x86/wl.ko
make[1]: 离开目录“/usr/src/kernels/3.2.2-1.fc16.i686.PAE”

挂载好驱动后,无线网工作正常。

再次google后发现 ndo_set_multicast_list 被ndo_set_rx_mode替换(在以下网站提到http://www.mindwerks.net/2011/11/wireless-bcm4312-3-2-kernel/,但是个人并没有找到更多关于替换的信息,在内核源码中也没有找到,找到的交流交流)

根据网站的信息,将ndo_set_multicast_list 替换成ndo_set_rx_mode 同样编译通过,并且没有警告信息。

阅读(1805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册