Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3319545
  • 博文数量: 366
  • 博客积分: 9916
  • 博客等级: 中将
  • 技术积分: 7194
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-29 23:27









2012-12-01 00:35:42

 The hybrid driver from Broadcom is still a bit behind in terms of support for the latest kernels but there are workarounds. This particular issue also effects other kernel modules such as the out of tree Nvidia and ATI blobs that require the asm/system.h file in their includes.

I’ve had success with replacing it with asm/switch_to.h which seems to have fixed things for now. The cause for this can be found on the LKML.

Chipsets supported by “Broadcom’s IEEE 802.11a/b/g/n hybrid Linux® device driver” are: BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, and BCM43225, BCM43227 and BCM43228.


  1. $ make
  2. KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
  3. make[1]: Entering directory `/usr/src/linux-headers-3.5.0-18-generic'
  4. Wireless Extension is the only possible API for this kernel version
  5. Using Wireless Extension API
  6. LD /home/txgcwm/Desktop/hy/built-in.o
  7. CC [M] /home/txgcwm/Desktop/hy/src/shared/linux_osl.o
  8. CC [M] /home/txgcwm/Desktop/hy/src/wl/sys/wl_linux.o
  9. /home/txgcwm/Desktop/hy/src/wl/sys/wl_linux.c:43:24: fatal error: asm/system.h: No such file or directory
  10. compilation terminated.
  11. make[2]: *** [/home/txgcwm/Desktop/hy/src/wl/sys/wl_linux.o] Error 1
  12. make[1]: *** [_module_/home/txgcwm/Desktop/hy] Error 2
  13. make[1]: Leaving directory `/usr/src/linux-headers-3.5.0-18-generic'
  14. make: *** [all] Error 2

The rundown:

  1. Download the 32 or 64-bit version:
  2. Download my patches: bc_wl_abiupdate.patch and switch_to.patch
  3. Extract the sources:
    cd ~/Downloads; mkdir -p wl; cd wl; tar xf ../hybrid-portsrc*.tar.gz
  4. Patch and compile the sources:
    patch -p0 src/wl/sys/wl_linux.c < ~/Downloads/switch_to.patch; patch -p0 src/wl/sys/wl_linux.c < ~/Downloads/bc_wl_abiupdate.patch;
    make; sudo make install; sudo depmod; sudo modprobe wl

Give Ubuntu a few seconds after loading the “wl” kernel module, then eventually the Network Manager will start looking for wireless networks.

TL;DR: These patches are required for a working wl kernel module for the 3.4 and 3.5 kernel series.

Update: Also verified to work with Linux 3.6 series.

Related posts:

  1. Wireless BCM4312 3.0 kernel
  2. Wireless BCM4312 on Ubuntu with 2.6.38 and 2.6.39 kernel
  3. Wireless BCM4312 3.2 kernel
  4. Ubuntu 10.10 Maverick with 2.6.38 kernel and fglrx 8.812
  5. Ubuntu 2.6.39 kernel and fglrx 8.831

阅读(1257) | 评论(1) | 转发(0) |

txgc_wm2012-12-03 01:20:51