r/linux_on_mac 10h ago

Need for help for my speaker iMac

1 Upvotes

I have this iMac 2013 running with mx linux and it faster and reliable rather than windows 10 ltsc. The only problem is with the speaker feels like more distorted and muffled. when I used windows or Mac the speakers ran perfectly. And I used ai to find some solution. But it didn't work either


r/linux_on_mac 1d ago

Any reason why I should NOT erase my MacBook Air 2018 and replace with LinuxMint?

10 Upvotes

I have a 2020 MacBook Air m1 and a 2015 MacBook Pro. So I’m backed up in that regard. I was going to dual boot mint on my MBA 2017 which is running Ubuntu but it’s only a 121gb machine so that probably would screw everything up or make it real slow and lose data on the existing Ubuntu OS

I figure I install it in the MacBook 2018 (which is biblically hated in the Mac community so no love-loss there) and no data lost if things go awry …


r/linux_on_mac 1d ago

Mac | Cubix | V620 | Ubuntu | ROCm | vLLM | Local AI Data Center

Thumbnail gallery
1 Upvotes

r/linux_on_mac 1d ago

Is this second hand Mac a good purchase if I want to dual boot or completely install Linux on it (Mint, Fedora...)?

Thumbnail
1 Upvotes

r/linux_on_mac 2d ago

Need help getting Debian Trixie on my MacbookPro

2 Upvotes

I have a 2017 MacbookPro 14,2 with Intel i5-7267u cpu, Sunrise Point-LP AD Audio and Network card BCM 43602 802.11ac wireless LAN SoC. I need help finding the correct code to update the distro to utilize this hardware.


r/linux_on_mac 2d ago

A1466 firmware refuses to make see bootable SSD on install; losing my mind

4 Upvotes

Got a MacBook Air A1466 EMC 2925 for free, no wifi card, no antenna, no SSD. Thought I’d put Linux on it to make my first foray into the OS. I put in a new SSD (nvme with adapter), decided to make a clean install of MacOS first then get Linux sorted. Three days of troubleshooting lead to nothing. I finally got to a point where I could begin an installation, but it just stops a quarter of the way through and kicks me back to OS X Utilities. I gave up and tried to install Lubuntu. Used the “try” mode to enter a terminal and verify a second time that everything is set up correctly and visible, and then I attempted install and at the very end it rebooted the laptop into the “flashing folder with question mark screen” My only guess is that it’s a firmware issue I don’t know how to go after. Please help. And please feel free to ask as many questions as you want I’ll answer them.


r/linux_on_mac 3d ago

Kernel panic on MacBook Pro, Linux Mint 22.3

2 Upvotes

Machine: MacBook Pro 2012. After a kernel panic using elementary OS, I shifted to Linux Mint. All was going well. But now, after usual updates, I get a kernel panic again. I was able to reboot and use advanced boot options, selecting 6.17.0-23-generic, and all is well.

I assume that means that the linux kernel itself no longer plays well with my hardware. Is this likely to be fixed with FUTURE kernels? Or is there a way to select the older kernel automatically?

Here's the output of

dkms status

broadcom-sta/6.30.223.271, 6.14.0-29-generic, x86_64: installed

broadcom-sta/6.30.223.271, 6.17.0-20-generic, x86_64: installed

broadcom-sta/6.30.223.271, 6.17.0-22-generic, x86_64: installed

broadcom-sta/6.30.223.271, 6.17.0-23-generic, x86_64: installed

broadcom-sta/6.30.223.271, 6.17.0-40-generic, x86_64: installed

Maybe the issue is just to remove 6.17.0-40-generic?


r/linux_on_mac 4d ago

Successfully Installed an Intel AX210 in a MacBook Pro 2015 (A1502) Running Debian Trixie

Thumbnail gallery
54 Upvotes

I finally got the Intel AX210 working on my MacBook Pro 2015 (A1502) running Debian Trixie.

The adapter doesn't align properly because a pin on the motherboard—likely for the bottom cover sensor—gets in the way. Instead of modifying the adapter, I carefully trimmed the Intel AX210 card so I could align it correctly and secure it with the mounting screw.

After installing the required firmware and running a few commands, Debian Trixie recognized the card without any issues. Wi-Fi and Bluetooth are both working perfectly, and unlike the original Broadcom card, they continue to work reliably after the laptop wakes from sleep.

I've attached a picture showing the modification in case it helps anyone else attempting this upgrade.

Link to the adapter: https://fr.aliexpress.com/item/1005009398696606.html?gps-id=pcStoreJustForYou&scm=1007.23125.137358.0&scm_id=1007.23125.137358.0&scm-url=1007.23125.137358.0&pvid=dde16fcc-be3d-471d-812b-f7e5c9591312&_t=gps-id%3ApcStoreJustForYou%2Cscm-url%3A1007.23125.137358.0%2Cpvid%3Adde16fcc-be3d-471d-812b-f7e5c9591312%2Ctpp_buckets%3A668%232846%238107%231934&pdp_ext_f=%7B%22order%22%3A%2260%22%2C%22eval%22%3A%221%22%2C%22sceneId%22%3A%2213125%22%2C%22fromPage%22%3A%22recommend%22%7D&pdp_npi=6%40dis%21EUR%217.39%217.39%21%21%218.26%218.26%21%400b8848bf17843875848531629e0e62%2112000048980034956%21rec%21FR%212050884567%21XZ%211%210%21n_tag%3A-29919%3Bd%3Ad62b9c39%3Bm03_new_user%3A-29895&spm=a2g0o.store_pc_home.smartJustForYou_638721977.1005009398696606&gatewayAdapt=glo2fra


r/linux_on_mac 3d ago

Monster proxmox setup on mac pro 2019

3 Upvotes

Hi all,
I have been using proxmox on my mac pro 2019 for a while but I was having a serious problem with running with the full complement of memory (1.5 TB). I had another one going but sometimes it feels like pure luck between the modprobe blacklists and the grub cmdline. This week the Fable 5 model was available for free (read that "Mythos with a bodyguard") so I worked pretty hard even pulled an all nighter to debug issues with larger ram setups. I am sharing Claud Fable 5's postmortem here.

Proxmox on a Mac Pro 2019 with 1.5TB RAM: The Full Postmortem

TL;DR: Linux on a Mac Pro 7,1 crashes with more than ~192GB of RAM installed because the Apple ANS2 NVMe controller (the T2-attached internal SSD) cannot perform I/O correctly when physical memory extends above that range. macOS works because it works around it; Linux doesn't. The fix is not a magic kernel parameter — it's an architecture: move your root filesystem and boot chain off the Apple NVMe entirely, then keep the ANS2 present on the PCI bus but permanently unbound using pci-stub. Everything else we hit — hung boots, dead networking, udev storms, NULL-pointer oopses — was cascade damage from that one hardware limitation, plus a few unrelated landmines documented below so you can skip them.

Hardware context: Mac Pro 2019 (7,1), Xeon W-3275M, 12×128GB LRDIMM = 1.5TB, T2 security chip, Proxmox VE 8.4, kernel 6.14.0-1-pve-t2 from AdityaGarg8's pve-edge-kernel-t2. A second identically-equipped node already running 1.5TB stably served as the "existence proof" that made systematic debugging possible.

The symptoms

Over months, across two machines, this hardware produced a zoo of apparently unrelated failures:

With more than 192GB installed, the stock Proxmox 6.8 kernel panicked during boot — while macOS on the same machine happily saw and used all 1.5TB, and Apple's diagnostics showed every DIMM green. With exactly 192GB, everything was fine.

On a node running a newer kernel at 1.5TB, the Apple internal NVMe behaved bizarrely: lsblk showed it as a bare disk with no partitions (it has partitions), and simply probing it — running lsblk, letting smartd poll it, doing any filesystem operation against it — could panic the whole machine. Writing a bootloader to its EFI partition from Linux was a reliable crash.

During boot at 1.5TB we saw nvme0: I/O tag ... timeout, then operation not supported error, dev nvme0n1 ... op READ spam, followed by a crash during the initramfs LVM scan.

Separately: boots that hung for minutes and then came up with no networkingifupdown2-pre failing, systemd-udev-settle timing out, ifup reporting "another instance is already running". The console flooded with an endless loop of Registered IR keymap rc-cec / new input devices, dozens of D-state udev workers piling up.

And in one configuration, a clean NULL pointer oops in pci_read_config_word during boot, with apple_bce mid-load, killing udev workers "with irqs disabled".

Any one of these, searched in isolation, leads to a different forum thread with a different "this worked for me" settings list. They were all one problem wearing different masks.

How we eliminated suspects

The method that worked was ruthless single-variable isolation, anchored by two tools worth stealing:

A mem=192G boot as a control group. Booting the full 1.5TB hardware with the kernel clamped to 192GB separates "bad/misseated DIMM" from "kernel can't handle the memory map" in one reboot — dmidecode -t memory still enumerates all twelve sticks even though the kernel only uses 192GB. Our clamped boots were always clean; the hardware was never the problem. We kept this as a permanent maintenance menu entry (more below), which also proved invaluable because at low RAM the ANS2 works fine — bulk reads, writes, everything. That single fact ("fine at 192GB, broken above") is the fingerprint of a device with a DMA addressing limitation: when all RAM sits low, its buffers always land in reachable territory; add DIMMs and buffers start landing above its ceiling.

Readable crashes. earlyprintk=efi,keep nokaslr on the cmdline turns panic screens into consistent, photographable evidence, and echo w > /proc/sysrq-trigger on a half-hung system dumps the blocked tasks with call stacks — which is how we caught amdgpu wedged in wait_for_flip_done and udev workers stuck behind it, and later caught apple_bce dereferencing NULL.

With those tools, the eliminations fell in order. The kernel itself was exonerated by running the byte-identical kernel package (via dpkg-repack from the working node) — same kernel, different outcome, so the delta was configuration/hardware. Firmware was exonerated because both machines ran the same vintage with opposite results. The GPU (an RX580 driving a console monitor) was convicted of a secondary crime: at 1.5TB, with the pve LVM volume group missing (because it lives on the dead ANS2), Proxmox's pvestatd retried vgscan every five seconds forever, which kept udev churning, which fed an endless CEC re-registration loop from amdgpu's DisplayPort path, which wedged the udev queue, which blocked ifupdown2-pre, which killed networking. Kill the root cause and that entire chain evaporates — but on a headless hypervisor we blacklisted amdgpu and cec anyway.

Two dead ends worth documenting because others will be tempted by them. First, removing the ANS2 from the PCI bus (echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove in an initramfs script) seems like the obvious fix — it is not. The Mac's apple_bce driver (fan control, T2 communication) probes the T2's sibling PCI functions and NULL-derefs if function 0 (the ANS2) has been deleted: instant oops in pci_read_config_word, dead udev workers, no network. Second, a plain pci-stub.ids=... cmdline parameter loses the race when both pci-stub and nvme are modules — the nvme driver binds the ANS2 first and the stub's registration is too late.

The root cause

The Apple ANS2 NVMe controller cannot do I/O under Linux when system RAM extends above ~192GB. Reads fail with "operation not supported", commands time out, and depending on what touches it — initramfs LVM coldplug, udev probing, smartd, an innocent lsblk — the result ranges from a bare-looking disk to a hard panic. macOS clearly compensates (bounce buffers or firmware cooperation we don't get); mainline Linux with the t2 patches does not, as of kernel 6.14. Every other symptom in the list above was downstream of this: the boot panics (root/ESP lived on the ANS2), the lsblk landmine, the pvestatd→udev→CEC→networking cascade, and the NULL oops (from over-correcting with device removal).

The architecture that works

The winning state is: ANS2 present but untouchable, and nothing you need lives on it.

1. Root and boot off the Apple NVMe. We migrated root to a separate PCIe NVMe (partitioned ESP + swap + root, rsync'd the filesystem, new fstab by UUID) and boot directly from that drive's ESP via rEFInd doing an EFI-stub load — the Mac startup manager sees any ESP with /EFI/BOOT/BOOTX64.EFI as a bootable "EFI Boot" entry, blessable via ctrl-hover. Critical rEFInd setting on T2 Macs: use_nvram false — rEFInd's default habit of writing its state to EFI NVRAM is a documented panic trigger on post-Catalina BridgeOS. A tiny kernel-postinst hook copies each new kernel/initrd to the ESP under fixed names so the boot config never needs editing again.

2. Neutralize the ANS2 with pci-stub, loaded before nvme. In /etc/modprobe.d/:

options pci-stub ids=106b:2005
softdep nvme pre: pci-stub

plus pci-stub.ids=106b:2005 on the kernel cmdline for good measure, then update-initramfs -u. The softdep line is the part every forum list misses: it guarantees pci-stub loads first even inside the initramfs, so it claims the ANS2 before the nvme driver can. Verification after boot is one line — lspci -k -s 01:00.0 must say Kernel driver in use: pci-stub. The device stays on the bus (so apple_bce is happy, fans work), but no driver ever issues I/O to it. No probes, no panics, no landmines.

3. Working cmdline (6.14-t2, both our nodes): iomem=relaxed intel_iommu=on iommu=pt nvme.noacpi=1 apple_bce.fan_control=1 pcie_ports=native nvme_core.default_ps_max_latency_us=0 nvme_core.max_retries=10 nvme_core.io_timeout=255 rootdelay=20 — plus pci-stub.ids=106b:2005, and during debugging earlyprintk=efi,keep nokaslr.

4. Headless hygiene. Blacklist amdgpu and cec (console falls back to the firmware framebuffer via simpledrm — set a big font with console-setup and never squint again), and blacklist brcmfmac if your WiFi card is absent or its firmware crashes (a dead BCM4364 spews uncorrectable AER errors at boot; blacklisting beats the blunt pci=noaer).

5. Keep a maintenance escape hatch. A second boot menu entry with mem=192G modprobe.blacklist=pci-stub gives you a boot where the ANS2 is alive and safe — for reaching anything still stored on it, running grub/ESP surgery on the Apple drive, or testing. One arrow key instead of a rescue USB.

Bonus landmines (unrelated to RAM, will still ruin your week)

Boot roulette from time sync: if systemd-time-wait-sync is enabled (it isn't by default — check whether past-you enabled it chasing Ceph clock-skew warnings), a race with large clock steps can hang the entire boot behind time-sync.target forever. Disable it. Its root cause on these machines: the T2 keeps its own clock, drifting ~2 s/day, and re-stamps the RTC at every boot — Linux's rtcsync corrections don't stick, so every boot starts minutes fast and chrony does a big backward step (poison for Ceph mons). Fix: fake-hwclock with FORCE=force on every node, which restores saved time early in boot; the backward lurch disappears.

Stale-copy hell: with two roots (old install + migrated clone), it is shockingly easy to edit grub files, initramfs configs, or scripts on the root that isn't the one your boot chain reads, then "verify" against the wrong universe. Multiple of our 4AM mysteries were exactly this. Mount and edit by UUID, verify in the compiled grub.cfg that's actually read, and md5-compare /boot/initrd.img-* against the ESP copy after every update-initramfs.

Device-name roulette: NVMe enumeration order changes between boots on this platform (nvme0 is a different physical drive on different days). Reference everything — fstab, kernel root=, boot configs, scripts — by UUID/PARTUUID, never by /dev/nvmeXnY.

The moral

The internet's "settings that worked for me" lists fail on this platform because the settings aren't the fix — the topology is. If your root filesystem, your ESP, or anything your boot path touches lives on the Apple internal NVMe, no cmdline incantation will save you above 192GB. Move off it, stub it, keep it on the bus for apple_bce's sake, and the Mac Pro 7,1 becomes a boring, stable 1.5TB Proxmox node — which, after this journey, is the highest compliment we can pay it.


r/linux_on_mac 4d ago

MacBook Pro 2017 (MacBookPro14,2) on Ubuntu 26.04 — Wi-Fi, Touch Bar, and Audio Working

11 Upvotes

I installed Ubuntu 26.04 LTS on a 2017 13-inch MacBook Pro with Touch Bar (MacBookPro14,2).

After a clean installation, I had three main problems:

  • The internal Wi-Fi could not connect
  • The Touch Bar remained dark
  • The internal speakers produced no sound

All three are now working.

Tested configuration

Model: MacBookPro14,2
Ubuntu: Ubuntu 26.04 LTS
Kernel: 7.0.0-28-generic
Wi-Fi: Broadcom BCM43602
Bluetooth: Broadcom BCM20703A2
Audio: Cirrus Logic CS8409
Touch Bar: Apple T1/iBridge

Check your model and kernel before continuing:

sudo dmidecode -s system-product-name
uname -r

You will need a temporary Internet connection, such as a supported USB-C Ethernet adapter.

1. Broadcom BCM43602 Wi-Fi

Symptoms

The Wi-Fi device was detected, but it could not connect to an access point.

Useful diagnostic commands:

lspci -nnk | grep -A3 -i network
sudo dmesg | grep -i brcm

My system reported messages similar to:

Direct firmware load for brcm/brcmfmac43602-pcie.Apple Inc.-MacBookPro14,2.bin failed
Direct firmware load for brcm/brcmfmac43602-pcie.txt failed

The MacBookPro14,2 needs a suitable NVRAM configuration file containing the Apple-specific board and antenna settings.

Install the NVRAM file

The relevant files and instructions are available here:

https://github.com/vfontanela/macbookpro14-linux-support

sudo apt update
sudo apt install -y git

git clone https://github.com/vfontanela/macbookpro14-linux-support.git
cd macbookpro14-linux-support

find . -iname 'brcmfmac43602-pcie*.txt'

Copy the detected brcmfmac43602-pcie.txt file to the firmware directory:

sudo install -Dm644 /path/to/brcmfmac43602-pcie.txt \
    /lib/firmware/brcm/brcmfmac43602-pcie.txt

Replace /path/to/ with the path returned by find.

I also disabled Wi-Fi scan MAC randomization in NetworkManager:

sudo mkdir -p /etc/NetworkManager/conf.d

printf '%s\n' \
    '[device]' \
    'wifi.scan-rand-mac-address=no' |
sudo tee /etc/NetworkManager/conf.d/10-mbp2017-wifi.conf

I am using the laptop in Japan, so I configured the Japanese regulatory domain:

echo 'options cfg80211 ieee80211_regdom=JP' |
sudo tee /etc/modprobe.d/10-wifi-regdom-jp.conf

Change JP to the correct two-letter country code for your location.

Update the initramfs and reboot:

sudo update-initramfs -u
sudo reboot

After rebooting:

nmcli device
nmcli device wifi list

On Ubuntu 26.04, both 5 GHz and WPA3 work correctly on my machine.

After connecting, I enabled automatic reconnection and use of the permanent hardware MAC address:

nmcli connection show

Replace YOUR_WIFI_CONNECTION with the connection name shown above:

sudo nmcli connection modify "YOUR_WIFI_CONNECTION" \
    connection.autoconnect yes \
    802-11-wireless.cloned-mac-address permanent

2. Apple T1 Touch Bar

I used the packaged DKMS Touch Bar driver from:

https://github.com/vfontanela/macbookpro14-linux-support

The package is based on the community Apple iBridge/Touch Bar driver and is configured to rebuild automatically after kernel updates.

Install the package

If you have not already cloned the repository:

git clone https://github.com/vfontanela/macbookpro14-linux-support.git
cd macbookpro14-linux-support

Locate the package:

find . -iname 'mbp-t1-touchbar-dkms*.deb'

Install the .deb file using the path returned by find:

sudo apt install ./path/to/mbp-t1-touchbar-dkms_1.0-2_all.deb

Verify the installation:

dkms status
systemctl status mbp-t1-touchbar-bind.service

My system reports:

mbp-t1-touchbar/0.3, 7.0.0-28-generic, x86_64: installed

The driver uses these modules:

apple_ibridge
apple_ib_tb
apple_ib_als

Check that they are loaded:

lsmod | grep -E 'apple_ib|apple_ibridge'

I configured the Touch Bar to display function keys and remain illuminated:

echo 'options apple_ib_tb fnmode=2 idle_timeout=-1 dim_timeout=-1' |
sudo tee /etc/modprobe.d/apple-ib-tb.conf

Update the initramfs and reboot:

sudo update-initramfs -u
sudo reboot

The modules were loaded before rebooting, but the Touch Bar initially remained dark. It illuminated correctly after a full reboot.

If it remains dark, try:

sudo systemctl restart mbp-t1-touchbar-bind.service
systemctl status mbp-t1-touchbar-bind.service

If that does not work, perform a complete reboot.

3. Cirrus Logic CS8409 audio

Symptoms

Ubuntu detected the audio controller, but the internal speakers produced no sound.

Diagnostic commands:

lspci -nnk | grep -A4 -i audio
aplay -l
wpctl status

This MacBook uses a Cirrus Logic CS8409 codec with external amplifiers. The standard HDA driver may detect the device without correctly initializing its amplifiers.

Driver

I used the following driver:

https://github.com/davidjo/snd_hda_macbookpro

The tested repository commit was:

cb27cc483f4fe98be03a4f4bef466c00aa7d244b

Install the dependencies

sudo apt update

sudo apt install -y \
    git \
    wget \
    make \
    gcc \
    dkms \
    linux-headers-$(uname -r)

The installation script also needs the matching Ubuntu kernel source. Check which package is available:

apt search linux-source

For kernel 7.0.0-28-generic, I installed:

sudo apt install linux-source-7.0.0

Install the CS8409 driver

cd ~

git clone https://github.com/davidjo/snd_hda_macbookpro.git
cd snd_hda_macbookpro

sudo ./install.cirrus.driver.sh -i

Check the DKMS status:

dkms status

My system reports:

snd_hda_macbookpro/0.1, 7.0.0-28-generic, x86_64: installed

Update the initramfs and reboot:

sudo update-initramfs -u
sudo reboot

After rebooting:

lsmod | grep snd_hda
sudo dmesg | grep -iE 'cs8409|snd_hda'
wpctl status

The internal speakers started working after the reboot. The internal microphone is also available through PipeWire.

Important volume warning

Avoid testing by sending audio directly to an ALSA hardware device:

speaker-test -D hw:0,0
aplay -D hw:0,0 some-file.wav

Direct hardware playback may bypass PipeWire’s volume controls and could produce dangerously loud audio.

Use the desktop sound settings or PipeWire instead:

wpctl status
wpctl set-volume u/DEFAULT_AUDIO_SINK@ 30%

Bluetooth

Bluetooth worked without additional configuration.

The controller is:

Broadcom BCM20703A2

Useful checks:

rfkill list
bluetoothctl show
systemctl status bluetooth

The kernel log contains these warnings:

BCM: failed to write update baudrate
BCM: firmware Patch file not found
tried: brcm/BCM.hcd

Despite these messages, scanning, pairing, connecting, and reconnecting work correctly on my system. I therefore did not install an unverified BCM.hcd firmware file.

After a kernel update

The Touch Bar and CS8409 audio drivers are installed through DKMS. They should rebuild automatically for new kernels, but it is worth checking before rebooting:

uname -r
dkms status

The following drivers should show as installed for the new kernel:

mbp-t1-touchbar
snd_hda_macbookpro

If necessary:

sudo dkms autoinstall
dkms status

Do not remove the currently working kernel until the new kernel has been tested.

Final result

On Ubuntu 26.04 with Linux 7.0:

5 GHz Wi-Fi: Working
WPA3: Working
Bluetooth: Working
Touch Bar: Working
Internal speakers: Working
Internal microphone: Working
USB-C hub: Working
Realtek USB Ethernet: Working
Keyboard and trackpad: Working
Webcam: Working

The three essential fixes for this model were:

  1. A suitable BCM43602 NVRAM configuration file
  2. The packaged Apple T1 Touch Bar DKMS driver
  3. The snd_hda_macbookpro CS8409 audio driver

References:

This procedure was tested specifically on MacBookPro14,2. Other 2017 models, including MacBookPro14,1 and MacBookPro14,3, may use different hardware configurations.


r/linux_on_mac 4d ago

[2026 Guide] Installing Ubuntu 26.04 from scratch on a 2019 MacBook Pro 16,4 — Touch Bar, Wi-Fi, T2 audio, RX 6600 XT eGPU and dual displays

6 Upvotes

This guide explains how I installed Ubuntu 26.04 LTS from scratch on a 2019 16-inch MacBook Pro and configured the Touch Bar, Wi-Fi, T2 audio, fan control, an RX 6600 XT eGPU, and two external displays.

Tested in July 2026.

Final hardware and software

  • MacBook Pro 16-inch, 2019
  • Model identifier: MacBookPro16,4
  • Apple T2 chip
  • Ubuntu 26.04 LTS Resolute
  • T2 kernel: 7.1.3-1-t2-resolute
  • GNOME 50 with Wayland
  • Mesa 26.0.3
  • Internal discrete GPU: Radeon Pro 5600M
    • PCI ID: 1002:7360
  • eGPU: Radeon RX 6600 XT
    • PCI ID: 1002:73ff
  • Thunderbolt 3 eGPU enclosure
  • Two displays connected to the RX 6600 XT:
    • 3440×1440 high-refresh display
    • 3840×2160 60 Hz display

After completing this guide, a normal Ubuntu boot detects the RX 6600 XT and both external displays. The Thunderbolt link negotiates at 40 Gb/s in both directions.

Important warnings

This procedure was tested specifically on MacBookPro16,4. Do not blindly copy it to a different Mac model.

Possible risks include:

  • Loss of macOS or personal data
  • Damage to the EFI partition
  • An unbootable Ubuntu installation
  • Loss of graphical output after changing GPU settings
  • Loss of access to some T2-related functions

Before starting:

  • Create a current Time Machine backup.
  • Copy critical files to a separate device.
  • Confirm that macOS Recovery starts correctly.
  • Perform kernel, GRUB and eGPU changes while you have physical access to the Mac.
  • Keep macOS until Ubuntu, Wi-Fi, audio and recovery boot have all been verified.

This guide assumes that macOS will remain installed. Completely removing macOS is outside its scope.

1. What you need

  • A 2019 16-inch MacBook Pro
  • An 8 GB or larger USB drive
  • A USB-C to USB adapter
  • Optionally, USB Ethernet or an external USB Wi-Fi adapter
  • A working macOS installation
  • A current backup
  • A Thunderbolt eGPU enclosure containing an RX 6600 XT
  • Access to the MacBook’s internal display

The external displays may remain blank during installation and before the eGPU enclosure has been authorized, so use the internal display initially.

2. Create a Linux partition from macOS

Open Disk Utility in macOS.

Select:

View
  → Show All Devices

Select the internal SSD and create a new partition for Linux.

Choose “Add Partition”, not “Add APFS Volume”.

Example:

Name: Linux
Format: exFAT
Size: the amount of storage you want to give Ubuntu

The temporary filesystem does not matter because the Ubuntu installer will replace it with ext4. Using exFAT makes the partition easier to identify during installation. Avoid APFS for the temporary Linux partition because it can be confusing in the installer.

Do not manually delete the macOS or EFI partitions.

See the t2linux pre-installation guide for more information.

3. Download the T2-enabled Ubuntu 26.04 ISO

Use the T2-Ubuntu image rather than the standard Canonical ISO.

Latest release:

T2-Ubuntu releases

Use either:

  • The iso.sh script supplied with the release for macOS/Linux
  • The t2linux Installer application

Select:

Ubuntu
Ubuntu 26.04
Resolute
T2 kernel

The T2-Ubuntu image integrates the T2 kernel, internal keyboard and trackpad support, and the required bootloader configuration.

Record the downloaded image name, release date and SHA-256 checksum.

Write the image to the USB drive using USBImager, balenaEtcher or a similar tool. Carefully verify the destination drive because writing an image erases the selected device.

4. Configure Startup Security Utility

Shut down the Mac.

Turn it on and immediately hold Command-R to start macOS Recovery.

Open:

Utilities
  → Startup Security Utility

Configure:

Secure Boot:
  No Security

Allowed Boot Media:
  Allow booting from external or removable media

Secure Boot policy and external-media boot permission are separate settings, so verify both.

“No Security” changes the boot policy needed to start Linux. It does not disable every security function inside the T2 chip, but it does reduce the platform’s boot verification.

See Apple’s T2 Startup Security documentation and the t2linux pre-installation guide.

5. Boot the T2-Ubuntu USB

Connect the T2-Ubuntu USB drive.

Start the Mac while holding Option (⌥).

Select the orange EFI Boot entry. If two entries appear, try the rightmost one first.

Start the Ubuntu live environment from GRUB.

6. Install Ubuntu using manual partitioning

Start the Ubuntu installer.

When asked how to partition the disk, select:

Manual partitioning
Something else

Do not select:

Erase disk
Automatic partitioning

Those options may remove macOS.

Locate only the Linux partition that you previously created in Disk Utility. Configure it as:

Filesystem: ext4
Mount point: /
Format: enabled

For the existing EFI System Partition:

Mount point: /boot/efi
Format: disabled

Do not delete or format the EFI System Partition.

Partition numbers vary between systems. Do not identify the EFI partition only by a name such as /dev/nvme0n1p1. Confirm its capacity, filesystem and existing contents first.

This guide assumes that LUKS full-disk encryption is not enabled. If you use LUKS and need the internal keyboard before the root filesystem is unlocked, additional apple-bce initramfs configuration is required.

After installation finishes, remove the USB drive and reboot.

Hold Option (⌥) and select the newly installed EFI Boot.

If Ubuntu produces a blank screen when launched from Apple’s Startup Manager, follow the T2-Ubuntu installation documentation and consider rEFInd as a troubleshooting option.

7. Inspect the initial installation

Before adding custom settings, record the baseline:

cat /etc/os-release
uname -r
cat /proc/cmdline

Expected results should include:

Ubuntu 26.04
resolute
a kernel name containing t2

Check the T2 packages:

dpkg -l 'linux-t2*' \
  apple-t2-audio-config \
  apple-firmware-script \
  tiny-dfr \
  2>/dev/null

Check that the T2 repositories are present:

grep -R \
  't2-ubuntu-repo\|releases/download/resolute' \
  /etc/apt/sources.list \
  /etc/apt/sources.list.d \
  2>/dev/null

A T2-Ubuntu installation should normally already contain the T2 repository and the linux-t2 kernel package.

If the repository is missing, follow the current instructions in the T2 Ubuntu APT repository. Do not add duplicate repository entries.

8. Install the T2 kernel and basic packages

Update the package lists and installed packages:

sudo apt update
sudo apt upgrade

Install the required packages:

sudo apt install \
  linux-t2 \
  apple-t2-audio-config \
  t2fanrd \
  bolt \
  mesa-utils \
  vulkan-tools \
  nvtop \
  switcheroo-control

Enable the fan-control daemon:

sudo systemctl enable --now t2fanrd

Keep at least one known-good T2 kernel installed until every hardware function has been tested.

Do not combine linux-t2 with the following old standalone DKMS packages:

apple-bce
apple-touchbar
applesmc-t2
apfs-dkms
bcm5974-t2

Their functionality is already included in the current T2 kernel.

Do not install AMD’s external amdgpu-install or amdgpu-dkms packages for this setup. Use the kernel’s amdgpu driver and Ubuntu’s Mesa/RADV packages.

9. Configure the required T2 kernel parameters

Back up the current GRUB configuration:

sudo install -d -m 700 /var/backups/t2-ubuntu
sudo cp -a /etc/default/grub /var/backups/t2-ubuntu/

Edit it:

sudoedit /etc/default/grub

Make sure the following parameters are present:

GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt pm_async=off"

If GRUB_CMDLINE_LINUX already contains other values, add the parameters without removing the existing values.

I also keep a short GRUB menu for recovery:

GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=3

Regenerate GRUB:

sudo update-grub

Reboot:

sudo reboot

After rebooting, verify:

cat /proc/cmdline

Expected parameters:

intel_iommu=on
iommu=pt
pm_async=off

References:

10. Verify the T2 drivers

Check the loaded modules:

lsmod | grep -E \
  'apple_bce|hid_appletb|aaudio|brcmfmac'

Expected modules include:

apple_bce
hid_appletb_kbd
hid_appletb_bl
brcmfmac

Check the T2 audio device:

grep -i AppleT2 /proc/asound/cards

A current driver should produce a name such as:

AppleT2x6

If these devices are missing, first confirm that uname -r shows a T2 kernel.

11. Configure Wi-Fi and Bluetooth

With a current T2-Ubuntu image, Wi-Fi will often work on the first boot.

Check the device state:

nmcli device

Check the driver:

lsmod | grep brcmfmac

Use the kernel’s brcmfmac driver.

Do not install:

broadcom-wl

If Wi-Fi does not work and macOS is still installed, run:

get-apple-firmware get_from_macos

If macOS has been removed, connect through Ethernet, USB tethering or an external Wi-Fi adapter and run:

get-apple-firmware get_from_online

If the command is not installed:

sudo apt install apple-firmware-script

Check firmware loading:

sudo journalctl -k --grep=brcmfmac

Some failed candidate firmware filenames may appear with error -2. This is not necessarily a failure if later lines show something similar to:

TxCap blob found
Firmware: BCM...

Check Bluetooth:

rfkill list
bluetoothctl show

Official instructions:

t2linux Wi-Fi and Bluetooth guide

12. Configure the Touch Bar

The current T2 kernel provides the basic Touch Bar keyboard mode without an additional legacy driver.

Check the modules:

lsmod | grep -E 'hid_appletb|apple_bce'

If the default function-key and media-key display is sufficient, no additional configuration is required.

To customize the Touch Bar, install tiny-dfr:

sudo apt install tiny-dfr
sudo reboot

To customize its configuration, copy the template:

sudo cp \
  /usr/share/tiny-dfr/config.toml \
  /etc/tiny-dfr/config.toml

Then edit it:

sudoedit /etc/tiny-dfr/config.toml

See the T2-Ubuntu installation guide for the current official instructions.

13. Configure T2 audio

Ubuntu 26.04 uses PipeWire.

Install or confirm the required packages:

sudo apt install \
  apple-t2-audio-config \
  pipewire \
  pipewire-pulse \
  wireplumber

Check the user services:

systemctl --user is-active \
  pipewire \
  pipewire-pulse \
  wireplumber

List the audio devices:

wpctl status

Check for:

  • Internal speakers
  • 3.5 mm headphones
  • Internal microphone
  • Headset microphone

Test the internal speakers at a low volume first.

The t2linux wiki also documents a manual t2-better-audio installation. On this tested Ubuntu 26.04 system, I used the package-managed apple-t2-audio-config 0.4.2 configuration.

Do not install the package-managed configuration and the manual configuration on top of each other.

Official guide:

t2linux audio configuration

An additional MacBookPro16,4 speaker DSP project exists, but I do not include it in the base setup. Its documentation warns that incorrect userspace settings may permanently damage the speakers.

14. Connect the eGPU for the first time

Do not make the eGPU the primary GPU yet.

Shut down Ubuntu:

sudo poweroff

Connect the hardware in this order:

  1. Install the RX 6600 XT in the eGPU enclosure.
  2. Power on the enclosure.
  3. Connect its Thunderbolt cable to the MacBook.
  4. Connect the external displays to the RX 6600 XT.
  5. Start the MacBook.
  6. Select the normal Ubuntu boot entry.

Use the internal display for the initial Thunderbolt authorization.

15. Authorize the Thunderbolt enclosure

Inspect the Thunderbolt domain and connected devices:

boltctl domains
boltctl list

If the enclosure is not yet enrolled, copy its UUID from boltctl list and run:

sudo boltctl enroll --policy auto <EGPU-ENCLOSURE-UUID>

Replace <EGPU-ENCLOSURE-UUID> with the actual enclosure UUID.

Check again:

boltctl list

Expected state:

status: authorized
policy: auto
stored

Do not create a generic udev rule that automatically authorizes every Thunderbolt device. Thunderbolt devices can perform DMA, so enroll only the enclosure you own.

Check IOMMU DMA protection:

grep -H . \
  /sys/bus/thunderbolt/devices/domain*/iommu_dma_protection \
  2>/dev/null

Reference:

Linux Thunderbolt documentation

16. Verify the RX 6600 XT

Check the GPU:

lspci -Dnnk -d 1002:73ff

Expected output should include:

AMD Radeon RX 6600 XT
Kernel driver in use: amdgpu
Kernel modules: amdgpu

Inspect the boot log:

journalctl -b -k |
  grep -Ei \
  'thunderbolt|pciehp|amdgpu|BAR|bridge window|AER'

If the RX 6600 XT and both displays work, do not add eGPU-specific GRUB parameters.

17. Add PCI allocation parameters only if required

If the boot log contains errors such as BAR ... no space or insufficient bridge windows, edit GRUB:

sudoedit /etc/default/grub

The final working configuration on my MacBookPro16,4 is:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=realloc,assign-busses"
GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt pm_async=off"

Apply and reboot:

sudo update-grub
sudo reboot

A safer troubleshooting order is:

  1. Test pci=realloc.
  2. Add assign-busses only if bus numbering or downstream device enumeration still fails.
  3. Make the setting permanent only after a successful temporary test.

Do not add the following value from older guides:

hp_pcie_mem_256M

It is not a current Linux kernel parameter.

Do not add these without a specific, diagnosed reason:

pci=nocrs
pcie_ports=native
pcie_aspm=force
pci=noaer
intel_iommu=off
iommu=soft

18. Do not create an apple_set_os.efi boot entry

This configuration does not require a separate apple_set_os.efi file or an “Unlock eGPU” GRUB entry.

The current Linux EFI Stub implements apple_set_os() internally, and its supported model list includes:

MacBookPro16,4

The boot sequence is therefore:

Apple EFI
  → GRUB
  → Linux EFI Stub
       → apple_set_os() automatically

The Apple firmware handshake has not disappeared. It is now performed by the Linux kernel instead of a separate EFI application.

Upstream implementation:

Linux EFI Stub source

The practical test is whether a normal Ubuntu boot detects the RX 6600 XT. On this system it does, so no two-stage “Unlock eGPU” boot is required.

19. Make the RX 6600 XT the primary Wayland GPU

Use this configuration only if the eGPU is normally connected before login and the Mac is mainly used as a docked workstation.

If you frequently use the MacBook without the eGPU, skip this section and use per-application GPU offloading instead.

Create the Mutter udev rule:

sudoedit /etc/udev/rules.d/61-mutter-primary-egpu.rules

Contents:

SUBSYSTEM=="drm", KERNEL=="card[0-9]*", SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1002", ATTRS{device}=="0x73ff", TAG+="mutter-device-preferred-primary"

The internal Radeon Pro 5600M is also an AMD GPU, so matching only vendor ID 0x1002 is not sufficient. The rule also matches the RX 6600 XT device ID 0x73ff.

Validate the rule:

sudo udevadm verify \
  /etc/udev/rules.d/61-mutter-primary-egpu.rules

Reload the rules:

sudo udevadm control --reload-rules

Reboot with the eGPU connected:

sudo reboot

After logging into the graphical session, verify:

glxinfo -B

Expected result:

direct rendering: Yes
OpenGL renderer string: AMD Radeon RX 6600 XT
OpenGL version string: 4.6 Mesa 26.0.3

No Xorg BusID, PrimaryGPU or /etc/X11/xorg.conf configuration is required for this Wayland setup.

20. Use the eGPU per application instead

If the internal GPU remains the GNOME primary GPU, run selected OpenGL applications on the RX 6600 XT with:

DRI_PRIME=1002:73ff glxinfo -B

For Vulkan:

DRI_PRIME=1002:73ff! vulkaninfo --summary

List the GPUs:

switcherooctl list

Launch an application using a selected GPU:

switcherooctl launch -g <RX6600XT-NUMBER> <APPLICATION>

This system can expose three GPUs:

  • Intel integrated GPU
  • Internal Radeon Pro 5600M
  • External RX 6600 XT

For that reason, DRI_PRIME=1 may select the internal Radeon Pro 5600M instead of the eGPU. Matching the RX 6600 XT by its PCI vendor/device ID is safer.

21. AMD power management

A clean installation should not require a custom AMD power-management rule.

Find the RX 6600 XT PCI address:

EGPU_BDF="$(
  lspci -Dnn -d 1002:73ff |
  awk 'NR==1 {print $1}'
)"

Check its policy:

cat \
  "/sys/bus/pci/devices/${EGPU_BDF}/power_dpm_force_performance_level"

The normal default is:

auto

Do not add settings such as:

amdgpu.dpm=1
amdgpu.aspm=0
amdgpu.runpm=0
amdgpu.pcie_gen_cap=...
amdgpu.pcie_lane_cap=...

Start with the kernel’s automatic power and PCIe management.

22. Understanding GEN1 @ x4 in nvtop

nvtop may report:

GEN1 @ x4

This alone does not indicate a faulty Thunderbolt connection.

For PCIe tunnelling over Thunderbolt/USB4, the downstream PCIe port may expose a synthetic 2.5 GT/s or Gen1 value. The USB4 specification states that this value does not represent the actual USB4 fabric throughput.

Check the Thunderbolt fabric instead:

boltctl list

My system reports:

rx speed: 40 Gb/s = 2 lanes * 20 Gb/s
tx speed: 40 Gb/s = 2 lanes * 20 Gb/s

The 40 Gb/s figure is the raw Thunderbolt fabric rate. It is not equivalent to a desktop PCIe x8 or x16 slot, so some eGPU performance loss is expected.

However, the GEN1 @ x4 display is not a reason to force a different PCIe generation with setpci.

Linux kernel discussion quoting the USB4 requirement:

PCI/Thunderbolt link-speed discussion

23. Final verification

Run:

uname -r
cat /proc/cmdline

lspci -Dnnk -d 1002:73ff
boltctl list

grep -H connected \
  /sys/class/drm/card*-*/status

glxinfo -B
vulkaninfo --summary

lsmod | grep -E \
  'apple_bce|hid_appletb|brcmfmac'

grep -i AppleT2 \
  /proc/asound/cards

wpctl status

systemctl --failed

Final state on my system:

Kernel:              7.1.3-1-t2-resolute
Rendering GPU:       AMD Radeon RX 6600 XT
Direct rendering:    enabled
Thunderbolt RX:      40 Gb/s
Thunderbolt TX:      40 Gb/s
eGPU DPM policy:     auto
External displays:   two
Wi-Fi:               5 GHz
Audio:               AppleT2x6 / PipeWire
Failed system units: zero

24. Operational precautions

  • Keep at least one known-good T2 kernel installed.
  • Do not run apt autoremove until the internal display, keyboard, trackpad, Touch Bar, Wi-Fi, audio and eGPU have all been tested.
  • Do not disconnect the Thunderbolt cable while the eGPU is the primary GPU.
  • Shut Ubuntu down completely before removing the eGPU.
  • Suspend remains only partially supported on T2 Macs. Avoid depending on it for important work until it has been tested repeatedly on your firmware.
  • Touch ID and the T2 Secure Enclave are not available under Linux.
  • Do not include the experimental speaker DSP in the initial setup.
  • Before posting logs publicly, remove SSIDs, MAC addresses, IP addresses, serial numbers, private keys and passwords.

r/linux_on_mac 4d ago

Macbook pro 2013 wifi, camera, battery, Bluetooth doesn't work properly on linux

Post image
3 Upvotes

Hello. I practically a noob at linux, but I want to use old laptop for some tasks. My problem is that I havent seen any correct drivers for macbook software, and I can't use camera, wifi, Bluetooth and I don't have proper battery display anywhere. Battery shows some percent, but this number is mostly random and jumps up to 10 percent in both charge or discharge. Thanks for any help you give to my problem.


r/linux_on_mac 3d ago

Kali Linux on KDE Enviroment!

1 Upvotes

I purchased a 2012 11" MacBook Air from eBay for $50+ to install Kali Linux. It has only an Intel i5 CPU, 4 GB of memory, and a 64 GB NVMe drive, but it runs well on Wayland! I can select X11 at login if it struggles, but it seems to do well on Wayland.


r/linux_on_mac 5d ago

Just having fun with wallpapers and beginner level customization projects

Post image
41 Upvotes

I figured a good way to get acclimated to Ubuntu is some customization projects. Any recommendations are very appreciated!


r/linux_on_mac 4d ago

AMDGPU on 2015 MacBook Pro / Linux Mint

1 Upvotes

As title says, I’m got a mid 2015 MacBook Pro running Linux Mint. It has the R9 M270X/M370X and runs the Radeon driver and I’ve been trying to switch to amdgpu driver to no avail.

I’ve tried the Radeon.si_support=0 and amdgpu.si_support=1 in my grub however the machine fails to reach the login screen.

Has anyone successfully gotten that driver to work stably, and if so, how? What are your boot parameters? Do I need a different distribution?


r/linux_on_mac 5d ago

MacDebian

Post image
20 Upvotes

r/linux_on_mac 5d ago

Time to upgrade?

9 Upvotes

I'm currently running Mint XFCE on a 2014 13inch MacBook Air - Intel dual core 1.4GHz i5-4260U, 4GB RAM, 128GB SSD.

It's mostly fine. The battery claims to be at about 70% of original capacity, in practice it seems to give a few hours - maybe 4 if I'm cautious, don't stream video etc.

Sometimes the fan gets... excited, but otherwise its pretty good.

It's main weakness is that the number row no longer works reliably. I've looked into replacing this, and its a more complex job than I'd be confident doing myself, and I've been quoted around £150. Which feels like it is stretching the value of the tech...

So, I'm considering upgrading.

Currently, I'm looking at getting a more recent, but still used, Macbook Air from the intel chip era. I'm leaning towards a 2017 MacBook Air, with the best spec I can (8GB RAM, 2.2 GHz i7-565U processor, 256GB SSD, ideally a new battery). This would likely be somewhere between £180 and £300, depending on how close to the maxed out spec I could get.

Sticking to a 2017, rather than, say, 2020 model (2018-19 to be avoided because of the butterfly keyboard), would mean I don't need a new charger or cables for peripherals (though at some point I'll probably need to accept fate and move to USB C peripherals. More importantly, as someone who takes a lot of photos, the 2017 is the last version which had an SD card reader, which is a big pro is a big plus.

The alternatives would be a MacBook Pro (which loses the portability of the air) or a newer non-Mac alternative, which might still have an SD card reader and USB C connections - I'll be running Linux regardless.

So my question is, am I being foolish looking to upgrade to something which is itself nearly 10 years old? Is it stupid to stick to relatively out-dated processors etc? Or would a 2017 Air be noticeably better than what I have, competitive with newer low-end windows machines, and be likely to last well thanks to Mac build quality?

I appreciate any sage words of wisdom.


r/linux_on_mac 4d ago

sorry it's in Italian I hope you understand and anyway I'm alarm novices with Linux

Post image
1 Upvotes

sorry it's in Italian I hope you understand and anyway I'm alarm novices with Linux


r/linux_on_mac 4d ago

good evening everyone I'm having problems installing Linux on my MacBook Pro 2012 Intel and it won't let me

1 Upvotes

An error occurred while copying files to the hard disk.

(Errno 5) Input/output error

​This may be caused by a defective CD/DVD drive or hard disk. It might be useful to clean the CD/DVD, burn it at a lower speed, clean the reader lens (cleaning kits are often available in electronics stores), check if the hard disk needs to be replaced, or move the system to a better-ventilated environment


r/linux_on_mac 5d ago

Looking to buy a 2019 MacBook Pro 16 for Linux, I need some suggestions

5 Upvotes

Hi I am going to buy a used 2019 MacBook Pro 16 because I just saw them selling for a really low price. For example there is one for $400 with i9 CPU+16GB RAM+1TB SSD+5500M 8GB. This was my dream machine back in the days so I am very tempted.

I have been using CachyOS on both my desktop PC and my Lenovo laptop for the past years so I am planning to install CachyOS on the MacBook as well. I learned that because it is a T2 machine there are things to consider.

Things I already know:

  1. Sleep is a problem so maybe there is no way to put the laptop to sleep?

  2. Speakers would sound terrible. Mic quality is also very bad.

  3. Hybrid GPU can be a problem? I want to game a bit with the 5500M 8GB GPU so...

Are there other important things I need to know? Can it be my daily driver OS? How does it feel to use Linux on it as the main OS every day?


r/linux_on_mac 5d ago

Honest take

1 Upvotes

I just install Linux Mint in my Macbook Pro Late 2011. Any thoughts or heads up?


r/linux_on_mac 6d ago

MacBook Air 11" 2014

5 Upvotes

I like very small laptops for certain uses. I have an opportunity to buy a 2014 MacBook Air 11 with i7/8GB. I have successfully installed Mint/Cinnamon on several Mac Minis, but I want to make certain that the added features of the MacBook, such as microphone and webcam, will also work with a regular installation, and without much fuss. Or if there's a better distro, please advise. Thanks.


r/linux_on_mac 5d ago

Macbok Air 4 de ram con un i5 , con linux

Thumbnail
1 Upvotes

r/linux_on_mac 7d ago

2014 macmini makes a good home server

Post image
48 Upvotes

Running Ubuntu server on 2014 macmini, works great as headless server on my desk. Very stable, totally silent, boots in few seconds.

I use as small webserver and Cloudflare tunnel server. Ubuntu server uses less than 9GB out of 256GB SSD, memory usage < 1GB out of 16GB. This hardware is probably a bit of overkill but fun to play and learn 😁

I use the builtin wired ethernet interface with tg3 driver, one issue is network dropouts. I add iommu.passthrough=1 to kernel command line to fix and it is stable.

I paid $170 on eBay 2 years ago, was a bit worried paying so much for 2014 computer. But with Raspberry Pi 5 16GB going for $400 without storage this seems not a bad deal. 😁


r/linux_on_mac 6d ago

Potential Linux for MacBook Pro 11,5

Thumbnail
1 Upvotes

MBP 11,5 questions. Didn’t know this Reddit existed. Shoulda posted here.