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 的网络控制器,检查正在使用的内核模块。正如 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

请参考 Installing 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,请将 fnmode=2 参数设置为 hid_apple 模块。更多信息请参见 Kernel modules#Setting module options

触摸板

双指滚动和左键单击开箱即用。遗憾的是,右键单击不起作用。

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

mtrack

Mtrack 在 xf86-input-mtrackAUR 中可用。配置通过 /etc/X11/xorg.conf.d/10-mtrack.conf 文件完成。检查 mtrack 模块是否已正确加载到 /var/log/Xorg.0.log 文件中。有时 xorg 会先加载其他驱动程序,例如 synaptics,而 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 脚本,通过简单的 cli 提供屏幕和键盘背光管理(-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/* 中的文件,但如果您愿意,您可以 chown /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)有间歇性爆裂声;将 'tsched=0' 附加到 /etc/pulse/default.pa 中的 '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

故障排除

集成 GPU 故障

配备集成显卡的 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 禁用独立 GPU 或在 EFI 中禁用独立 GPU。

' 使用 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。更多详情请参见此错误报告

您可能会发现需要启用 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

参见