Networking

如何在 mac 硬體上找到 macOS 和 linux wifi 驅動程序之間的差異?

  • March 17, 2017

我從 2013 年底開始在 macbook pro 上執行 macOS,但我正在閱讀有關wifi 配置的 Arch wiki並專注於第一部分:

第一部分是辨識並確保為您的無線設備安裝了正確的驅動程序

我的目標是更好地理解如何弄清楚:

  1. 我機器上的物理 wifi 設備是什麼?
  2. 我需要什麼驅動程序才能使它工作?
  3. 它可以與linux一起使用嗎?

首先,我進入“關於此 mac”菜單以獲取有關network interface(是物理網路設備嗎?)的一些資訊:

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

建議從arch wikilspci -k獲取有關已安裝無線驅動程序的資訊。給出以下範例:

$ 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

我認為兩個重要的資訊是Card TypeFirmware Version

  • Card Type和 和有什麼不一樣Firmware Version
  • Firmware Version另一個詞是 a嗎Driver
  • 輸出中的哪些術語lspci -k對應於“關於此 mac”的輸出?

查看現有的 Linux 驅動程序Cmd+f並沒有BCM43xx發現任何問題。

但是,以下連結到開源無線驅動程序維基百科頁面的比較有效:

在此處輸入圖像描述

有一些綠色和一些紅色。一些問題是:

  • 如何使用這些資訊來確定我的 wifi 卡是否可以使用?
  • 我怎麼知道要安裝什麼驅動程序?
  • 有 macOSBCM43xx驅動程序和 linuxBCM43xx驅動程序嗎?
  • 為什麼這個 mac 說支持所有PHY模式,但 wiki 頁面不支持?是因為他們是不同的司機嗎?

卡類型和韌體版本有什麼區別?

“關於此 Mac”中顯示的Card Type欄位似乎已損壞。它似乎將卡的供應商 ID 與子系統供應商 ID 結合起來,這可能會或可能不會唯一標識卡,即使這樣做,也只能辨識系統供應商的本機作業系統。

韌體版本是設備上執行的韌體版本。無線網卡非常複雜,以至於它內部有自己的 CPU(例如,微控制器)。韌體版本標識卡 CPU 上執行的軟體。

韌體版本是驅動程序的另一個詞嗎?

不,作業系統驅動程序在主 CPU 上執行。它負責將作業系統連接到 PCI 匯流排。韌體在無線網卡上執行。它負責將 PCI 匯流排連接到實際的無線電硬體。它最終有點像“驅動程序”,只是你不想這樣稱呼它,因為它會引起更多的混亂。

您可以將 PCI 匯流排視為房屋 (OS) 和附近的棚屋(無線網卡)之間的電話線。司機在屋子裡用棚子裡的韌體打電話。司機從屬於房子裡的一條指揮系統,但韌體是棚子裡的城堡之王。

由於許多卡本身不包含韌體,情況變得更加複雜。卡本身只有一種引導載入程序,可以通過 PCI 載入韌體然後執行它。所以你必須在作業系統端有一個兼容的韌體文件,並且作業系統驅動程序需要知道如何輸入它才能完全啟動卡。但是韌體不在作業系統中執行,它只是在沒有(太多)處理的情況下饋送到卡中。

lspci -k 輸出中的哪些術語對應於“關於本機”的輸出?

他們都沒有。Intel Corporation WiFi Link 5100 應該有 PCI ID [8086:4232],並且絕對不匹配 PCI 供應商0x14E4(Broadcom)。您使用 MacOS 和 Linux 的不同硬體;的完整輸出lspci -nn可能會揭示發生了什麼。

我怎麼知道要安裝什麼驅動程序?

您在 Linux 中找到的卡已被iwlwifi. 如果您可以使用它,那麼這樣做可能會更好,因為 Intel 卡比 Broadcom 卡具有更好的 Linux 兼容性。

根據Debian的說法,Broadcom 在 WL 版本 6.30.223.248 中為您的卡的兩個硬體版本添加了支持 - PCI IDs 14e4:43a014e4:4360

如果您仍需要確切了解您擁有的版本,請引導至 Linux 並執行

lspci -nn | grep 0280

如果您要進行全新的 Debian 安裝,請確保添加non-free類別以/etc/apt/source.list獲取專有的 Broadcom 驅動程序。

引用自:https://unix.stackexchange.com/questions/349163