🔥 BRAVE 質押池已上線 — 在錢包搜尋 BRAVE 即可委託

Intel MacBook Pro 全系安装 Ubuntu/Linux 完整配置指南

    • #34043

      涵盖 2016–2020 年所有 Intel 版 MacBook Pro(13″ / 15″ / 16″), 包括无 Touch Bar 款、Touch Bar 款,以及 T2 安全芯片款。

      系统版本:Ubuntu 24.04 LTS / 24.10 / 25.04 及衍生发行版(Pop!_OS、Linux Mint、Zorin OS 等)


      机型速查

      第一代:2016–2017(无 T2 芯片)

      型号标识年份尺寸Touch BarTouch ID独显声卡芯片
      MacBookPro13,1201613″Cirrus CS8409
      MacBookPro13,2201613″Cirrus CS8409
      MacBookPro13,3201615″✅ AMDCirrus CS8409
      MacBookPro14,1201713″Cirrus CS8409
      MacBookPro14,2201713″Cirrus CS8409
      MacBookPro14,3201715″✅ AMDCirrus CS8409

      第二代:2018–2020(带 T2 安全芯片)

      型号标识年份尺寸Touch BarTouch ID独显声卡
      MacBookPro15,12018-1915″✅ AMDT2 (apple-bce)
      MacBookPro15,22018-2013″T2 (apple-bce)
      MacBookPro15,3201915″✅ AMD VegaT2 (apple-bce)
      MacBookPro15,42019-2013″T2 (apple-bce)
      MacBookPro16,1201916″✅ AMD 5000MT2 (apple-bce)
      MacBookPro16,2202013″T2 (apple-bce)
      MacBookPro16,3202013″T2 (apple-bce)
      MacBookPro16,4202016″✅ AMD 5000MT2 (apple-bce)

      Apple Silicon(M1/M2/M3/M4)不在此文范围,请参考 Asahi Linux


      硬件兼容性总表

      组件2016–2017(无 T2)2018–2020(有 T2)
      Intel 显卡✅ 内核 i915 免驱✅ 内核 i915 免驱
      AMD 独显✅ 内核 amdgpu 免驱✅ 内核 amdgpu 免驱
      键盘 & 触控板✅ 内核 applespiapple-bce VHCI(需 T2 内核)
      内置扬声器✅ 需第三方驱动✅ 需 T2 内核 + apple-bce
      麦克风⚠️ 部分正常⚠️ 部分正常
      Wi-Fi⚠️ BCM43602 信号弱✅ BCM43602 同,16寸款需额外固件
      蓝牙✅ 免驱✅ 免驱
      摄像头uvcvideo 免驱✅ 通过 apple-bce 暴露为 USB
      屏幕 HiDPI
      Touch Bar⚠️ 需 SPI 驱动⚠️ 需 T2 内核 + tiny-dfr
      Touch ID❌ 不支持❌ 不支持
      电池
      NVMe SSD
      Thunderbolt⚠️ 可能需禁用 IOMMU
      挂起/休眠⚠️ 可能有问题⚠️ 部分修复
      风扇控制✅ 内核自带t2fanrd 守护进程

      第一章:2016–2017 款(无 T2 芯片)

      1.1 安装概述

      这些机型不需要特殊内核。标准 Ubuntu ISO 即可安装。安装后需要额外配置音频和 Touch Bar。

      1.2 音频修复(Cirrus Logic CS8409)

      所有六款 2016-2017 MacBook Pro 均使用 Cirrus Logic CS8409 HDA 编解码器,主线内核未包含完整驱动。

      # 安装依赖
      sudo apt install wget make gcc linux-headers-$(uname -r) git
      
      # 克隆驱动
      git clone https://github.com/davidjo/snd_hda_macbookpro.git
      cd snd_hda_macbookpro
      
      # 如果使用 HWE 内核(6.11+),需手动安装 linux-source
      # 确认所需版本:
      uname -r | cut -d- -f1   # 例:6.14.0
      # 从 Ubuntu 新版仓库下载对应版本:
      wget http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-source-$(uname -r | cut -d- -f1)_*.deb
      sudo dpkg -i linux-source-*.deb
      
      # 编译安装(脚本会自动检测内核版本选择合适的分支)
      sudo ./install.cirrus.driver.sh
      
      # 重启
      sudo reboot

      内核版本与脚本对应:

      内核脚本说明
      < 6.17install.cirrus.driver.pre617.sh旧流程,提取 sound/pci/hda 编译
      ≥ 6.17install.cirrus.driver.sh新流程,适配重构后的内核源码树

      注意事项:

      • 每次内核更新后需重新运行安装脚本
      • 耳机接口通常不受影响
      • 如果 pavucontrol 有跳动条但喇叭无声,检查是否静音或输出设备选错

      1.3 Touch Bar 配置(13,2 / 13,3 / 14,2 / 14,3)

      # 克隆 SPI 驱动
      git clone https://github.com/almas/macbook12-spi-driver
      cd macbook12-spi-driver
      git checkout touchbar-driver-hid-driver
      
      sudo ln -s "$(pwd)" /usr/src/applespi-0.1
      sudo dkms install applespi/0.1 --force
      
      # 添加模块到 initramfs
      sudo tee -a /etc/initramfs-tools/modules >/dev/null <<'EOF'
      applespi
      apple_ib_tb
      intel_lpss_pci
      spi_pxa2xx_platform
      EOF
      
      echo -e "apple-ibridge\napple-ib-tb" | sudo tee -a /etc/modules
      
      # 配置 Touch Bar 行为(fnmode=2 默认显示媒体键)
      sudo tee /etc/modprobe.d/apple_ib_tb.conf >/dev/null <<'EOF'
      options apple_ib_tb fnmode=2
      options apple_ib_tb idle_timeout=60
      EOF
      
      # 修复 hid-sensor-hub 抢占总线
      sudo tee /etc/udev/rules.d/90-apple-ibridge.rules >/dev/null <<'EOF'
      ACTION=="add", SUBSYSTEM=="hid", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="8600", ENV{HID_PHYS}=="*/input3", RUN+="/bin/sh -c 'echo %k > /sys/bus/hid/drivers/hid-sensor-hub/unbind 2>/dev/null; sleep 1; echo %k > /sys/bus/hid/drivers/apple-ibridge-hid/bind 2>/dev/null'"
      EOF
      
      sudo udevadm control --reload-rules
      sudo update-initramfs -u -k $(uname -r)
      sudo reboot

      1.4 Wi-Fi 信号优化(BCM43602)

      所有 2016-2017 款以及部分 2018+ 款均使用 BCM43602。开源驱动 brcmfmac 信号偏弱。

      # 部署调优 NVRAM 固件
      sudo apt install iw
      curl -L -o /tmp/brcmfmac43602-pcie.txt \
        "https://gist.githubusercontent.com/cristianmiranda/ba9d64b4324f0803d9422d765de62252/raw/fa8c3db4ece70e21b9619d918a5e5bfb6a28d72b/brcmfmac43602-pcie.txt"
      sudo cp /lib/firmware/brcm/brcmfmac43602-pcie.txt \
              /lib/firmware/brcm/brcmfmac43602-pcie.txt.bak 2>/dev/null || true
      sudo cp /tmp/brcmfmac43602-pcie.txt /lib/firmware/brcm/
      sudo modprobe -r brcmfmac && sudo modprobe brcmfmac
      
      # 关闭 Wi-Fi 省电模式
      sudo tee /etc/NetworkManager/conf.d/wifi-powersave-off.conf >/dev/null <<'EOF'
      [connection]
      wifi.powersave = 2
      EOF
      sudo systemctl restart NetworkManager

      1.5 键盘 & 触控板

      # 键盘重复延迟(蝶式键盘手感偏硬,调低延迟可改善)
      gsettings set org.gnome.desktop.peripherals.keyboard delay 250
      gsettings set org.gnome.desktop.peripherals.keyboard repeat-interval 25
      
      # 触控板
      gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
      gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll true

      1.6 屏幕 HiDPI

      # 开启分数缩放
      gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
      • 13英寸(2560×1600)建议 175%–200%
      • 15英寸(2880×1800)建议 150%–175%

      第二章:2018–2020 款(T2 安全芯片)

      2.1 T2 芯片简介

      T2 是 Apple 自研安全芯片,负责:

      • 键盘、触控板输入(通过 VHCI 虚拟 USB 控制器)
      • 内置扬声器、耳机接口(通过 apple-bce 音频驱动)
      • 摄像头(通过 apple-bce 暴露为 USB 设备)
      • 风扇控制、SMC 系统管理
      • 启动安全、加密存储

      因此,T2 Mac 需要特制内核才能驱动这些设备。

      2.2 安装方式

      方式 A:使用 T2 定制 ISO(推荐)

      t2linux 项目 提供预集成的 Ubuntu/Debian ISO,开箱支持键盘、触控板、音频。

      # 下载 T2 Ubuntu ISO
      # https://github.com/t2linux/T2-Ubuntu/releases
      # 写盘启动,安装过程与标准 Ubuntu 一致

      方式 B:标准 ISO + 后装 T2 内核

      如果已用标准 ISO 安装,手动替换内核:

      # 添加 T2 APT 源
      curl -fsSL https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/main/add repo.sh | sudo bash
      
      # 安装 T2 内核(会自动拉入 apple-bce 等依赖)
      sudo apt update
      sudo apt install linux-t2  # 主线内核
      # 或
      sudo apt install linux-t2-lts  # LTS 内核
      
      # 添加必要内核参数
      sudo tee /etc/default/grub.d/t2-params.conf >/dev/null <<'EOF'
      GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT intel_iommu=on iommu=pt pm_async=off"
      EOF
      sudo update-grub
      
      # 配置音频
      sudo apt install apple-t2-audio-config
      
      # 重启
      sudo reboot

      方式 C:手动安装 T2 内核 deb

      T2-Ubuntu-Kernel Releases 下载 linux-image-*t2*.deblinux-headers-*t2*.deb

      sudo dpkg -i linux-headers-*.deb linux-image-*.deb
      sudo update-grub
      sudo reboot

      2.3 键盘 & 触控板(T2 款)

      T2 款不需要 applespi。键盘、触控板通过 apple-bce 模块暴露为 USB HID 设备。安装 T2 内核后自动生效。

      如果键位映射不对(Ctrl / Option / Command 错位),可配置 hid_apple 模块:

      # 交换 Option 和 Command 键(PC 键盘布局习惯)
      sudo tee /etc/modprobe.d/hid_apple.conf >/dev/null <<'EOF'
      options hid_apple swap_opt_cmd=1
      options hid_apple fnmode=2
      EOF

      2.4 音频(T2 款)

      T2 款音频通过 apple-bce 驱动,安装 T2 内核后需额外配置:

      sudo apt install apple-t2-audio-config
      
      # PipeWire 用户(Ubuntu 24.04+ 默认)还需:
      sudo apt install pipewire-audio

      16寸机型(MacBookPro16,1 / 16,4)低音增强:

      sudo apt install t2-apple-audio-dsp-speakers161

      麦克风修复(T2 款麦克风音量普遍偏低):

      sudo apt install t2-apple-audio-dsp-mic

      2.5 Touch Bar(T2 款)

      T2 款 Touch Bar 通过 tiny-dfr 驱动,可自定义显示内容:

      sudo apt install tiny-dfr
      sudo systemctl enable --now tiny-dfr

      2.6 风扇控制

      T2 款没有传统 SMC,需用 t2fanrd 控制风扇:

      sudo apt install t2fanrd
      sudo systemctl enable --now t2fanrd

      配置文件 /etc/t2fanrd/config.toml

      # 温度阈值(摄氏度)
      [[temperature_zones]]
      name = "CPU"
      high = 75
      critical = 95
      
      [[temperature_zones]]
      name = "GPU"
      high = 70
      critical = 90
      
      # 风扇转速映射
      [fans]
      min_speed = 2000
      max_speed = 6200

      2.7 已知问题(T2 款)

      问题说明
      Thunderbolt 热插拔IOMMU 配置不当可导致内核崩溃
      音频输入/输出切换插入耳机时自动切换偶有不灵
      挂起恢复部分内核版本有问题
      Touch ID完全无解
      内置麦克风音量低,需 DSP 配置
      首次启动键盘不响应偶发,重启 apple-bce 模块即可

      第三章:通用配置与优化

      3.1 Bluetooth BLE 延迟优化

      sudo tee -a /etc/bluetooth/main.conf >/dev/null <<'EOF'
      
      [LE]
      MinConnectionInterval=6
      MaxConnectionInterval=9
      ConnectionLatency=0
      ConnectionSupervisionTimeout=200
      EOF
      sudo systemctl restart bluetooth

      3.2 挂起修复

      # 2016-2017 款
      sudo tee /etc/default/grub.d/mbp-suspend-fix.conf >/dev/null <<'EOF'
      GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT acpi_sleep=nonvs s2idle"
      EOF
      
      # T2 款需要不同的参数(已在 T2 内核安装时配置)
      # 检查现有参数:
      grep GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub
      
      sudo update-grub

      3.3 AMD 独显功耗控制(15″/16″ 双显卡机型)

      sudo tee /usr/local/bin/gpu-mode >/dev/null <<'SCRIPT'
      #!/bin/bash
      [ "$1" != "low" ] && [ "$1" != "high" ] && [ "$1" != "auto" ] && {
          echo "Usage: gpu-mode [low|high|auto]"; exit 1
      }
      echo "$1" > /sys/class/drm/card1/device/power_dpm_force_performance_level
      notify-send "GPU 模式" "已切换至: $1"
      SCRIPT
      sudo chmod +x /usr/local/bin/gpu-mode

      3.4 省电设置

      sudo apt install tlp tlp-rdw
      sudo systemctl enable tlp
      
      # Intel 显卡省电
      sudo tee /etc/modprobe.d/i915-power.conf >/dev/null <<'EOF'
      options i915 enable_psr=1 enable_fbc=1
      EOF

      3.5 查看电池状态

      upower -i /org/freedesktop/UPower/devices/battery_BAT0

      第四章:内核选择建议

      策略2016–2017(无 T2)2018–2020(有 T2)
      标准内核✅ 可用❌ 键盘/触控板/音频均失效
      T2 内核✅ 必需
      Ubuntu GA(6.8)✅ 最稳定⚠️ 需降级或使用 LTS T2 内核
      Ubuntu HWE(6.11+)⚠️ 需手动 linux-source⚠️ 需 T2 主线内核
      主线最新(6.x+)⚠️ 可能引入回归⚠️ 关注 t2linux 发布页

      第五章:已知无法解决的问题

      功能所有 Intel MacBook Pro
      Touch IDT1/T2 安全芯片协议未公开
      硬件加密引擎Apple 专属
      macOS 独有功能(Handoff、Universal Clipboard)Apple 生态封闭
      原生 Thunderbolt 热插拔(T2 款)IOMMU 兼容性问题
      原装充电器快充信息SMC 协议未公开

      第六章:卸载指南

      2016-2017 款

      # 音频驱动
      cd ~/snd_hda_macbookpro
      sudo ./install.cirrus.driver.sh -r
      
      # Touch Bar
      sudo dkms remove applespi/0.1 --all
      sudo rm -rf /usr/src/applespi-0.1

      T2 款

      # 移除 T2 内核,回到默认内核
      sudo apt remove linux-t2 linux-t2-lts
      sudo update-grub
      
      # 移除 T2 工具
      sudo apt remove apple-bce apple-t2-audio-config t2fanrd tiny-dfr

      第七章:快速上手脚本

      2016-2017 款一键脚本

      #!/bin/bash
      set -e
      echo "=== MacBook Pro 2016-2017 Ubuntu 配置 ==="
      
      # 音频
      git clone https://github.com/davidjo/snd_hda_macbookpro.git /tmp/snd
      cd /tmp/snd
      sudo ./install.cirrus.driver.sh
      
      # Wi-Fi 省电关闭
      sudo tee /etc/NetworkManager/conf.d/wifi-powersave-off.conf >/dev/null <<'EOF'
      [connection]
      wifi.powersave = 2
      EOF
      
      # 键盘/触控板
      gsettings set org.gnome.desktop.peripherals.keyboard delay 250
      gsettings set org.gnome.desktop.peripherals.keyboard repeat-interval 25
      gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
      gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll true
      
      # HiDPI
      gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
      
      echo "=== 完成,重启后生效 ==="

      T2 款一键脚本

      #!/bin/bash
      set -e
      echo "=== MacBook Pro T2 Ubuntu 配置 ==="
      
      # 添加 T2 源
      curl -fsSL https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/main/add_repo.sh | sudo bash
      sudo apt update
      
      # 安装 T2 内核
      sudo apt install -y linux-t2 apple-t2-audio-config t2fanrd tiny-dfr
      
      # 内核参数
      sudo tee /etc/default/grub.d/t2-params.conf >/dev/null <<'EOF'
      GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT intel_iommu=on iommu=pt pm_async=off"
      EOF
      sudo update-grub
      
      # Wi-Fi 省电关闭
      sudo tee /etc/NetworkManager/conf.d/wifi-powersave-off.conf >/dev/null <<'EOF'
      [connection]
      wifi.powersave = 2
      EOF
      
      # 风扇守护
      sudo systemctl enable t2fanrd
      
      # 键盘映射(交换 Option/Cmd)
      sudo tee /etc/modprobe.d/hid_apple.conf >/dev/null <<'EOF'
      options hid_apple swap_opt_cmd=1
      EOF
      
      echo "=== 完成,重启进入 T2 内核 ==="

      参考链接

  • 抱歉,回覆主題必需先登入。