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 的网络控制器,检查正在使用的内核模块。正如 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
启动进入 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,请将 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。
#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 脚本,通过简单的 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
/sys/class/* 中的文件,但如果您愿意,您可以 chown /sys/class/leds/smc\:\:kbd_backlight/brightness 和 /sys/class/backlight/intel_backlight/brightness15 英寸和 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 使用集成显卡,请查看以下主题: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 使用集成显卡,请查看以下主题:force 2011 macbook to use integrated card。您可能需要在内核命令行中附加 radeon.modeset=0,以便 linux 不尝试使用它
radeon.modeset=0