用于BCM4339的Nexus 5无线驱动程序

时间:2015-05-13 19:43:27

标签: android nexus-5 android-wireless broadcom chipset

我希望使用 Nexus 5 处理接入点(AP)和省电模式(PSM)行为,其中 BCM4339 无线芯片组。

目前,Broadcom芯片组有4个驱动程序(1个实验性):

  • broadcom-iw (专有)。 固件,因此无法更改。
  • brcm80211 (基于broadcom开源mac80211)。 不支持AP模式。
  • b43 (逆向工程)。 最佳选择,因为它支持AP,省电模式(PSM),主模式(或监控模式)。
  • bcmon (基于实验brcm80211的驱动程序)。 支持AP和监控模式,可以修改为支持省电模式。

由于文档在这个特定的芯片组上有点模糊,我的问题是:

  • Nexus 5上使用的“默认”无线驱动程序是什么?
  • b43 是否支持 BCM4339 ?根据此页面Broadcom - BCM43xx,它应该是,但此页面上未列出B43 - Known PCI devices
  • 如果确实支持 b43 ,切换到b43驱动程序的步骤是什么?

编辑:我发现我的芯片组有一个SDIO接口,所以使用的驱动程序是一个FullMAC驱动程序(brcmfmac)。如果我理解正确,这意味着我不能对它进行任何修改,因为MAC层是用硬件编码的......有人要证实这一点吗?任何替代方案?

3 个答案:

答案 0 :(得分:3)

即使BCM4339是FullMAC或HardMAC芯片,它处理包含在片上BCM4339系统的ARM Cortex-R4处理器中的所有PHY和MAC层处理,也可以更改在该微控制器上运行的固件

为此,我们开发了一个基于C的修补框架,允许在C中为原始固件编写补丁。我们使用它在BCM4339上启用监控模式。如果您对该项目感兴趣,请查看https://seemoo.tu-darmstadt.de/nexmon

上的nexmon项目

答案 1 :(得分:2)

回答我自己的问题:

BCM4339(Nexus 5中的芯片)有一个 SDIO接口,这意味着它有一个用 HARDWARE 实现的驱动程序(这些设备通常被命名为 HardMAC设备)。

支持BCM4339的驱动程序是 brcmfmac (驱动程序的SoftMAC版本为 brcmfsmac )。此驱动程序 NOT 可修改,因为它是专有固件。

如果你想修改源代码(用于实验),你不能用这个芯片做。您将需要另一个无线芯片组(最好是 Atheros 芯片组,由开源驱动程序 ath9k 支持)。

我的选择是将USB网络适配器添加到我的Android设备并使用其上的Atheros芯片组。我通过驱动程序 ath9k 编程修改。

答案 2 :(得分:2)

据我所知,TI芯片组还允许您修改源代码(用于实验)。 Atheros也像你提到的那样完成工作。