Okay , i have seen allot of problems with broadcom cards and i will try my best to give here a guide that will help configure most of them (if you still get error please post bellow so we can try to fix it)
First of all references i will assume u read.
http://www.backtrack-linux.org/forum...ad.php?t=34469
There is a point there where a wl driver is patched.
Code:
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/linux-source-2.6.34'
WARNING: Symbol version dump /usr/src/linux-source-2.6.34/Module.symvers
is missing; modules will have no dependencies and modversions.
LD /root/hybrid-wl/built-in.o
CC [M] /root/hybrid-wl/src/shared/linux_osl.o
CC [M] /root/hybrid-wl/src/wl/sys/wl_linux.o
/root/hybrid-wl/src/wl/sys/wl_linux.c: In function ‘_wl_set_multicast_list’:
/root/hybrid-wl/src/wl/sys/wl_linux.c:1451: warning: assignment from incompatible pointer type
/root/hybrid-wl/src/wl/sys/wl_linux.c:1451: error: ‘struct netdev_hw_addr’ has no member named ‘next’
make[2]: *** [/root/hybrid-wl/src/wl/sys/wl_linux.o] Error 1
make[1]: *** [_module_/root/hybrid-wl] Error 2
make[1]: Leaving directory `/usr/src/linux-source-2.6.34'
make: *** [all] Error 2
if this is not similar error than DON'T PATCH IT with the previous code. (similar as in same error in wl_linux.c)
So if you still have errors meaning that the How to didn't helped. I will suggest a few other methods.
First the kernel related files you might need
kernel-devel kernel-headers
You can try getting those with
Code:
apt-get update
apt-get install kernel-devel
apt-get install kernel-headers
OR if that doesn't work use
sudo aptitude install linux-headers-`uname -r`
similar with kernel-devel
Then
download from broadcom official site
http://www.broadcom.com/support/802.11/linux_sta.php
the version 32 bit or 64 bit depending on your system
If you have s BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43224-, and BCM43225-, BCM43227- and BCM43228-based hardware this is probably a good way to go (with the download and setting) and the drivers that i didn't list may work also.
Try following the instructions, i will briefly go through those.
First check if this folder exist
Code:
ls /lib/modules/`uname -r`/build
If it exist then probably there is no need for installation of
build-essential linux-headers-generic
Yet another way from the upper part of installing kernel devel and headers is
Code:
apt-get install build-essential linux-headers-generic
apt-get build-dep linux
If you already installed kernel devel and headers no need for the first line
The second line actually says build all dependancies for linux so that you can build it (later on that if problems occur)
Okay now that you unpacked the downloaded driver in some folder. Go inside the folder and follow the instructions on modeprobing the driver when you can make them
When testing if you have any previously installed drivers ssb\|wl\|b43\|bcma
after the installation you will have a wl (if you have it before delete it but NOT after)
The problem may occur in the second line.
I myself got the following error
Code:
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/linux-source-2.6.39.4'
WARNING: Symbol version dump /usr/src/linux-source-2.6.39.4/Module.symvers
is missing; modules will have no dependencies and modversions.
CFG80211 API is prefered for this kernel version
Using CFG80211 API
CC [M] /home/Sharan/Tools/Driver_Za_wireless/hybrid_wl/src/wl/sys/wl_cfg80211.o
/home/Sharan/Tools/Driver_Za_wireless/hybrid_wl/src/wl/sys/wl_cfg80211.c: In function ΓÇÿwl_inform_single_bssΓÇÖ:
/home/Sharan/Tools/Driver_Za_wireless/hybrid_wl/src/wl/sys/wl_cfg80211.c:1817: error: too few arguments to function ΓÇÿieee80211_channel_to_frequencyΓÇÖ
make[2]: *** [/home/Sharan/Tools/Driver_Za_wireless/hybrid_wl/src/wl/sys/wl_cfg80211.o] Error 1
make[1]: *** [_module_/home/Sharan/Tools/Driver_Za_wireless/hybrid_wl] Error 2
make[1]: Leaving directory `/usr/src/linux-source-2.6.39.4'
make: *** [all] Error 2
This means that we weren't able to create binaries (obviously)
The reason (most of you and myself ignored) is written in the error. The error is in 1817 line of the file wl_cfg80211.c on calling the function (ieee80211_channel_to_frequency)
So what i did is entered the file found the line 1817
It says something like this
freq = ieee80211_channel_to_frequency(notif_bss_info->channel
#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)
,(notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ
#endif
);
The problem here is that the #if is happening in preprocessing as you don't have two kernel versions also you don't have two types of ieee80211_channel_to_frequency functions
if the error says too few arguments that means that your ieee80211_channel_to_frequency is calling the 2 argument function which is included with the 2.6.39 kernel version
So you can fix that (not a perfect code but it will work on your computer)
Code:
#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)
freq = ieee80211_channel_to_frequency(notif_bss_info->channel,(notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
#else
freq = ieee80211_channel_to_frequency(notif_bss_info->channel,(notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
#endif
Here i just told him to take the same freq to whatever kernel version is running on my pc.
then try
make clean
make
There is a possibility of next error
Code:
make: Entering directory `/usr/src/linux-source-2.6.35.8'
WARNING: Symbol version dump /usr/src/linux-source-2.6.35.8/Module.symvers
is missing; modules will have no dependencies and modversions.
You need to do a full make and make install of the linux-source
There is a fine article here
http://linux.koolsolutions.com/2009/...e-compilation/
and you can google it
Also DON'T FORGET TO
BEFORE testing your drivers!!!
Lets say you tried all this and didn't work (no error message when making the driver just won't work from some weird reasons, you have kernel headers devel all the kernel necessary files also you have the kernel made and installed )
There is just two more ways that may work for you
First try with Synaptic Package Manager and search for
bcmwl-kernel-source
or in console
Code:
apt-get update
apt-get --reinstall install bcmwl-kernel-source
This doesn't work too ? No problem
http://linuxwireless.org/en/users/Drivers/
On this site you have the download of wireless drivers and more
And on this site you have written c programs for wireless
http://lxr.free-electrons.com/ (eg. you need ieee80211.h http://lxr.free-electrons.com/source...ux/ieee80211.h)
Hope all of this helped i know i needed it when i was trying to install my drivers.
If none of this could help (which is less likely to happend) post below your error.
All the best,
Sh