I'm running macOS on a macbook pro from late 2013 but am reading the Arch wiki on wifi configuration and focusing on the first part:
the first part is to identify and ensure the correct driver for your wireless device is installed
My goal is to get a better understanding of how to figure out:
- What is the physical wifi device on my machine?
- What drivers do I need to make it work?
- Will it work with linux?
First I went into the "About this mac" menu to get some information about the network interface
(is that the physical network device?):
en0:
Card Type: AirPort Extreme (0x14E4, 0x112)
Firmware Version: Broadcom BCM43xx 1.0 (7.21.171.68.1a5)
MAC Address: 60:03:08:8b:96:9c
Locale: FCC
Country Code: US
Supported PHY Modes: 802.11 a/b/g/n/ac
Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165
Wake On Wireless: Supported
AirDrop: Supported
AirDrop Channel: 149
Auto Unlock: Supported
Status: Connected
From the arch wiki it's recommended to use lspci -k
to get information about the wireless driver installed. The following example is given:
$ lspci -k
06:00.0 Network controller: Intel Corporation WiFi Link 5100
Subsystem: Intel Corporation WiFi Link 5100 AGN
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
I think the two important pieces of information are the Card Type
and the Firmware Version
.
- What is the difference between the
Card Type
and theFirmware Version
? - Is the
Firmware Version
another word for aDriver
? - Which terms in the output of
lspci -k
correspond to the output from "About this mac"?
Looking through the existing Linux drivers and Cmd+f
for BCM43xx
turns up nothing.
However, following a link to the Comparison of open-source wireless drivers wikipedia page works:
There is some green and some red. Some questions are:
- How do I use this information to figure out if my wifi card will work?
- How do I know what driver to install?
- Is there a macOS
BCM43xx
driver and a linuxBCM43xx
driver? - Why does about this mac say all the
PHY
modes are supported but not the wiki page? Is it because they are different drivers?
Best Answer
The
Card Type
field shown in "About this mac" appears to be broken. It seems to be combining the card's vendor ID with the subsystem vendor ID, which may or may not uniquely identify the card, and even if it does, only to the system vendor's native operating system.The firmware version is the version of the firmware running on the device. A wireless card is sufficiently complicated that it has it's own CPU inside (for example, a microcontroller). The firmware version identifies the software running on the card's CPU.
No. The operating system driver runs on the main CPU. It is responsible for interfacing the OS to the PCI bus. The firmware runs on the wireless card. It is responsible for interfacing the PCI bus to the actual wireless radio hardware. It is kind of like a "driver" in the end, except you don't want to call it that because it would cause more confusion.
You can think of the PCI bus as a telephone line between a house (OS) and a nearby shed (wireless card). The driver is in the house talking on the telephone with the firmware, which is in the shed. The driver is subordinate to a chain of command in the house, but the firmware is king of the castle in the shed.
The situation is further complicated by the fact that many cards do not include the firmware on the card itself; the card itself just has a kind of bootloader that can load the firmware over PCI and then execute it. So you have to have a compatible firmware file on the OS side and the OS driver needs to know how to feed it in to fully bring up the card. But the firmware does not run in the OS, it's just fed to the card without (too much) processing.
None of them. Intel Corporation WiFi Link 5100 should have PCI ID
[8086:4232]
, and definitely not a match to PCI vendor0x14E4
(Broadcom). You're hitting different hardware from MacOS as from Linux; the complete output oflspci -nn
might reveal what is going on.The card you did find in Linux has already been claimed by
iwlwifi
. If you can get running with that it's probably better to do that as the Intel cards have better Linux compatibility than the Broadcom ones.