Nexus 5无线驱动程序BCM4339

3

我希望使用一个搭载BCM4339无线芯片的Nexus 5,研究Access Point(AP)和Power Saving Mode(PSM)的行为。

目前,Broadcom芯片有4个驱动程序可用(其中1个是实验性的):

  • broadcom-iw(专有驱动程序)。固件,因此不可更改。
  • brcm80211(基于开源mac80211的Broadcom驱动程序)。不支持AP模式。
  • b43(反向工程)。最佳选择,因为它支持AP、Power Saving Mode(PSM)、Master Mode(或Monitor Mode)。
  • bcmon(实验性的基于brcm80211的驱动程序)。支持AP和Monitor Mode,可以修改以支持Power Saving Mode。

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

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

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

3个回答

3
尽管BCM4339是一个全功能或硬件MAC芯片,它在包含在BCM4339系统芯片中的ARM Cortex-R4处理器中处理所有PHY和MAC层处理,但可以更改运行在该微控制器上的固件。为此,我们开发了一个基于C语言的修补框架,允许以C语言编写对原始固件的修补程序。我们使用它来启用BCM4339上的监视器模式。如果您对该项目感兴趣,请查看我们的nexmon项目https://seemoo.tu-darmstadt.de/nexmon

2
为了回答我的问题:
BCM4339(Nexus 5内部芯片)具有SDIO接口,这意味着它在硬件上已实现了驱动程序(这些设备通常称为HardMAC设备)。
支持BCM4339的驱动程序是brcmfmac(SoftMAC版本的驱动程序是brcmfsmac)。这个驱动程序是不可修改的,因为它是专有固件。
如果您想修改源代码(进行实验),则不能使用此芯片。您将需要另一种无线芯片组(最好是由开源驱动程序ath9k支持的Atheros芯片组)。
我选择在Android设备上添加USB网络适配器,并使用其中的Atheros芯片组。我通过驱动程序ath9k对其进行了修改。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接