|
注:基于这个 Broadcam 驱动程序的极度限制性条款,ELRepo 软件库的开发者放弃以 rpm 组件来提供它 ―― 因此这份文件被创建的目的是要提供一个全面的驱动程序安装说明。
|
|
注:本作者至今只测试了 Broadcom 的 BCM4311 及 BCM4312 芯片组。
|
[user@host ~]$ /sbin/lspci | grep Broadcom
0b:00.0 Network controller: Broadcom Corporation BCM4312 802.11a/b/g (rev 01)
[root@host]# yum install kernel-headers kernel-devel gcc
[root@host ~]# mkdir -p /usr/local/src/hybrid-wl
[root@host hybrid-wl]# cd /usr/local/src/hybrid-wl
[root@host hybrid-wl]# tar xvfz /path/to/the/tarball/hybrid-portsrc-x86_64-v5.10.91.9.3.tar.gz(下载档的名称)
[root@host hybrid-wl]# chown -R someuser.somegroup /usr/local/src/hybrid-wl
|
注:为什么不随便将它解压到一个位置并保留缺省的拥有者?
原因是上面的做法会把驱动模块的源代码保留在系统上 ―― 在你放置它们的位置 ―― 好让你可以随时按需要创建驱动程序(譬如:你将内核升了级 ―― 因为驱动模块永远根据某个内核来编译),还有,就是你可以用无特权的用户来编译! |
[user@host hybrid-wl]$ make -C /lib/modules/`uname -r`/build/ M=`pwd`
make: Entering directory `/usr/src/kernels/2.6.18-164.el5-x86_64'
LD /tmp/hybrid/hybrid/hybrid/built-in.o
CC [M] /tmp/hybrid/hybrid/hybrid/src/wl/sys/wl_linux.o
In file included from /tmp/hybrid/hybrid/hybrid/src/wl/sys/wl_linux.c:20:
/tmp/hybrid/hybrid/hybrid/src/include/typedefs.h:70: error: conflicting types for ‘bool’
include/linux/types.h:36: error: previous declaration of ‘bool’ was here
make[1]: *** [/tmp/hybrid/hybrid/hybrid/src/wl/sys/wl_linux.o] Error 1
make: *** [_module_/tmp/hybrid/hybrid/hybrid] Error 2
make: Leaving directory `/usr/src/kernels/2.6.18-164.el5-x86_64'
/*
#ifndef TYPEDEF_BOOL
typedef unsigned char bool;
#endif
*/
#define TYPEDEF_BOOL
[user@host hybrid-wl]$ make -C /lib/modules/`uname -r`/build/ M=`pwd`
make: Entering directory `/usr/src/kernels/2.6.18-164.el5-x86_64'
CC [M] /tmp/hybrid/hybrid/hybrid/src/wl/sys/wl_linux.o
CC [M] /tmp/hybrid/hybrid/hybrid/src/wl/sys/wl_iw.o
CC [M] /tmp/hybrid/hybrid/hybrid/src/shared/linux_osl.o
LD [M] /tmp/hybrid/hybrid/hybrid/wl.o
Building modules, stage 2.
MODPOST
CC /tmp/hybrid/hybrid/hybrid/wl.mod.o
LD [M] /tmp/hybrid/hybrid/hybrid/wl.ko
make: Leaving directory `/usr/src/kernels/2.6.18-164.el5-x86_64'
[user@host hybrid-wl]$ strip --strip-debug wl.ko
[root@host ~]# rmmod bcm43xx
[root@host ~]# rmmod b43
[root@host ~]# rmmod b43legacy
[root@host ~]# rmmod ndiswrapper
[root@host hybrid-wl]# modprobe wl.ko
[root@host hybrid-wl]# insmod wl.ko
[root@host hybrid-wl]# cp -vi /usr/local/src/hybrid-wl/wl.ko /lib/modules/`uname -r`/extra/
[root@host ~]# depmod $(uname -r)
blacklist bcm43xx
blacklist ndiswrapper
blacklist b43
blacklist b43legacy
alias eth1 bcm43xx
或
alias eth1 b43
或
alias eth1 b43legacy
#alias eth1 bcm43xx
或
#alias eth1 b43
或
#alias eth1 b43legacy
alias eth1 wl
alias ieee80211_crypt_tkip ieee80211_crypt_tkip现在你的驱动应该在每次开机时都会被装入(当然除了在你安装了新内核之后,到时你必须依照以上步骤将它重新编译)。
alias eth1 wl