BCM5354

Gábor Stefanik netrolller.3d at gmail.com
Mon Jun 7 16:11:14 EDT 2010


The specs are located at http://bcm-v4.sipsolutions.de/ - there is no
TODO list; if you find something in the specs that is not in the
driver, or a function in the driver that contains "TODO" as a comment,
then you have came across something unimplemented. Notably, HW
calibration is only partially implemented.

On Mon, Jun 7, 2010 at 9:55 PM, Robert Hazbun <robert at sephix.com> wrote:
> Where can I find the "spec" and the "todo-list" for what may / may not
> be implemented.
>
> --RH
>
> On 6/7/2010 12:42 PM, Larry Finger wrote:
>> On 06/07/2010 01:56 PM, Robert Hazbun wrote:
>>
>>> Interesting. So, this give me hope that I've done something wrong. When
>>> I try to enable AP mode using iwconfig, I simply get an error.
>>>
>>> Larry, the company I work for is willing to fund b43 work on the BCM5354
>>> and have it released to the public. Do you know who has done the initial
>>> work on the 5354, and who would be the right person to contact?
>>>
>> As Michael Buesch says, there may be parts of the 5354 spec that have
>> not yet been implemented in b43. I am the person that did most of the LP
>> PHY reverse engineering. The person that did the coding from the
>> resulting "specs" was Gabor Stefanik, who reads this list. I will review
>> the 5354-specific code in the latest driver to see if changes are needed.
>>
>> I suspect that the problem is with iwconfig, which uses the WEXT
>> interface that is only partially implemented.  I wrote the following for
>> the openSUSE Wireless Forum. It will not wok directly with openWRT, but
>> it should give you the idea.
>>
>> =================================================
>>
>> This article might be entitled "How to convert an $800 laptop into a $40
>> wireless router", which indicates why doing this might not be desirable.
>> There are, however, at least two cases where this might make sense: (1)
>> You want to provide or test some feature that is not supplied by your
>> AP. One example is 802.11a (5 GHz) channels. (2) your need for an AP is
>> temporary such as network sharing of a 3G broadband modem.
>>
>> To accomplish the task, several pieces of software will be needed
>> including hostapd, a DHCP server for the AP's clients, and an iptables
>> rules for Network Address Translation (NAT). The requirements for these
>> are discussed in turn.
>>
>> I. Hostapd
>>
>> Hostapd runs in user space and interacts with the device driver to
>> handle most of the things that an AP does, such as transmitting of
>> beacons, authentication, etc. The version included with the "hostapd"
>> package of openSUSE 11.1 (0.5.10) works with a limited number of devices
>> and drivers. For modern drivers that use mac80211, a newer version is
>> needed, which can be downloaded from hostapd: IEEE 802.11 AP, IEEE
>> 802.1X/WPA/WPA2/EAP/RADIUS Authenticator. Building this will require
>> that the make, libnl, libnl-devel, openssl-devel and gcc packages are
>> installed. I recommend installing the package from the repository and
>> then doing a download, make and install of the later version. If your
>> kernel is older than 2.6.28 (check uname -r), then you will need the
>> compat-wireless code that is downloaded from Download - Linux Wireless.
>> For this option, you will also need to install the kernel source, and
>> prepare it for use.
>> To prepare the source, issue the following commands:
>> Code:
>>
>> cd /usr/src/linux
>> sudo cp /proc/config.gz .
>> sudo gunzip config.gz
>> sudo cp config .config
>> sudo make prepare
>>
>> Configuration of hostapd is accomplished with a configuration file named
>> hostapd.conf. There are a number of options in that file, but a working
>> AP with WPA2 encryption can be setup with the following:
>>
>> Code:
>>
>> interface=wlan0
>> driver=nl80211
>> hw_mode=g
>> channel=1
>> ssid=test
>> wpa=2
>> wpa_key_mgmt=WPA-PSK
>> wpa_pairwise=CCMP
>> wpa_passphrase=123456789
>>
>> II. Dhcpd
>>
>> The standard dhcpd package in openSUSE 11.1 works just fine. To use it,
>> you need to modify its configuration file dhcpd.conf. Again, there are a
>> number of options available, but you can get a working DHCP server with
>> the following:
>>
>> Code:
>>
>> option domain-name-servers 192.168.1.1;
>> default-lease-time 600;
>> max-lease-time 7200;
>> ddns-update-style none; ddns-updates off;
>> subnet 192.168.0.0 netmask 255.255.255.0 {
>>         range 192.168.0.200 192.168.0.229;
>>         option subnet-mask 255.255.255.0;
>>         option broadcast-address 192.168.0.255;
>>         option routers 192.168.0.1;
>> }
>>
>> The above configuration assumes that the AP will be connected to the
>> outside world with an IP address of 192.168.1.X and that the AP's
>> clients will have addresses 192.168.0.X. If other addresses are used,
>> adjust the above info accordingly.
>>
>> III. Iptables Network Address Translation rules
>>
>> For this example, the NAT rules will be only those necessary to get the
>> AP operational. Although iptables is used to write firewalls, the only
>> protection in this code is to allow only established connections. The
>> rules are shown in the script below.
>>
>> IV. A script to start and stop the Access Point
>>
>> The following code will start and stop the AP. To make any changes
>> easier, the locations of the various utilities, the interface names, and
>> the IP address to be used are defined by symbols at the start of the
>> script. I also use configuration files that are stored in root's home
>> directory, not in /etc as would normally be done. This script must be
>> executable and be run as root.
>>
>> Code:
>>
>> #!/bin/sh
>> # Script to start/stop a hostapd-based access point
>> #
>> # Symbols for needed programs
>>
>> IPTABLES=/usr/sbin/iptables
>> IFCONFIG=/sbin/ifconfig
>> DHCPD=/usr/sbin/dhcpd
>> HOSTAPD=/usr/local/bin/hostapd
>>
>> # Symbols for internal and external interfaces
>>
>> NET_INT=wlan0
>> NET_EXT=eth0
>>
>> # IP address for the AP
>>
>> INT_ADDR=192.168.0.1
>>
>> case "$1" in
>> start)
>>         echo "Starting AP mode for $NET_INT at address $INT_ADDR"
>>         # Disable packet forwarding
>>         echo 0 > /proc/sys/net/ipv4/ip_forward
>>         # Stop any existing hostapd and dhcpd daemons
>>         killproc hostapd
>>         killproc dhcpd
>>         #Set up forwarding
>>         $IPTABLES -t nat -A POSTROUTING -o $NET_EXT -j MASQUERADE
>>         $IPTABLES -A FORWARD -i $NET_EXT -o $NET_INT -m state \
>>               --state RELATED,ESTABLISHED -j ACCEPT
>>         $IPTABLES -A FORWARD -i $NET_INT -o $NET_EXT -j ACCEPT
>>         # Enable packet forwarding
>>         echo 1 > /proc/sys/net/ipv4/ip_forward
>>         # Get the internal interface in the right state
>>         $IFCONFIG $NET_INT down
>>         $IFCONFIG $NET_INT up
>>         $IFCONFIG $NET_INT $INT_ADDR
>>         # dhcpd needs to have a leases file available - create it if needed
>>         if [ ! -f /var/lib/dhcp/db/dhcpd.leases ]; then
>>                 touch /var/lib/dhcp/db/dhcpd.leases
>>         fi
>>         # Bring up the DHCP server
>>         $DHCPD -cf /root/dhcpd.conf $NET_INT
>>         # Bring up hostapd
>>         $HOSTAPD -B /root/hostapd.conf
>>         ;;
>> stop)
>>         echo "Stopping AP mode on $NET_INT"
>>         # Stop hostapd and dhcpd daemons
>>         killproc hostapd
>>         killproc dhcpd
>>         ;;
>> *)
>>         echo "Usage: $0 {start|stop}"
>>         exit 1
>>         ;;
>> esac
>>
>> =================================================
>>
>> Larry
>>
>
>
> _______________________________________________
> b43-dev mailing list
> b43-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/b43-dev
>



-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)



More information about the b43-dev mailing list