Nexus 5 Wireless Driver for BCM4339

I want to work in Access Point (AP) and Power Save Mode (PSM) mode using a Nexus 5 which has a BCM4339 wireless chipset .

There are currently 4 drivers available for Broadcom chipsets (1 experimental):

  • broadcom-iw (proprietary). Firmware, so no changes are possible.
  • brcm80211 (open source broadband mac80211). No support for AP mode.
  • b43 (with reverse processing). Best choice because it supports AP, Power Saving Mode (PSM), Main Mode (or Monitor Mode).
  • bcmon (experimental driver based on brcm80211). Supports AP and Monitor mode, can be changed to support power saving mode.

Since the documentation is a bit vague regarding this particular chipset, my questions are:

  • What is the default driver for the Nexus 5?
  • b43 is supported by BCM4339 ? According to this Broadcom - BCM43xx page , it should, but not listed on this page B43 - Known PCI Devices .
  • If b43 is actually supported , what is the procedure for switching to the b43 driver?

EDIT: I found out that my chipset had an SDIO interface, so the FullMAC driver was used for the driver (brcmfmac). If I understand correctly, this means that I cannot make any changes to it as the MAC layer is encoded in the hardware ... Anyone to confirm this? Any alternatives?

+3


source to share


3 answers


Although the BCM4339 is a FullMAC or HardMAC chip that handles all the PHY and MAC layer processing in the ARM Cortex-R4 processor that is included with the BCM4339 system on the chip, it is possible to change the firmware running on this microcontroller.



For this, we developed a C based patching platform that allows us to write patches to the original firmware in C. We used it to enable monitoring mode on the BCM4339. If you are interested in the project, check out our nexmon project at https://seemoo.tu-darmstadt.de/nexmon

+3


source


To answer my questions:

The BCM4339 (a chip inside the Nexus 5) has an SDIO interface , which means it has a driver implemented in HARDWARE (these devices are commonly referred to as a HardMAC device ).

The driver supporting BCM4339, brcmfmac (SoftMAC driver version is brcmfsmac). This driver has NOT , as it is proprietary firmware.



If you want to change the source code (for experimentation), you CANNOT do it with this chip. You will need another wireless chipset (preferably Atheros chipset supported by ath9k open source driver ).

My option was to add a USB network adapter to the Android device and use the Atheros chipset on it. I have programmed the changes using the ath9k driver .

+2


source


As far as I know, TI chipsets also allow you to modify the source code (for experimentation). Atheros also does this job, as you mentioned.

+2


source







All Articles