How to get HDMI work on MacBook Pro M1? Doesn't work on mine

AFAIK, HDMI is supposed to work with Fedora 39 on MacBook Pro M1 14". Should I do something to enable HDMI? Because it doesn’t work at all and the monitor is not detected.

Thanks!

I didn’t do anything specific to enable built-in HDMI on my 14" M1 Pro (2021), after some bumps in the road I have it working (with caveats) from a fresh Fedora 39 installation.

I do not plug in the HDMI before power-on, because it confuses sddm most of the time. I boot up, login with the main display, then plug in the external display.

My display is a 2 yr old LG 1440p, it claims 144Hz but that never works great, so I’m running Fedora at 1440p 60Hz.

The display never actually works after wake from suspend, so I’m just not suspending. Seems to require a full restart when it gets in that state. The Display Configuration tray icon will appear, and Fedora will act like there’s an extended display, but nothing on screen. In that case, I unplug, restart, login, then plug in HDMI, then all the pieces are happy.

I have not debugged an HDMI port before, but happy to report anything I can so we can compare notes from the same machine.

1 Like

Thanks for your reply, My M1 doesn’t see the HDMI screen at all, regardless of when I connect it to the laptop.

Thanks for the info, at least I know there is nothing special that I should do for it.

When did you install Fedora Asahi Remix? If it old install (before autumm 2023) it’s possible that it is using system firmware from MacOS 12.3 which has no HDMI support in the linux display driver? If you don’t know it’s easy to find out. Please attach the output of asahi-diagnose after you connected a HDMI display (preferably from a fresh boot).

1 Like

Yeah, you are right. I installed it before then. Is there any way to upgrade the firmware without re-installing from scratch?

It’s not clear that this is the old firmware version is the issue. A newer install would have allowed to rule that out. Please check the OS firmware version with tr '\0' '\n' < /proc/device-tree/chosen/asahi,os-fw-version. That should either print “12.3” or “13.5”.
There is a way to install the OS firmware without complete new install but it is not straight forward. Please let’s first determine if it is necessary.

1 Like

OK. It seems that it is 12.3:

# tr '\0' '\n' < /proc/device-tree/chosen/asahi,os-fw-version
12.3

And asahi-diagnose output also confirms it:

Firmware versions

iBoot1:         iBoot-10151.61.4
iBoot2:         iBoot-7459.101.2
SFR:            unknown
OS firmware:    12.3
m1n1 stage 2:   v1.4.11
U-Boot:         2023.07

… but it is not straight forward

If it’s documented somewhere, I’d be willing to take the risk :smiley:

Please ensure you have a restorable backup of your Fedora installation.

Please attempt this only if you’re comfortable with the steps mentioned here and be prepared to do a fresh install.

Read the Partitioning cheatsheet

Use the command line diskutil in macOS. The gui diskutil can not deal with this properly.

  1. Comment the “/boot/efi” line in /etc/fstab
  2. Copy the contents of the EFI system partition (~500MB FAT/MSDOS partition) from macOS (parts need to be copied back from macOS later)
  3. Delete the EFI system partition and the ~2.5GB APFS partition directly before that, should have “Fedora” in its name.
  4. Start the installer (curl https://alx.sh | sh ), install into the free space (~3GB) and do an UEFI-only install
  5. After completing the installation (in recovery after pressing the power button for ~15 seconds) not press enter to reboot when asked in the terminal. Instead kill the installer with control + c and select macOs as startup disk and rebooot into macOS
  6. Copy the saved folders EFI and m1n1 from step 2 back to the new EFI system partition and reboot into fedora
  7. Update the UUID of the “/boot/efi” line in /etc/fstab and uncomment it
1 Like

Thanks :ok_hand: , I’ll try it and report back the results.

Thanks, it worked! :slight_smile:

The only visible change is that the icon in mac book’s boot menu has changed from the Fedora icon to Asahi one. But everything went smoothly.

If you want to restore the Fedora icon in the boot picker save https://pagure.io/fedora-logos/blob/master/f/bootloader/fedora.icns as .VolumeIcon.icns in /Volumes/$FEDORA/ where $FEDORA is the name of your Fedora/Uefi-only installation.

1 Like

Great, thanks!

This also worked for me using Arch Linux ARM (ALARM).

I want to add some notes however, just to help others (or my future self in case I need to do this again) to make this an absolute no brainer:

To step 1) Comment the line within linux, just to make clear where to start.

To step 2) The copy can be done with just macOS’ finder or using cp command.

To step 3) Again, just to repeat it, use diskutil command, not UI (and read the wiki page before)

To stop 5) This one was a bit unclear for me: “do not press enter when the install is finished” means to actually go through all the steps in that terminal, meaning to hit control + c really at the end of the complete installation. I was confused a bit and thought to hit control + c immediately within the recovery shell where it also says press enter to continue or something like that. So you have to go through the security weaking steps (which wants you to enter the password a couple of times) and only then when all this is finished, when the installer really says installation finished, press enter to continue, this is when you want to it control + c. Also “select macOs as startup disk” means you need to go into the menu top left and choose startup disk, just in case you are wondering where to do that.

To step 6) Did this with finder as well.

To step 7) To find the UUID I just used “KDE Partition Manager”, right click on the EFI partion, “Properties” and you see the XXXX-XXXX UUID.

I was also asking questions regarding this guide in IRC, so you might be interested to read through it as well: https://oftc.irclog.whitequark.org/asahi/2024-07-17