bcma 与 brcmsmac 有何关系?

gsm*_*fra 5 wifi drivers broadcom kernel-modules

我正在尝试解决无线连接的一些问题,并尝试在此过程中学习一些东西。从这里这里我了解了两种不同的方式来了解我的无线驱动程序。事实是,我得到两个不同的结果:

第一种方法sudo lshw -C network给了我以下内容:

configuration: broadcast=yes driver=brcmsmac
Run Code Online (Sandbox Code Playgroud)

而第二个lspci -knn | grep Net -A2给了我这个:

Kernel driver in use: bcma-pci-bridge
Run Code Online (Sandbox Code Playgroud)

从我的驱动程序列表中,我可以找到brcmsmacbcma

> lsmod | grep brcmsmac
brcmsmac              563061  0 
cordic                 12574  1 brcmsmac
brcmutil               15579  1 brcmsmac
mac80211              652777  1 brcmsmac
cfg80211              498458  2 brcmsmac,mac80211
bcma                   52320  2 brcmsmac
Run Code Online (Sandbox Code Playgroud)

那么,这两个人到底在做什么呢?

小智 2

我和你有同样的问题。就我而言,无线控制器是 Broadcom Corporation BCM4313,制造商和型号为 14e4 和 4727 :

$ lspci -nn -s 03:00 |grep -i net 03:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter [14e4:4727] (rev 01)

1 - 控制器的模块别名是 bcma :

$ cat /lib/modules/$(uname -r)/modules.alias | grep -i 14e4 |grep -i 4727 alias pci:v000014E4d00004727sv*sd*bc*sc*i* bcma

bcma首先加载,负责控制器接口

2 - brmsmac 取决于 bcma

# modinfo brcmsmac |grep depends depends: bcma,mac80211,brcmutil,cfg80211,cordic

它在bcma之后加载,负责无线协议

3 - bcma-pci-bridge 未被识别为驱动程序:

# modinfo bcma-pci-bridge modinfo: ERROR: Module bcma-pci-bridge not found.

所以我的猜测是 bcma-pci-bridge 可能是一个“免费名称”,用于记住控制器需要 2 个驱动程序......

我不是专家,这只是我的猜测