Group: Hardware/History/brcm47xx WiFi Access points

From LibrePlanet
Jump to: navigation, search
Line 49: Line 49:
 
vi /etc/modules.d/30-b43
 
vi /etc/modules.d/30-b43
 
*then we need to bring up the wifi interface:
 
*then we need to bring up the wifi interface:
 +
ifconfig wlan0 up
 +
this may take a long time because the file b43/pcm5.fw is not present...this is normal if we use the free firmware
 +
here's a result of the command:
 +
root@OpenWrt:~# ifconfig wlan0 up
 +
b43 ssb0:3: firmware: requesting b43/ucode5.fw
 +
b43 ssb0:3: firmware: requesting b43/pcm5.fw
 +
b43 ssb0:3: firmware: requesting b43/b0g0initvals5.fw
 +
b43 ssb0:3: firmware: requesting b43/b0g0bsinitvals5.fw
 +
b43-phy0: Loading OpenSource firmware version 410.31754
 +
b43-phy0: Hardware crypto acceleration not supported by firmware
 +
b43-phy0: QoS not supported by firmware
 +
Registered led device: b43-phy0::tx
 +
Registered led device: b43-phy0::rx
 +
b43-phy0: Radio turned on by software
 +
then configure the interface:
 +
ifconfig wlan0 10.0.0.1 netmask 255.255.255.0
 +
then edit /etc/hostapd.conf:
 +
vi /etc/hostapd.conf
 +
and add the following into it:
 +
interface=wlan0
 +
driver=nl80211
 +
logger_syslog=-1
 +
logger_syslog_level=2
 +
logger_stdout=-1
 +
logger_stdout_level=2
 +
ssid=liberated_ap
 +
hw_mode=g
 +
channel=7
 +
beacon_int=100
 +
dtim_period=2
 +
max_num_sta=255
 +
rts_threshold=2347
 +
fragm_threshold=2346
 +
macaddr_acl=0
 +
auth_algs=3
 +
ignore_broadcast_ssid=0
 +
eapol_key_index_workaround=0
 +
own_ip_addr=127.0.0.1
 +
I don't know all the details of the configuration file but it's a default configuration a little bit modified
 +
then do:
 +
hostapd /etc/hosapd.conf &
 +
it will also take a long time because of b43/pcm5.fw
 +
here the output of this command on my router:
 +
~# hostapd /etc/hostapd.conf
 +
Configuration file: /etc/hostapd.conf
 +
b43 ssb0:3: firmware: requesting b43/pcm5.fw
 +
b43-phy0: Loading OpenSource firmware version 410.31754
 +
b43-phy0: Hardware crypto acceleration not supported by firmware
 +
b43-phy0: QoS not supported by firmware
 +
Registered led device: b43-phy0::tx
 +
Registered led device: b43-phy0::rx
 +
Using interface wlan0 with hwaddr 00:14:bf:e1:da:df and ssid 'wrt54gs_freeopenwrt'
 +
then connect to it with a laptop or desktop computer...

Revision as of 19:37, 25 June 2009

The router made with Broadcom 47xx card usually run a 2.4 kenrel with a Proprietary kernel module and a proprietary firmware for the wifi driver by default. But:

  • the 2.6 kernel has support for the bcm47xx in 2 drivers:
    • b43
    • b43-legacy for older cards.

we will focus on b43 because I'm not shure that maste mode or the free firmware work with b43-legacy cards

  • there is a free firmware called openfwwf for some broadcom cards
  • openwrt build system supports both(the free firmware and the free driver)

So all what we have to do is to:

  • build a rootfs with support for both
  • customize our rootfs to make it act like a router(the init scripts etc...)

Howto create a free rootfs

Warning It may void your waranty,brick your router etc...


checkout the svn of openwrt

svn co svn://svn.openwrt.org/openwrt/trunk

then type:

make menuconfig

and chose your options:

  • chose bcm47xx as target
  • chose wifi if you need the wifi
  • chose the free firmware as wifi firmware
  • chose hostapd
  • chose the additional packages you want
  • if you want the 2.6.30 kernel you need to modify a Makefile(which one?)

then type:

make

and wait a lot of time until completion then flash your firmware then log into your router

  • verify if you have the right kenrel with :
uname -a
  • verify what modules are loaded with:
lsmod
  • verify if you have the right firmware with:
ls -l /lib/firmware

if there is a directory named b43-open the right firmware was compiled and installed then we need to do some work: prepare the firmware direcrtory

cd /lib/firmware
ln -s b43-open b43
rm -rf b43-legacy

maybe we need to understand how to remove b43-legacy support

  • prepare the modules for the free firmware:
rm /etc/modules.d/30-b43-legacy

edit the 30-b43 file and change the line with "b43" in "b43 qos=0" because the free firmware doesn't support QOS yet vi /etc/modules.d/30-b43

  • then we need to bring up the wifi interface:
ifconfig wlan0 up

this may take a long time because the file b43/pcm5.fw is not present...this is normal if we use the free firmware here's a result of the command:

root@OpenWrt:~# ifconfig wlan0 up 
b43 ssb0:3: firmware: requesting b43/ucode5.fw
b43 ssb0:3: firmware: requesting b43/pcm5.fw
b43 ssb0:3: firmware: requesting b43/b0g0initvals5.fw
b43 ssb0:3: firmware: requesting b43/b0g0bsinitvals5.fw
b43-phy0: Loading OpenSource firmware version 410.31754
b43-phy0: Hardware crypto acceleration not supported by firmware
b43-phy0: QoS not supported by firmware
Registered led device: b43-phy0::tx
Registered led device: b43-phy0::rx
b43-phy0: Radio turned on by software

then configure the interface:

ifconfig wlan0 10.0.0.1 netmask 255.255.255.0

then edit /etc/hostapd.conf:

vi /etc/hostapd.conf

and add the following into it:

interface=wlan0
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ssid=liberated_ap
hw_mode=g
channel=7
beacon_int=100
dtim_period=2
max_num_sta=255
rts_threshold=2347
fragm_threshold=2346
macaddr_acl=0
auth_algs=3
ignore_broadcast_ssid=0
eapol_key_index_workaround=0
own_ip_addr=127.0.0.1

I don't know all the details of the configuration file but it's a default configuration a little bit modified then do:

hostapd /etc/hosapd.conf &

it will also take a long time because of b43/pcm5.fw here the output of this command on my router: ~# hostapd /etc/hostapd.conf

Configuration file: /etc/hostapd.conf
b43 ssb0:3: firmware: requesting b43/pcm5.fw
b43-phy0: Loading OpenSource firmware version 410.31754
b43-phy0: Hardware crypto acceleration not supported by firmware
b43-phy0: QoS not supported by firmware
Registered led device: b43-phy0::tx
Registered led device: b43-phy0::rx
Using interface wlan0 with hwaddr 00:14:bf:e1:da:df and ssid 'wrt54gs_freeopenwrt'

then connect to it with a laptop or desktop computer...