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/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 使用集成显卡,请查看以下主题: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