0

Linux issues on iMac

I have Ubuntu 18.04.4 LTS and Arch Linux installed on an iMac, which I think doesn't support KMS. I have gotten Ubuntu to work with several desktops, window managers, and display managers. When I attempted to install Manjaro, nothing worked, even with nomodeset, so I tried Arch. I have gotten the TTYs to work on Arch, but not X (I haven't tried Wayland yet). The problems I have had so far:

  • Booting without nomodeset results in a black unresponsive screen
  • I can't successfully startx or xinit on Arch even with nomodeset
  • Suspending in Ubuntu results in a black unresponsive screen
  • Ubuntu brightness keys don't work, but an image on the screen says it does

I have a bunch of information, please let me know if any is unnecessary, or if I need to add more details.

More boot info

When I boot without nomodeset I see some info ending with the following:

*Error* No UMS support in radeon module!

At this point, the resolution sharpens slightly, then the screen goes black. With nomodeset, the screen doesn't go black but shows more logs, then proceeds to the login screen.

UPDATE: I used to be able to see that message, but I can't seem to bring it back. Everything else is the same, though.

Ubuntu 18.04

System info (as found in settings GUI):

  • Memory: 3.8 GiB
  • Processor: Intel® Core™️ i3 CPU 540 @ 3.07GHz x 4
  • Graphics: llvmpipe (LLVM 9.0, 128 bits)
  • GNOME: 3.28.2
  • OS type: 64-bit
  • Disk: 376.9 GB

lspci | grep VGA prints 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV730/M96-XT [Mobility Radeon HD 4670]

cat /var/log/Xorg.0.log prints a whole bunch of stuff, let me know if you need any of it.

Arch

startx & prints:

X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
Build Operating System: Linux Arch Linux
Current Operating System: Linux amc-arch 5.6.5-arch3-1 #1 SMP PREEMPT Sun, 19, Apr 2-2- 13:14:25 +0000 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux root=/dev/sda3 nomodeset
Build Date: 30 March 2020 05:05:45AM

Current version of pixman: 0.38.4
        before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file:"/var/log/Xorg.0.log", Time: Mon Apr 20 19:53:22 2020
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
ile at "/var/log/Xorg.0.log" for additional information.(EE) (EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Job 1, 'startx &' has ended

The log file is smaller, but still big. Let me know if it is necessary.

KMS - Kernel Mode Setting

I have looked around the internet, and I believe the issue is kernel mode setting. If you know about this, I would appreciate help. Is the only solution an external graphics card that supports KMS? Can I use or make a window manager or desktop environment that doesn't require KMS? Can I make a suggestion to the Linux Kernel to make an alternative to KMS that will still work?

Why does Ubuntu work (mostly) but Manjaro doesn't?

0
2

Unfortunately there exit no easy fix for this problem. I only know about a really really complex workaround.

Update, so far the bitness of the EFI is the same like that of the used kernel (64-bit EFI and 64-bit Kernel) there exist an alternative method. Check my other answer for more information.

The main problem is that the Linux Kernel is not able to get the necessary Video BIOS information (from the Apple EFI firmware) to proceed with its KMS (kernel mode-setting) GPU initialization. This results in the *Error* No UMS support in Radeon module! message.

A quite complex solution can be found at the following link. This describes that at first the vBios has to be dumped under Mac OS. And then, it is necessary to build an own custom Linux kernel which contains the previously dumped vBios file.

https://forum.artixlinux.org/index.php/topic,586.0.html

Whatever, this problem shows in some way that the decision to scrap the previously used UMS (user-space mode-setting) was not in every case a good thing. For such situations like here, there should exist an alternative fall-back option. I am thinking of a way to specify and load the needed vBios file manually so that whole KMS process can continues. Unfortunately such an emergency option doesn't exists.

So right now, it is necessary to go the long way and build a custom Linux kernel.

1

Here follows a short addendum. After some even more intensive research regarding this topic it seems that there exist a simpler way to get this work. So it is not in every case necessary to build a custom kernel which includes the video bios.

Note, the bitness of the EFI must correspond to the bitness of the Operation System (64-bit EFI and 64-bit Kernel) otherwise the following will NOT work!

In short, the alternative method works through booting over the EFISTUB feature: https://www.rodsbooks.com/efi-bootloaders/efistub.html

This allows a direct boot of the Linux kernel from the Apple EFI firmware. That in turn allows that the necessary Radeon Video BIOS can be grabbed by the Linux kernel.

When booting over GRUB this is NOT possible because the Apple EFI firmware only expose the Video BIOS information for a short time at power on. So it is absolutely necessary to boot directly over EFISTUB. The only boot loader which can assist is REFInd. It extends the time for access the vbios and hands-over the information to the Linux kernel. https://en.wikipedia.org/wiki/REFInd

Finally, Linux kernel 5.7 has received some very interesting EFI enhancements. These changes theoretically allows EFISTUB to boot up also in mixed mode (32-bit EFI and 64-bit Kernel) environments. Source: Booting 64-bit kernel on 32-bit UEFI add support for generic EFI mixed mode boot

3
  • How do I find out the bitness of the EFI?
    – Not me
    Jan 20 at 12:58
  • This can be checked with the REFInd boot manager. When booting into REFInd, there exists under the options (small icons) a blue information sign which shows some basic EFI system information. However, that is here not really necessary because your iMac is 1000% 64-bit EFI based. ;-) Only the very first Apple Intel computers in 2006 had a 32-bit EFI firmware.
    – Clemens
    Jan 20 at 17:50
  • I have opened an experimental howto at askubuntu. For more information, look there: askubuntu.com/questions/1309906/…
    – Clemens
    Jan 22 at 11:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.