Despite having Radeon rather than nVidia graphics, this iMac model suffers from a number of graphics-related problems. The problems I have encountered are:
- The screen becomes disabled/turned off when kernel mode setting kicks in.
- After resuming from suspend-to-RAM, the screen cannot be re-enabled even with the fix described below.
- The system produces an interface for controlling a nonexistent backlight in
Workaround for the KMS bug
During the initial installation process, it is simplest to add
modprobe.blacklist=radeon to your kernel command line when booting from the installation media. I did not attempt to boot in BIOS mode, though I doubt it would make much difference with regards to the black screen. You will need to keep this parameter in your kernel command line until after you have installed a graphical environment, so when you install your desktop environment, be sure to also install . This will allow you to use software rendering and the high-resolution EFI framebuffer until you get the radeon problem sorted out. When you have gotten your graphical environment the way you want, install , and create the following script:
#!/usr/bin/bash /usr/bin/xrandr -d :0 --output eDP-1 --crtc 1
Note: if eDP-1 does not work, try just "eDP." If you can log into the graphical session blindly, you can then use SSH to see the exact name by running
xrandr -d :0.
Make it executable.
Note that you may need to first create this file by running
sddm --example-config > /etc/sddm.conf.
Now, you should be able to remove the
modprobe.blacklist parameter from your kernel command line and reboot with 3D acceleration supported.
Workaround for suspend-and-resume
Currently, there is no solution to the suspend-and-resume issues.
Workaround for the fake backlight control
acpi_backlight=none to your kernel command line and reboot. Your desktop environment should now be able to adjust the screen brightness properly. (Note that you will have to install the package if you wish to adjust the brightness in Plasma.)
Suggestions about the bootloader
Because Mac computers do not have a normal UEFI, I advise making your bootloader follow Apple's conventions as much as possible. This will allow you to make the Arch entry in the Option-key boot menu nice and pretty, as well as allowing you to set Arch as the default OS instead of macOS. Here are the rough steps to do this. Consider these instructions a supplement to—not a replacement for—the installation guide. They only detail the steps that deviate from the normal install process.
- Before installing Arch, create a 1 GiB partition in Disk Utility formatted as MacOS Extended (Journaled). Name it "ArchLinux-Boot".
diskutil disableJournal /dev/diskXsYfrom the macOS terminal. (Replace X and Y with the disk and partition numbers from
- Create a full-sized partition for the root filesystem and optionally a swap partition in Disk Utility as well. The filesystem does not matter for these, as they will be overwritten anyway.
- Boot into the install media (do not forget the workaround for graphics above)
gdiskto change the partition type codes on the root and swap partitions to the proper codes for Linux Filesystem (8300) and Linux Swap (8200).
- Format the partitions with your choice of filesystem.
- Mount your newly-formatted root filesystem on
/mnt. Create the directories
- Mount the EFI system partition under
- Mount the HFS+ filesystem you created in Disk Utility under
mkdir -p /mnt/applebootpartition/System/Library/CoreServices /mnt/applebootpartition/loader/entries /mnt/applebootpartition/kernel. The first set of directories emulates a macOS installation so that it will be picked up by the firmware. The second two are for Linux-specific things, as you will see later.
- Generate the fstab file. You will probably need to correct the bind-mount fstab entries to use directories that make sense for the installed system rather than the live environment.
pacstrapas specified in the main installation guide and chroot into the new system.
/applebootpartition/System/Library/CoreServices/boot.efiand from there configure systemd-boot as though
/applebootpartitionwere the EFI system partition.
/applebootpartition/kernelshould contain your vmlinuz and initramfs images.
- Create the file
/applebootpartition/mach_kernel(it should be an empty file). I'm not sure whether this is actually necessary for the firmware to detect the partition as bootable.
- Perform any other needed installation steps, then reboot into the installed system by holding down the option key when the iMac boots.
iMac12,2 27" 2011
The following setting should be used to handle headphone detection correctly:
options snd-hda-intel model=imac27
To adjust the backlight, adjust the values in "radeon_bl1" rather than "acpi_video0."
You can check the maximum value allowed with:
$ cat /sys/class/backlight/radeon_bl1/max_brightness
And you can set the current brightness with:
# echo value > /sys/class/backlight/radeon_bl1/brightness
acpi_backlight=native to the kernel command line.