Decentralization? We're still early!

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

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

    發布人 Brave 2026-05-28 13:57

    涵盖 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 内核 ==="

    参考链接

    Brave 回复 2 weeks, 2 days ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在