跳转至内容

MacBookPro8,x

来自 ArchWiki

本文或本节需要在语言、wiki 语法或风格方面进行改进。请参阅 Help:Style 获取参考。

原因:风格错误过多无法一一列举,且未遵循 Help:Laptop page guidelines。 (请在 Talk:MacBookPro8,x 讨论)

本文档提供在 2011 年初 MacBook Pro 上安装 Arch Linux 的技巧。

请在 https://bbs.archlinux.org/viewtopic.php?pid=1021706 讨论

安装

遵循 安装指南 大体可行,但由于显卡问题,在引导时有必要添加一些 内核参数,并且可能需要切换 内核模块 才能使无线网络正常工作。

8,1

论坛帖子: BBS#136833

将以下内容添加到 内核参数

 i915.enable_fbc=1 usbcore.autosuspend=1 h
注意 使用 xf86-video-intel 时,请谨慎启用 帧缓冲压缩,因为它可能导致主显示器在某些程序(如 Firefox)中出现延迟或冻结。有关详细信息和解决方法,请参见 [1] 以及 Intel graphics#Installation 中的注意事项。

8,2 和 8,3

注意 对于 8,2(可能也适用于 8,1 和 8,3),请注意您可能会发现 ip link 不显示无线网卡。在这种情况下,请通过运行 lspci -v 检查正在使用哪个 内核模块,并查找名为 BCM4331 的 Network controller。如 Broadcom wireless#Installation 中所述,8,2 上使用的 BCM4331 芯片组在 b43 模块方面存在问题,如果加载的是 bcmabcma-pci-bridge 模块,您需要切换它。尝试通过阻止任何可能干扰的模块来强制切换到(非免费但更可靠的)**wl** 模块:rmmod b43 bcma ssb wl; modprobe wl,然后通过 ip link 检查无线连接是否已显示。然后,您可以使用 iwctl 继续连接到互联网。如果您在 iwctl 中无法查看设备,您需要 重启 iwd.service。如果您希望安装后更改能够持久,请记住在 pacstrap 过程中安装 linux-headersbroadcom-wl-dkms(以及 iwd 或类似的软件包,用于在安装后管理连接)。

如果在安装后,屏幕在引导后冻结,请尝试使用内核参数引导

 radeon.modeset=0 

以禁用 ATI Radeon 显卡。

使用 rEFInd 和 EFI 引导存根

可以 rEFInd 作为引导管理器,作为 GRUBsystemd-boot 的替代方案,但可能需要一些配置。

安装 rEFInd

请参阅 安装 rEFInd

启动到 Mac OS X

 # mkdir -p /efi/refind
 # cp -r refind/* /efi/refind/
 # rm /efi/refind/refind_ia32.efi
 # mv /efi/refind/refind.conf-sample /efi/refind/refind.conf and adjust it
 # bless --setBoot --folder /efi/refind --file /efi/refind/refind_x64.efi

设置 EFI 引导存根

请遵循 EFI 引导存根

添加内核模块

没有它,您将收到 root fs not found 错误。

编辑 /etc/mkinitcpio.conf

 MODULES="..ahci libahci.."

然后重新生成 initramfs

BIOS 引导

以 BIOS 仿真模式引导。AMD 显卡可用,但 Intel 显卡不可用。

使用 rEFInd 加载 GRUB legacy。

无线网络

有关 b43 的安装和使用,请参阅 Broadcom wireless

键盘和触摸板

键盘

默认的 F1 键代表 XF86MonBrightnessDown,如果您希望它代表 F1。为 hid_apple 模块设置 fnmode=2 参数。有关更多信息,请参见 Kernel modules#Setting module options

触控板

两指滚动和左键单击开箱即用。不幸的是,右键单击无法正常工作。

有两种驱动程序可以为触摸板(包括右键和中键单击)提供功能:mtrack,据报告工作良好;以及 Synaptics,它提供了更多功能,但可能需要一些调整。

mtrack

mtrack 可在 xf86-input-mtrackAUR 中找到。配置通过 /etc/X11/xorg.conf.d/10-mtrack.conf 文件完成。请在 /var/log/Xorg.0.log 文件中检查 mtrack 模块是否已正确加载。有时 xorg 会先加载其他驱动程序,例如 synpatics,而 mtrack 驱动程序根本不被使用。

对于 MBP 8,3,我需要使用以下配置(在 /etc/X11/xorg.conf.d/10-mtrack.conf 中)来防止它错误地识别其他输入设备。

Section "InputClass"
  Identifier "Multitouch Touchpad"
  Driver "mtrack"
  MatchDevicePath "/dev/input/event*"
  MatchProduct "bcm5974"
  MatchIsTouchpad "true"
EndSection

synaptics

有关 synaptics 的安装和配置说明,请参阅 Touchpad Synaptics#Installation

提示 Synclient 提供了一些额外的触摸板配置。
 #list all possible configurable parameters.
 synclient
 
 #To change a value for a command use `synclient command=X`
 #Example:
 synclient HorizTwoFingerScroll=1

在您通过 synclient 成功尝试并测试了您的选项后,您可以通过将它们添加到 /etc/X11/xorg.conf.d/50-synaptics.conf 来使这些更改永久生效。

视频和屏幕

13 英寸

Intel HD Graphics 3000:使用 xf86-video-intel 可正常工作。

调整亮度:使用 xorg-xbacklight 可正常工作。

注意 自 Linux 内核 6.1 起,需要一个额外的 背光内核参数,例如 acpi_backlight=native[2]

例如:

$ xbacklight -inc 7 # increase brightness
$ xbacklight -dec 7 # decrease brightness

或者,您可以使用一个简单的 bash 脚本,通过简单的命令行(-d 用于显示 / -k 用于键盘)来管理屏幕和键盘的背光。

#!/bin/bash
case $1 in
       -d|--display)
           if [ "$2" != "0" ]
               then
                   echo "$[(($2 * 4882) / 100) % 4883]" > /sys/class/backlight/intel_backlight/brightness
           fi;;
       -k|--keyboard)
           echo "$[(($2 * 255) / 100) % 256]" > /sys/class/leds/smc\:\:kbd_backlight/brightness;;
       -h|--help)
           echo -e "MacBook 8.1 brightness helper\n\t-d\tset display brightness (0-100%)\n\t-k\tset keyboard brightness (0-100%)\n";;
       *)
           echo -e "Unknown option try -h or --help";;
esac

将其保存在 /usr/local/bin/macbackl 并将其标记为 可执行文件

使用方法,请运行

$ macbackl --help
注意 您必须是 root 用户才能编辑 /sys/class/* 中的文件,但如果您愿意,可以更改 /sys/class/leds/smc\:\:kbd_backlight/brightness/sys/class/backlight/intel_backlight/brightness 的所有权。

15 英寸和 17 英寸

AMD Radeon HD 6490M:未知。

AMD Radeon HD 6750M 和 6770M:使用 xf86-video-ati 可正常工作。

声音

8,3

某些应用程序(例如 VLC)会出现间歇性的噼啪声;在 /etc/pulse/default.pa 中将 'tsched=0' 追加到 'module-udev-detect' 可以解决此问题。

待机和休眠

8,1

对于 s2ram,请安装 uswsusp-gitAUR,并将以下内容添加到文件 /etc/pm/config.d/module 中。

 SUSPEND_MODULES="bcma b43" 
 SLEEP_MODULE=uswsusp

否则,系统将在机器唤醒并尝试重新连接到无线网络后挂起。

HFS+

HFS 被挂载为只读。通过在 OS X 中 关闭日志记录,HFS+ 文件系统在 Linux 下将是读/写的。

蓝牙

我在配对设备时遇到了问题,使用以下命令没有任何设备被检测到:

hcitool scan

蓝牙模块和 b43(wifi)模块之间似乎存在冲突。解决方法是创建 /etc/modprobe.d/b43.conf 并包含以下内容:

options b43 btcoex=0

故障排除

集成显卡故障

8.2 型号的 MacBook Pro 集成显卡存在制造缺陷,导致 GPU 的无铅焊料开裂,从而影响其功能。问题开始表现为显示器出现红线,然后无法引导 OS X。Apple 发布了 维修计划,但您的 GPU 很可能很快就会再次出现故障。

仍然可以通过 grub2 中如上所述的 outb 0x750 行来引导 Linux,但这很麻烦,因为当问题严重时,屏幕可能无法读取,导致无法安装。此外,您可能还希望使用 GRUB 以外的其他引导加载程序。

可以通过强制 EFI 使用集成显卡来修复该问题。

警告 这需要您手动写入 EFI 的值。这可能会导致系统变砖,但通过 pram 重置应该可以安全操作。

如果您想强制 EFI 使用集成显卡,请查看以下主题:force 2011 macbook to use integrated card。您可能需要在内核命令行中追加 radeon.modeset=0,以便 Linux 不会尝试使用它。

radeon.modeset=0

Grub2-EFI 引导:Intel 无效 ROM 内容

如果在引导时看到此错误并且屏幕输出似乎已冻结,则需要禁用 KMS。

您有两个选择:使用 grub 禁用独立显卡,或在 EFI 中禁用独立显卡。

' 使用 grub '

将以下内容追加到您的 /etc/grub/defaults LINUX 行

i915.modeset=0 radeon.modeset=0

然而,较新版本的 Xorg Intel/i915 驱动程序需要 KMS 才能工作;没有它,X 服务器将回退到帧缓冲模式,性能很差。根本问题是 Intel KMS 驱动程序选择了错误的视频输出;要解决此问题,请尝试以下设置(已在 8,3/17" MBP 上测试)。

radeon.modeset=0 i915.modeset=1 i915.lvds_channel_mode=2

这应该能提供 Intel 显卡输出。请注意,这需要内核 3.5rc1 或更高版本;如有必要,请使用 Aur 中的 linux-mainline。有关更多详细信息,请参阅 此 bug

您可能会发现需要启用 Intel 设备;如果使用 Grub,则以下命令应该可以在引导时启用它。

set gfxpayload=keep
# Switch gmux to IGD
outb 0x728 1
outb 0x710 2
outb 0x740 2

或者,如果您有 OS X,可以使用 gfxCardStatus 在引导到 Linux 之前切换到 Intel 设备。

' 强制 EFI 使用集成显卡 '

警告 这需要您手动写入 EFI 的值。这可能会导致系统变砖,但通过 pram 重置应该可以安全操作。

如果您想强制 EFI 使用集成显卡,请查看以下主题:force 2011 macbook to use integrated card。您可能需要在内核命令行中追加 radeon.modeset=0,以便 Linux 不会尝试使用它。

radeon.modeset=0

参见