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
8,2 和 8,3
ip link 不显示无线网卡。在这种情况下,请通过运行 lspci -v 检查正在使用哪个 内核模块,并查找名为 BCM4331 的 Network controller。如 Broadcom wireless#Installation 中所述,8,2 上使用的 BCM4331 芯片组在 b43 模块方面存在问题,如果加载的是 bcma 或 bcma-pci-bridge 模块,您需要切换它。尝试通过阻止任何可能干扰的模块来强制切换到(非免费但更可靠的)**wl** 模块:rmmod b43 bcma ssb wl; modprobe wl,然后通过 ip link 检查无线连接是否已显示。然后,您可以使用 iwctl 继续连接到互联网。如果您在 iwctl 中无法查看设备,您需要 重启 iwd.service。如果您希望安装后更改能够持久,请记住在 pacstrap 过程中安装 linux-headers 和 broadcom-wl-dkms(以及 iwd 或类似的软件包,用于在安装后管理连接)。如果在安装后,屏幕在引导后冻结,请尝试使用内核参数引导
radeon.modeset=0
以禁用 ATI Radeon 显卡。
使用 rEFInd 和 EFI 引导存根
可以 rEFInd 作为引导管理器,作为 GRUB 或 systemd-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.."
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。
#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 可正常工作。
例如:
$ 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
/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 使用集成显卡,请查看以下主题: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 使用集成显卡,请查看以下主题:force 2011 macbook to use integrated card。您可能需要在内核命令行中追加 radeon.modeset=0,以便 Linux 不会尝试使用它。
radeon.modeset=0