Tuesday, June 23, 2009

Installing Broadcom BCM4312 802.11b/g on centos


Download wireless package from Broadcom
Untar the file hybrid-portsrc-x86_32_5_10_27_6.tar.gz (hybrid-portsrc-x86_64_5_10_27_6.tar.gz if you’re running on a 64-bit kernel) in its own folder:


# tar -xvzf hybrid-portsrc-x86_32_5_10_27_6.tar.gz

You should now see this in your directory listing:

hybrid-portsrc-x86_32_5_10_27_6.tar.gz
lib
Makefile
src

Need to compile now
Wait..........
Before u compile...
Something missing in code:---

Without adding the following headers the compiling process exits with error
don't worry have solution here.
Add the following line to the file
Open file src/include/typedefs.h and add there the line below at header

# vim src/include/typedefs.h

#define TYPEDEF_BOOL

      Don't exclude the hash before define. It has to be typed as such mentioned here

Now build the Loadable Kernel Module (LKM) like so:

# make -C /lib/modules/`uname -r`/build M=`pwd`

Of course, you need to make sure you have all the required kernel headers before building it. Once that’s done, your directory listing should look like this:

built-in.o
hybrid-portsrc-x86_32_5_10_27_6.tar.gz
lib
Makefile
modules.order
Module.symvers
src
wl.ko
wl.mod.c
wl.mod.o
wl.o

The magic file we need is wl.ko. Make sure you don’t have b43, b43legacy or b43xx loaded by running this:


# rmmod bcm43xx; rmmod b43; rmmod b43legacy

And for good measure remove ndiswrapper modules:


# rmmod ndiswrapper

Now load the module ieee80211_crypt_tkip:


# modprobe ieee80211_crypt_tkip

And finally load the wl.ko module:

# insmod wl.ko

Now if you do an ifconfig, you should see wlan0 right after your eth0 and lo devices.

Else try iwconfig 

Yippee-kay-yay! Test it out by scanning and connecting to a network. If it works, then you might want your module to load upon boot, which is something the Broadcom readme doesn’t touch on. Let me school you how.

Copy the wl.ko file to /lib/modules/2.6.26-1-686/kernel/net/wireless/


# cp wl.ko /lib/modules/2.6.26-1-686/kernel/net/wireless/

Create the module dependencies:


# depmod -a

Try loading your new module!:


# modprobe wl

If you get no error on modprobe, then it worked perfectly! Next you have to tell your system to load the module at startup. On my debian system, I do this by editing the file /etc/modprobe.conf to include the following:


# vim
/etc/modprobe.conf

# alias wlan0 wl


Now, reboot and you’ve got official Broadcom wifi goodness! Hooray! Ubuntu 8.10 (due out the end of this month) will have this driver bundled with it, here’s hoping that Debian will have it in its repositories soon! Of course, all the above was done on my GNU/Debian Lenny/Sid system, so let me know if you tried it out on yours and tell me how it worked for you. Cheers!

####
Need to setup Linux as router ?


Enable the ipforwarding and add the masquerade to eth0


echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

No comments:

Post a Comment

tag ur valuable ideas below