iMac Unibody
尽管使用 Radeon 而不是 nVidia 显卡,但 this iMac 型号仍然存在许多与图形相关的问题。我遇到的问题有
- 当内核模式设置启动时,屏幕会禁用/关闭。
- 从挂起到内存恢复后,即使使用下面描述的修复方法,屏幕也无法重新启用。
- 系统在
/sys/class/backlight/acpi_video0
中生成一个用于控制不存在的背光的接口。
KMS 错误的解决方法
在初始安装过程中,最简单的方法是在从安装介质启动时,将 modprobe.blacklist=radeon
添加到您的 内核命令行。我没有尝试在 BIOS 模式下启动,尽管我怀疑这对黑屏会有多大影响。您需要将此参数保留在您的内核命令行中,直到您安装了图形环境之后,因此当您安装桌面环境时,请务必同时安装 xf86-video-fbdev。这将允许您使用软件渲染和高分辨率 EFI 帧缓冲,直到您解决 radeon 问题。当您以您想要的方式获得图形环境后,安装 xorg-xrandr,并创建以下脚本
/usr/local/bin/fix_display
#!/usr/bin/bash /usr/bin/xrandr -d :0 --output eDP-1 --crtc 1
注意:如果 eDP-1 不起作用,请尝试仅使用 “eDP”。如果您可以盲登入图形会话,则可以使用 SSH 运行 xrandr -d :0
来查看确切的名称。
使其可执行。
编辑您的显示管理器配置,以便在 greeter 启动时运行该脚本。我使用 SDDM,所以我这样配置它
/etc/sddm.conf
[X11] DisplayCommand=/usr/local/bin/fix_display
请注意,您可能需要首先通过运行 sddm --example-config > /etc/sddm.conf
来创建此文件。
现在,您应该能够从内核命令行中删除 modprobe.blacklist
参数,并在支持 3D 加速的情况下重新启动。
挂起和恢复的解决方法
目前,挂起和恢复问题尚无解决方案,但如果可能,尝试使用 Legacy 启动而不是 EFI 值得一试。
伪造背光控制的解决方法
将 acpi_backlight=none
添加到您的 内核命令行并重新启动。您的桌面环境现在应该能够正确调整屏幕亮度。(请注意,如果您希望在 Plasma 中调整亮度,则必须安装 powerdevil 软件包。)
关于引导加载器的建议
由于 Mac 电脑没有标准的 UEFI,我建议您尽可能使您的引导加载器遵循 Apple 的约定。这将使您在 Option 键启动菜单中的 Arch 条目美观漂亮,并允许您将 Arch 设置为默认操作系统而不是 macOS。以下是执行此操作的大致步骤。请将这些说明视为安装指南的补充,而不是替代品。它们仅详细说明了偏离正常安装过程的步骤。
- 在安装 Arch 之前,在磁盘工具中创建一个 1 GiB 的分区,格式化为 MacOS 扩展(日志式)。将其命名为 “ArchLinux-Boot”。
- 从 macOS 终端运行
diskutil disableJournal /dev/diskXsY
。(将 X 和 Y 替换为diskutil list
中的磁盘和分区号。) - 在磁盘工具中为根文件系统创建一个全尺寸分区,并可选择创建一个交换分区。这些文件系统无关紧要,因为它们无论如何都会被覆盖。
- 启动到安装介质(不要忘记上面关于图形的解决方法)
- 使用
gdisk
将根分区和交换分区上的分区类型代码更改为 Linux 文件系统 (8300) 和 Linux 交换 (8200) 的正确代码。 - 格式化您选择的文件系统的分区。
- 将您新格式化的根文件系统挂载到
/mnt
。创建目录/mnt/esp
、/mnt/applebootpartition
和/mnt/boot
。 - 将 EFI 系统分区挂载到
/mnt/esp
下 - 将您在磁盘工具中创建的 HFS+ 文件系统挂载到
/mnt/applebootpartition
下。 - 运行
mkdir -p /mnt/applebootpartition/System/Library/CoreServices /mnt/applebootpartition/loader/entries /mnt/applebootpartition/kernel
。第一组目录模拟 macOS 安装,以便固件可以识别它。后两组用于特定于 Linux 的内容,您稍后会看到。 - 将
/mnt/applebootpartition/kernel
绑定挂载到/mnt/boot
- 生成 fstab 文件。您可能需要更正绑定挂载 fstab 条目,以使用对已安装系统而不是实时环境有意义的目录。
- 按照主安装指南中的指定运行
pacstrap
,并 chroot 到新系统。 - 将
/usr/lib/systemd/boot/efi/systemd-bootx64.efi
复制到/applebootpartition/System/Library/CoreServices/boot.efi
,并从那里配置 systemd-boot,就好像/applebootpartition
是 EFI 系统分区一样。/applebootpartition/kernel
应该包含您的 vmlinuz 和 initramfs 镜像。 - 创建文件
/applebootpartition/mach_kernel
(它应该是一个空文件)。我不确定这对于固件检测分区是否可启动是否真的必要。 - 执行任何其他需要的安装步骤,然后在 iMac 启动时按住 option 键重新启动到已安装的系统。
iMac12,2 27" 2011
声音
应使用以下设置来正确处理耳机检测
/etc/modprobe.d/sound.conf
options snd-hda-intel model=imac27
亮度
要调整背光,请调整 “radeon_bl1” 而不是 “acpi_video0” 中的值。
您可以使用以下命令检查允许的最大值
$ cat /sys/class/backlight/radeon_bl1/max_brightness
您可以使用以下命令设置当前亮度
# echo value > /sys/class/backlight/radeon_bl1/brightness
或者,将 acpi_backlight=native
添加到内核命令行。