무선 연결과 관련된 몇 가지 문제를 해결하고 그 과정에서 몇 가지를 배우려고 노력 중입니다. ~에서여기그리고여기나는 내 무선 드라이버에 대해 알아내는 두 가지 방법을 배웠습니다. 문제는 두 가지 다른 결과를 얻는다는 것입니다.
첫 번째 방법은 sudo lshw -C network
다음을 제공합니다.
configuration: broadcast=yes driver=brcmsmac
그리고 두 번째는 lspci -knn | grep Net -A2
나에게 이것을 제공합니다:
Kernel driver in use: bcma-pci-bridge
내 드라이버 목록에서 다음을 찾을 수 brcmsmac
있습니다 bcma
.
> 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
그럼 이 둘은 뭘 하고 있는 걸까요?
답변1
Broadcom의 하드웨어 설계에는 많은 제품에 공통적으로 적용되는 표준 PCI/PCIe 인터페이스 모듈이 포함되어 있습니다. 그리고 하나 이상의 제품별 모듈을 연결할 수 있는 Broadcom 고유의 인터페이스 버스가 있습니다.
이 bcma
모듈은 PCI/PCIe 버스와 Broadcom 독점 버스 사이의 "브리지" 역할을 하는 PCI/PCIe 인터페이스 모듈용 드라이버일 뿐입니다. 일단 로드되면 Broadcom 버스의 다른 모듈을 식별하고 가능하면 해당 드라이버를 자동으로 로드합니다.
brcmsmac
실제 WiFi 하드웨어 모듈용 드라이버입니다 . 하드웨어 모듈은 실제로 PCI(e) 버스에 존재하지 않기 때문에 lspci
실제로 PCI(e) 버스에 연결된 부품에 대한 드라이버만 표시됩니다.
예를 들어 Broadcom 버스의 내용에 대해 더 자세한 내용을 알려주는 새로운 명령이 있어야 합니다 lsbcma
... 제가 아는 한, 그러한 명령은 실제로 존재하지 않지만 제 생각에는 Broadcom 버스는 일반적으로 매우 간단하므로 로드 할 모듈 bcma
출력을 동일한 목적으로 사용할 수 있습니다.dmesg
커널 모듈에는 brcmutil
다양한 Broadcom WiFi 모듈( brcmsmac
및 Broadcom WiFi 모듈) brcmhmac
간에 공유할 수 있는 일부 코드가 포함되어 있습니다.
답변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개의 드라이버가 필요하다는 것을 기억하는 "자유 이름"일 것입니다.
저는 전문가는 아니고 그냥 제 추측일 뿐입니다