Fedora Asahi Remix installation report for M1 Pro (after ~10 years of Arch)

14" M1 Pro (2020), 16GB, 512GB SSD

This is my first ever Apple product! And first ever foray into Fedora! I’ve been a daily Linux user for nearly 20 years, mostly Dell machines like the XPS series. The last 10 years or so I’ve been an Arch Linux user. I was tempted by the Asahi Arch install, but seeing as Fedora is planned to be the new main distro, I thought I’d just get in early.

Overall it’s incredible, thank you so much to everybody involved :heart: I have everything set up exactly how I want and need for my software engineering work.

Minimal Rawhide

As an Arch user it seemed that the Minimal Rawhide flavour would suite me best. But in hindsight I might caution against that.

  • The biggest issue I had was Wifi completely dropping and reconnecting every 5 minutes. It took me a couple of days to realise that I had installed iwd when NetworkManager was already enabled. Being a minimal install I assumed that there’d be no bundled Wifi connection tools. Turns out that having 2 installed causes issues.

  • I wonder if another issue with the minimal install is that I’m missing out on some Asahi-specific fixes? Eg, these Mesa ENV vars are needed to assert the state of the graphics driver:

    MESA_GL_VERSION_OVERRIDE=3.3
    MESA_GLSL_VERSION_OVERRIDE=330
    MESA_GLES_VERSION_OVERRIDE=3.1
    

    Particularly, I needed those to get OBS Studio working, which, amongst other things, is needed to have good external webcam support.

  • I was surprised that I didn’t see any errors when building kernel modules, even though there were indeed errors. Case in point, v4l2loopback is needed to create virtual software cameras that can be used as webcam sources to say, publish OBS streams to your Google Hangouts or Zoom meetings. When I installed it, it completed and said everything was fine. But it hadn’t compiled the kernel module. I eventually realised I needed the kernel-16k-devel package to enable automatically building kernel modules (on install and upgrades). So perhaps this was another drawback of diving into the minimal Fedora install as a first time user.

  • I don’t know if this is aarch64-specific but a disadvantage of current Rawhide is that it doesn’t seem to have any openh264 packages available. Instead I had to get the packages from an older version. With eg; sudo dnf install --release=39 gstreamer1-plugin-openh264 mozilla-openh264 openh264.

Installing the OBS DroidCam plugin

DroidCam is a mobile app and OBS plugin that allows using your mobile phone’s camera as a webcam. I like it because it has the lowest latency. OBS is involved because it provides a virtual camera that can be used as a webcam source.

  • Mobile apps: DroidCam OBS Camera by Dev47Apps
  • OBS plugin source: GitHub - dev47apps/droidcam-obs-plugin: DroidCam OBS Source
  • For a while I thought there was a missing devel dependency: usbmuxd-devel. But it turned out that it was in libimobiledevice-devel. Is there a way to search inside packages? Or what would you recommend for when a devel package doesn’t seem to be available?
  • In the Makefile I had to change LDD_LIBS += -limobiledevice to LDD_LIBS += -limobiledevice-1.0. I’ve submitted a PR to the plugin repo, so this might be fixed soon anyway.
  • The plugin is not detected when placed in ~/.config/obs-studio/plugins, only once I copied it to /usr/lib64/obs-plugins did OBS recognise it and load it.
  • But fingers crossed that Android 14 gets rolled out soon as it has native support for exposing cameras as webcams.

Filesystem encryption

  • I was a bit surprised that home directory encryption wasn’t documented anywhere that I could easily find. I ended up following this blog post: Encrypting your home directory in Fedora 38 - Tao of Mac
  • Because of lots of tmpfs use and zram, I assume there’s less of a need to encrypt /tmp and swap?

Miscellaneous

  • Can the active screen area be made to stretch up beyond the position of the webcam?
  • I use a wlroots-based WM called Wayfire, so I don’t have any redshift utility yet. Looks like we’re waiting on gammastep: Night Color Not working · Issue #67 · AsahiLinux/docs · GitHub Note that it does seem that KDE has got this working.
  • Plugging in an external mic to the jack port gives: “cs42l84 2-004b: Detected bare headphone (no mic)”
  • Are there Git-based RPM packages? I know about Copr, but I’m more wondering about something like Arch’s PKGBUILD where the build itself happens locally and each build pulls the latest commit.
2 Likes

GL3.3 is not fully supported yet, so those overrides are necessary for OBS for the time being; that’s working as intended. The version the driver advertises (GL3.1, GLES3.1) is what is fully supported. Software like OBS can work with the overrides, but that doesn’t mean those versions are fully supported.

openh264 should actually be installed by default on F38/F39, but yeah, it looks like there are no rawhide packages.

Can the active screen area be made to stretch up beyond the position of the webcam?

Yes but no desktop environment today has proper notch support (e.g. to avoid fullscreening apps under the notch), which is why this isn’t enabled by default and never will be (once a standard for this and DE support materializes, it will be automatically opted-in by compositors which support it, but the default will always be no notch). Use the apple_dcp.show_notch module param.

1 Like

I’d generally recommend against only encrypting parts of your system. Are you sure nothing sensitive will ever end up in the system logs, for instance? If nothing else, encrypting the entire disk means not having to worry about what data ends up where.

Full disk encryption is surprisingly easy to enable post install on Fedora, but you do need an additional install to boot from (or do some fiddling with your grub config to boot from a root file system on a USB stick).

Thanks for the feedback!

FYI the Rawhide images for the Remix are almost entirely untested at the moment – the main reason we build them is to get a heads up on potential breakage coming down the road. In general, I wouldn’t recommend running Rawhide unless you plan to keep an eye on and/or be involved with Fedora development. While Rawhide is way more stable than it used to be (in no small part thanks to @adamwill’s efforts around gating), it can still see a fair amount of turmoil at times.

Were you installing this from rpmfusion or from somewhere else?

I don’t think Cisco builds these for Rawhide, but I could be mistaken. @ngompa do you know?

If you know the include you’re missing, dnf install /usr/include/foo.h will install the right package providing it. You can use repoquery to perform complex queries on packages and their content, and you can use context:global repo:^src… - Sourcegraph to search quickly in the package sources.

Fedora builds these. If builds are missing, just file a BZ against the openh264 component in the Red Hat Bugzilla and @kalev will take care of the rest.

On this note, running Rawhide means you might get untested updates to things like m1n1 (which I’m just building right now). I recommend not updating these blindly and waiting until we push the corresponding packages to the stable releases.

Wow, thanks so much for all the feedback everybody :blush:

Ohh right, that totally makes sense now.

I’ll give it a go.

Ohh, for some reason I thought full disk encryption wasn’t supported yet. Looks like I’m going to be reinstalling to move away from Rawhide, so I’ll try those instructions out then. Thank you.

Apparently I installed v4l2loopback from @System

Amazing, thank you.

Ok, thanks for the heads up. I’ll try for a bit longer with Rawhide, but seeing as I want this machine to be my main working environment it looks like I’ll be better off with a stable release.

1 Like

Note that you do get updates for all the fun Asahi stuff with Fedora stable releases, so there’s no reason to run Rawhide unless you want that experience in general. In general F38/F39/Rawhide are all rolling releases as far as our packages are concerned, we just have QA gates for F38/F39 while Rawhide gets everything.

I expect ~everyone using Fedora Asahi to be on F39 in the near future, and it’s what I plan to run everywhere myself (and QA). Upgrades from F38 are supported and should work. I don’t know that any of us really plan to dogfood Rawhide on the regular, other than keeping the packages building there (to make sure we’re ready for F40 etc) and trying out specific new things that we want to test at certain points in time, so I wouldn’t recommend it to anyone who wants a stable setup since it’s going to get very little QA.

1 Like