Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Guide: Running Arch on a 2018 MacBook Pro

Hardware Prerequisites

You'll need at least the following hardware:

  • At least 3 USB-A to USB-C converters or hub with enough ports for at least 3 USB devices if all your devices are USB-A then:
  • A USB drive
  • A USB keyboard
  • USB to Ethernet adapter, compatible USB dongle or USB tethering on a phone

General notes:

  • I strongly recommend against deleting OSX entirely even if you'll never use it, it is required for locating the WiFi firmware during install and can be valuable for determining which hardware you have.

Build archiso with a custom kernel

You'll need an existing arch install to do this

Or download mine from here

  1. Firstly grab a copy of the archiso script as instructed here:

https://wiki.archlinux.org/index.php/Archiso

cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
  1. Add aunali1's repo to pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
  1. Ignore the original kernel in pacman.conf
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
IgnorePkg   = linux linux-headers
  1. Add the linux-mbp pakages to the end of packagesx86_64
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
  1. Force the build script to use interactive mode for pacstrap:

sudo nano /usr/bin/mkarchiso

In this file press Ctrl+W type pacstrap and replace every pacstrap -C with pacstrap -i -C:

# Install desired packages to airootfs
_pacman ()
{
    _msg_info "Installing packages to '${work_dir}/airootfs/'..."

    if [[ "${quiet}" = "y" ]]; then
        pacstrap -i -C "${pacman_conf}" -c -G -M "${work_dir}/airootfs" $* &> /dev/null
    else
        pacstrap -i -C "${pacman_conf}" -c -G -M "${work_dir}/airootfs" $*
    fi

    _msg_info "Packages installed successfully!"
}

Note: There is definitely a better way to accomplish this

  1. Build the iso:
sudo ./build.sh -v

Press Y to everything including skipping ignored packages (so the only kernel installed is linux-mbp) then write to your usb (where /dev/sdb is your usb) drive:

sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
  1. Boot your mac in recovery mode enable booting from USB: https://www.ninjastik.com/support/2018-macbook-pro-boot-from-usb/

  2. Hold option while booting up and select your USB. (For some reason it didn't show at first for me and I had to unplug and re-plug the drive once the menu was on the screen)

Installation

You'll need to use a USB keyboard for the installation

  1. Follow the Arch Install as normal: https://wiki.archlinux.org/index.php/Installation_guide You can resize the OSX partition, I'd already installed Windows in bootcamp which did this for me so I just wiped off windows and installed Linux on the partitions it created.

  2. Mount the existing apple EFI partition (/dev/nvme0n1p1) to /boot (if you haven't run arch-chroot yet it will be mount /dev/nvme0n1p1 /mnt/boot)

  3. After you've used arch-chroot to see the file system as you would post install, add aunali1's repo to /etc/pacman.conf:

[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
  1. Then install the kernel:
sudo pacman -S linux-mbp linux-mbp-headers
sudo mkinitcpio -p linux-mbp
  1. Use GRUB, (Systemd-boot crashed for me and forced me to hard reboot)

Install your DE and anything you want to use.

Keyboard/touchpad

  1. install yay:
sudo pacman -S git gcc make fakeroot binutils
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
  1. Install macbook12-spi-driver-dkms:
yay --editor=nano --editmenu -S macbook12-spi-driver-dkms

When it says PKGBUILDs to edit? type A to open nano (or substitute your favourite editor in the command above).

In the source( line change the branch to mbp15, replace https://github.com/roadrunner2/macbook12-spi-driver.git#branch=touchbar-driver-hid-driver with https://github.com/roadrunner2/macbook12-spi-driver.git#branch=mbp15

  1. Get MCMrArm's bridge driver and install it to extramodules:
git clone https://github.com/MCMrARM/mbp2018-bridge-drv.git
cd mbp2018-bridge-drv
make
cp bce.ko /usr/lib/modules/extramodules-mbp/bce.ko

you'll need to remember to rebuild the module every time you update the kernel), I'm looking for a way to automate this

  1. Have it load on boot:
sudo nano /etc/modules-load.d/bce.conf

Add the following:

bce
  1. Reboot, you can now disconnect your external keyboard and use the laptop's touchpad.

WiFi

Boot into OSX and run the following in terminal: ioreg -l | grep C-4364

It will show something like:

"RequestedFiles" = ({"Firmware"="C-4364__s-B2/kauai.trx","TxCap"="C-4364__s-B2/kauai-X3.txcb","Regulatory"="C-4364__s-B2/kauai-X3.clmb","NVRAM"="C-4364__s-B2/P-kauai-X3_M-HRPN_V-u__m-7.5.txt"})

    | |   |         |       "images" = {"C-4364__s-B2/kauai-X3.txcb"={"imagetype"="TxCap","required"=No,"imagename"="C-4364__s-B2/kauai-X3.txcb"},"C-4364__s-B2/P-kauai-X3_M-HRPN_V-u__m-7.5.txt"={"imagetype"="NVRAM","required"=Yes,"imagename"="C-4364__s-B2/P-kauai-X3_M-HRPN_V-u__m-7.5.txt"},"C-4364__s-B2/kauai-X3.clmb"={"imagetype"="Regulatory","required"=Yes,"imagename"="C-4364__s-B2/kauai-X3.clmb"},"C-4364__s-B2/kauai.trx"={"imagetype"="Firmware","required"=Yes,"imagename"="C-4364__s-B2/kauai.trx"}}


It'll be different depending on your exact model.

There are three files to note down. A .trx (for me: C-4364__s-B2/kauai.trx), a .clmb (for me: C-4364__s-B2/kauai-X3.clmb and a .txt (for me: C-4364__s-B2/P-kauai-X3_M-HRPN_V-u__m-7.5.txt

These refer to files on OSX in /usr/share/firmware/wifi. Copy the trx, clmb and txt somewhere you can easily access them when you boot back into linux (e.g. your home directory if you want to mount the HSF partition in linux, a usb stick, etc)

Boot back into linux and place the files in the following locations:

  1. Copy the trx to /lib/firmware/brcm/brcmfmac4364-pcie.bin (e.g. sudo cp kauai.trx /lib/firmware/brcm/brcmfmac4364-pcie.bin
  2. The clmb to /lib/firmware/brcm/brcmfmac4364-pcie.clm_blob (e.g. sudo cp kauai-X3.clmb /lib/firmware/brcm/brcmfmac4364-pcie.clm_blob)
  3. The txt to something like /lib/firmware/brcm/brcmfmac4364-pcie.Apple Inc.-MacBookPro15,1.txt. You will need to replace 15,1 with your model number. (e.g. sudo cp P-kauai-X3_M-HRPN_V-u__m-7.5.txt /lib/firmware/brcm/brcmfmac4364-pcie.Apple Inc.-MacBookPro15,1.txt)

Use networkmanager and iwd:

sudo pacman -S networkmanager iwd
sudo systemctl start NetworkManager.service
sudo systemctl enable NetworkManager.service

If you're on kde also install plasma-nm

Configure networkmanager to use iwd. Create /etc/NetworkManager/NetworkManager.conf and add:

[device]
wifi.backend=iwd

Restart the NetworkManager service and you should have wifi working.

Touchbar

If you've installed the mbp15 branch of @roadrunner2's spi driver as outlined above you just need to load the modules:

modprobe apple-ib-tb
modprobe apple-ib-als

If you want the touchbar to display F* keys by default create /etc/modprobe.d/apple-tb.conf and add

options apple-ib-tb fnmode=2

Audio

See MCMrARM's gist here: https://gist.github.com/MCMrARM/c357291e4e5c18894bea10665dcebffb

Create the three files and reboot.

Suspend

As of 20/09/2019 you have to choose between audio and suspend though this will likely change when MCMrARM updates the bridge driver.

  1. Install the suspend branch of the bce module:
git clone https://github.com/MCMrARM/mbp2018-bridge-drv.git
cd mbp2018-bridge-drv
git checkout suspend
make
cp bce.ko /usr/lib/modules/extramodules-mbp/bce.ko
modprobe bce
  1. Blacklist applesmc

/etc/modprobe.d/applesmc.conf

blacklist applesmc
  1. Add pcie_ports=compat as a kernel parameter. Edit /etc/default/grub and add it to GRUB_CMDLINE_LINUX_DEFAULT e.g. GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet pcie_ports=compat" then run grub-mkconfig -o /boot/grub/grub.cfg and reboot.

  2. Currently (20/09/2019) the touchbar driver crashes on resume and the thunderbolt driver causes suspend to take 30+ seconds and resume to take several minutes. This is fixed by automaitcally unloading the problematic modules on suspend and reloading them on resume.

Create /lib/systemd/system-sleep/rmmod.sh and add:

#!/bin/sh
if [ "${1}" == "pre" ]; then
        rmmod thunderbolt
        rmmod apple_ib_tb
elif [ "${1}" == "post" ]; then
        modprobe apple_ib_tb
        modprobe thunderbolt
fi

and make the file executable:

sudo chmod +x /lib/systemd/system-sleep/rmmod.sh

DisplayPort over USB-C

Works out of the box with a compatible adapter

@brodobrz

This comment has been minimized.

Copy link

@brodobrz brodobrz commented Oct 15, 2019

Hello. I have some troubles on macbookpro15,2.
1. Installation/bootloader:

  • When booting from usb, need to edit the command line "press e" and add module_blacklist=thunderbolt, otherwise the system sometimes will stuck on boot with ICM Error.
    Using arch-mbp.iso, Installed all required packages, including linux-mbp linux-mbp-headers. The main problem with GRUB and systemd-boot. When I tried to grub-install with efi to nvmen0n1p1 I always get kernel panic. The only option that worked for me a systemd-boot (with kernel panic as well but when I restarted i saw the possibility of launching distro).
  1. Successfully compiled the module and placed it in extramodules. Then I tried to add that module to mkinicpio.conf
    MODULES=(ext4 bce)
    Since I use lvm and luks in my system, a keyboard is needed at the stage of mounting the root partition with luks.
    Ok, now keyboard work without Touch Bar.
  • Is also necessary to add the thunderbolt module to the blacklist, otherwise the system freezes at boot.
  1. Wifi.
    Ioreg command returns:
    "RequestedFiles" = ({"Firmware"="C-4364__s-B2/maui.trx","TxCap"="C-4364__s-B2/maui-X3.txcb","Regulatory"="C-4364__s-B2/maui-X3.clmb","NVRAM"="C-4364__s-B2/P-maui-X3_M-HRPN_V-m__m-7.7.txt"})

I took these files and according to the instructions placed in the desired folder.

  • maui.trx -> brcmfmac4364-pcie.bin
  • maui-X3.clmb -> brcmfmac4364-pcie.clm_blob
  • P-maui-X3_M-HRPN_V-m__m-7.7.txt -> brcmfmac4364-pcie.Apple Inc.-MacBookPro15,2.txt

Works only with iwctl.

  1. Touchbar
    UPDATED Now touchbar works!

Install macbook12-spi-driver-dkms:
git clone --branch mbp15 https://github.com/roadrunner2/macbook12-spi-driver.git
cd macbook12-spi-driver
make install
Add these lines to file: /etc/modules-load.d/apple.conf
industrialio_triggered_buffer
apple-ibridge
apple-ib-tb
apple-ib-als

reboot.

  1. Sound.
    I get endless messages when calling dmesg -w:
    [ 1357.225355] aaudio_pcm_pointer while not started
    [ 1357.225358] aaudio_pcm_pointer while not started
    [ 1357.225367] aaudio aaudio: Received timestamp update for dev=3a ts=13c00d72d84 seed=0
    [ 1357.571800] aaudio aaudio: Received timestamp update for dev=3a ts=13c157e3d1d seed=0
    [ 1357.918338] aaudio aaudio: Received timestamp update for dev=3a ts=13c2a256fd8 seed=0

And some errors when i try to open pavuucontrol mixer:
[ 1554.167998] aaudio: Backed up the buffer in 75388806ns [16640]
[ 1554.188094] aaudio: Started the audio device in 95484464ns
[ 1554.188110] aaudio_pcm_pointer while not started
[ 1554.188129] aaudio_pcm_pointer while not started
[ 1554.188461] aaudio_pcm_open
[ 1554.188530] aaudio_pcm_hw_params
[ 1554.188541] x86/PAT: pulseaudio:2668 map pfn RAM range req uncached-minus for [mem 0x79400000-0x79430fff], got write-back
[ 1554.190982] aaudio_pcm_trigger 1
[ 1554.192117] aaudio aaudio: Received timestamp update for dev=3a ts=169dcfa5542 seed=0
[ 1554.194244] aaudio: Started the audio device in 3254976ns
[ 1554.194292] aaudio_pcm_pointer while not started

@TRPB

This comment has been minimized.

Copy link
Owner Author

@TRPB TRPB commented Oct 15, 2019

The network adapter worked and even managed to scan the network, but when you try to connect to any of the networks, the adapter disconnects immediately after successful authorization.

Did you make networkmanager use iwd? Using the default, wpa_supplicant, authorisation does not work.

I tried to include these modules (apple-ib-tb, apple-ib-als, apple-ibridge) both manually and add them to the mkinicpio.conf file (MODULES section), as a result, the touchbar did not work. But, what is strange is that I have a usb drive with archlinux where the grub bootloader is installed and everything is the same there, but the touchbar works, why? No idea. Even stranger is the fact that after rebooting from this external drive with grub on which the touchbar works, it continues to work from the internal drive from under systemd))

It may be that including them in MODULES loads them too early and the hardware isn't ready. Once you've booted try rmmod apple-ib-tb then modprobe apple-ib-tb and see if to works.

@brodobrz

This comment has been minimized.

Copy link

@brodobrz brodobrz commented Oct 15, 2019

The network adapter worked and even managed to scan the network, but when you try to connect to any of the networks, the adapter disconnects immediately after successful authorization.

Did you make networkmanager use iwd? Using the default, wpa_supplicant, authorisation does not work.

Fixed. Thanks. Works only with iwctl.

I tried to include these modules (apple-ib-tb, apple-ib-als, apple-ibridge) both manually and add them to the mkinicpio.conf file (MODULES section), as a result, the touchbar did not work. But, what is strange is that I have a usb drive with archlinux where the grub bootloader is installed and everything is the same there, but the touchbar works, why? No idea. Even stranger is the fact that after rebooting from this external drive with grub on which the touchbar works, it continues to work from the internal drive from under systemd))

It may be that including them in MODULES loads them too early and the hardware isn't ready. Once you've booted try rmmod apple-ib-tb then modprobe apple-ib-tb and see if to works.

Yes I tried this. Tried various options, unfortunately without result. The keyboard works, touchbar does not work.

@AndreasAZiegler

This comment has been minimized.

Copy link

@AndreasAZiegler AndreasAZiegler commented Oct 20, 2019

I followed the steps in the guide and installed rEFInd. When I select the linux-mbp I got the following error message:

Starting version 243.51-1-arch
:: running hook [udve]
:: Triggering uevents...
ERROR: device `` not found. Skipping fsck.
:: mountin `` on real root
mount: /new_root: no filesystem type specified.
...
@caioquirino

This comment has been minimized.

Copy link

@caioquirino caioquirino commented Oct 21, 2019

Have you tried to create the grub bootloader with the --removable flag in grub-install command?

More info: https://wiki.archlinux.org/index.php/Installing_Arch_Linux_on_a_USB_key#GRUB

I saw this error before, but for me it happens when I try to boot using MAC's bootloader directly instead haha, I think that this is related with the way you created your fstab. You can try to generate it using BY_LABEL or BY_UUID instead of the device path.

@AndreasAZiegler

This comment has been minimized.

Copy link

@AndreasAZiegler AndreasAZiegler commented Oct 27, 2019

I installed grub and tried the command with --removable. All what I got was another boot option in the Mac boot loader and in rEFInd with an empty grub console when I select it. My rEFInd option for my arch system looks like the following:

archisobasedir=arch archisolabel=ARCH_201909 initrd=boot\initramfs-linux-mbp.img

Is something wrong in this rEFInd options for my arch system?

@TrueNix

This comment has been minimized.

Copy link

@TrueNix TrueNix commented Nov 26, 2019

after updating to Catalina, linux wont boot "kernel panic get_cert_list"
to resolve the issue add to kernel options noapic efi=noruntime it would stuck on loading amd graphics then add nomodeset then it will boot to the desktop.
tested on ubuntu daily build 20.4

@satya-arjunan

This comment has been minimized.

Copy link

@satya-arjunan satya-arjunan commented Dec 10, 2019

@TrueNix can you provide the steps you got Ubuntu 20.04 daily build to run on recent Macbook. Thanks.

@satya-arjunan

This comment has been minimized.

Copy link

@satya-arjunan satya-arjunan commented Dec 10, 2019

@brodobrz I also have a 15,2 Macbook. I am unable to get either grub or systemd-boot to setup well and boot Arch. Can you provide the steps after arch-chroot to get systemd-boot running?

@cubimon

This comment has been minimized.

Copy link

@cubimon cubimon commented Dec 12, 2019

I had to unmask the ´systemd-boot-system-token.service´ so I could boot with systemd-boot, since it tries to set/touch some uefi variable which doesn't work on the MBP.
I had to modify way more than the branch name of the macbook12-spi-driver-dkms aur (remove the dkms.conf file, which requires applespi).
I used aunali1's bridge driver aur on github, instead of MCMrARMs, the module name is apple-bce instead of bce.

@cubimon

This comment has been minimized.

Copy link

@cubimon cubimon commented Dec 16, 2019

@satya-arjunan I installed arch on a different pc on an external ssd to avoid the uefi errors when running bootctl install on the mbp. The installed drive can be used afterwards on the mbp, copy should also work. The default linux kernel without modification works fine, but without wifi/keyboard.

@AndreasAZiegler

This comment has been minimized.

Copy link

@AndreasAZiegler AndreasAZiegler commented Dec 30, 2019

I finally got some time to setup Arch on my MacBookPro 15,1. I got almost everything working. The following things do not yet work to my full satisfaction and some people might have a solution for it:

  • On every start I need to restart the NetworkManager sudo systemctl restart NetworkManager in order to have WiFi working
  • I had to install gnome-keyring to get WiFi with passwords working
  • I have the amdgpu video driver and with this it seems not possible to change the resolution. As these MacBook displays have a too high resolution for my eyes, I would like to choose a lower resolution.
  • When I run pavucontrol it oscillates between the normal view and the message that it tries to connect to pulseaudio (Audio is working and I can change the volume on the touchbar but I use pavucontrol normally to select my bluetooth head phone as audio sink which doesn't work now)

If anyone could help me to resolve these issues, I would be really glad.

@cubimon

This comment has been minimized.

Copy link

@cubimon cubimon commented Dec 30, 2019

  • Use iwd instead of wpa_supplicant (Dunedan/mbp-2016-linux#112 (comment))
  • I set Xft.dpi:192 in ~/.Xresources and xrdb -merge ~/.Xresources in ~/.xinitrc, which works almost anywhere, but I would also be interested in a lower screen resolution since it may be a better solution
  • Just try to avoid pavucontrol, I tried to debug it, it seems to be related to the microphone, I use pulsemixer for now
@AndreasAZiegler

This comment has been minimized.

Copy link

@AndreasAZiegler AndreasAZiegler commented Dec 30, 2019

Thanks for the feedback @cubimon.

My /etc/NetworkManager/NetworkManager.conf is the following:

# Configuration file for NetworkManager.
# See "man 5 NetworkManager.conf" for details.
[device]
wifi.backend=iwd

and so I thing iwd should be used.

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented Jan 24, 2020

Hi all, Thanks for the great write up!
Even for a somewhat Arch noobie, I got it going no worries!

Just a few issues that I've had and wanted to clarify:
1. Wifi
I cannot for the life of me get the wifi to work. I ran the command in MacOS and copied the files over to /lib/firmware/brcm/ but after that, Arch will have issues booting. It will get to the first boot sequence where it mounts the drives and then will crash, the fans spin really loud too when this happens.
I suspect I might have made a mistake and maybe copied the wrong files? Not sure, happy to do any troubleshooting.

EDIT: Now this one is working

It found this issue by aunali1, he indicated that if the files are generated form Catalina that they will not work. Sure enough, I was trying to obtain my files from Catalina. He provided an archive of the old files here. Sure enough, when I used his files it worked like a charm after reboot.

So Note about the wifi files, they only work when you retrieve them from a version of MacOS before Catalina

2. Touch Bar

EDIT: Got it working

It turns out that the modules didn't seem to be installed/loaded in order. All I had to do was the following:

git clone --branch mbp15 https://github.com/roadrunner2/macbook12-spi-driver.git
cd macbook12-spi-driver
make
sudo modprobe industrialio_triggered_buffer
sudo insmod apple-ibridge.ko
sudo insmod apple-ib-tb.ko
sudo insmod apple-ib-als.ko

Other than that. Managed to get everything working! Surprised that iSight camera and Bluetooth just work out of the box! Nice work!

@cubimon

This comment has been minimized.

Copy link

@cubimon cubimon commented Jan 24, 2020

Did you also use iwctl to connect to wifi?

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented Jan 24, 2020

Did you also use iwctl to connect to wifi?

I couldn't even get that far because I struggled to boot the system once the files were in place. Or have I missed something?

@cubimon

This comment has been minimized.

Copy link

@cubimon cubimon commented Jan 24, 2020

It is hard to tell, you try to blacklist the broadcom wifi driver to ensure it is causing the trouble or try to read systemd logs

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented Jan 26, 2020

It seems to definitely be at fault. I put the files back in place then ran rmmod brcmfmac modprobe brcmfmac after it crashed i took a look at the systemd logs. The whole system just stopped responding, no logs were generated and the system crashed. Furthermore, after booting again and it crashing systemd doesn't even recognized the system booted.

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented Jan 31, 2020

See edits above for resolution

@fgreter

This comment has been minimized.

Copy link

@fgreter fgreter commented Feb 19, 2020

I struggled quite a bit with setting up the bootloader. Grub didn't work at all, so I tried systemd instead and got it working after a while. Here's what I had to do on my MBP 15,2:
bootctl install resulted in a kernel panic, after which the required structure in the EFI partition was only halfway setup. In particular:

  • /EFI/BOOT/BOOTX64.efi was an empty file, same as /EFI/systemd/systemd-bootx64.efi, so I copied them over manually from /usr/lib/systemd/boot/efi/systemd-bootx64.efi -- without this, an entry "EFI BOOT" would show up in the native apple bootloader, but would also lead to macOS
  • I had to manually create the config files in /loader/loader.conf and /loader/entries/arch.conf - see here. The kernel and initramfs files are named differently (-mbp for both) because we're using aunali1's kernel packages. This is probably self-evident for most of you guys, but maybe another beginner like me ends up here ;)
  • I had to mask "systemd-boot-system-token.service" (thanks @cubimon), otherwise I'd get a kernel panic on boot

After this it works perfectly. The default boot is now arch, which is not to my taste (I like macOS, I'm mostly doing this for fun), but I'll figure that out once I get keyboard etc. working.

@jbg

This comment has been minimized.

Copy link

@jbg jbg commented Mar 4, 2020

Got everything working on a 15,2 just now. A few notes:

  • If you've already erased macOS, you can find the filenames that you need using Internet Recovery (hold Cmd+R during boot -- I actually had to hold Option+Cmd+R as I got a cryptic error otherwise). Just launch Terminal and run ioreg -l | grep C-4364. You can probably even copy the firmware out of there, but I used the link posted above in this thread to get the files.
  • The Grub crashes are probably due to the efibootmgr crashes. You can instead edit the EFI boot vars from an EFI Shell v2, which can be launched from the Arch boot ISO. I am using efistub and set up the boot order from the EFI shell successfully.
  • I get constant (3x per second) spam like aaudio aaudio: Received timestamp update for dev=3a ts=cb58ca1aca seed=0 in dmesg.
@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented Mar 8, 2020

I get constant (3x per second) spam like aaudio aaudio: Received timestamp update for dev=3a ts=cb58ca1aca seed=0 in dmesg.

I also get aaudio aaudio: Received timestamp update for ... in dmesg -w. Don't know, but seems like something is not working properly. Also launching pavucontrol repeats to say "Connecting to PulseAudio. Please wait." (or something like that) pretty odd.

One last thing: Core temperature is pretty high (58°C - 80°C). Is there a way to cool down the cores? The AUR package mbpfan-git requires applesmc module to be loaded, which - according to the installation instructions - should be blacklisted.
Also I'm not able to load it even after removing it from /lib/modprobe.d/blacklist.conf. Is there a reason for it to be blacklisted? [EDIT] The reason for blacklisting applesmc is to make the touchbar work.

Sorry for all this unordered and unsorted questions. Hope you guys still want to answer ✌️

Anyways, thank you for all the time and effort you put into this!

@jbg

This comment has been minimized.

Copy link

@jbg jbg commented Mar 9, 2020

The new MacBooks are pretty overpowered in comparison to their ability to dissipate heat. macOS manages this by aggressive power management and throttling. The default configuration in Linux is not nearly as aggressive. I managed to get mine to acceptable levels by following some of the suggestions in the latter half of https://wiki.archlinux.org/index.php/Power_management, installing powertop and following the suggestions there, and installing and configuring cpupower to set more aggressive frequency and idle states (there are other programs that do similarly). Of course, performance suffers, but my hands don't get burned when typing any more. I tried thermald but it wasn't able to generate a configuration from the ACPI tables so I'd have to configure it manually.

@jbg

This comment has been minimized.

Copy link

@jbg jbg commented Mar 9, 2020

Also, probably related to the above log spam, I noticed pulseaudio was using 20% CPU constantly. I just uninstalled it because I don't care about audio on my laptop, but seems like audio could be a likely culprit for high temperature.

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented Mar 10, 2020

The new MacBooks are pretty overpowered in comparison to their ability to dissipate heat. macOS manages this by aggressive power management and throttling. The default configuration in Linux is not nearly as aggressive. I managed to get mine to acceptable levels by following some of the suggestions in the latter half of https://wiki.archlinux.org/index.php/Power_management, installing powertop and following the suggestions there, and installing and configuring cpupower to set more aggressive frequency and idle states (there are other programs that do similarly). Of course, performance suffers, but my hands don't get burned when typing any more. I tried thermald but it wasn't able to generate a configuration from the ACPI tables so I'd have to configure it manually.

Thanks for this hint. I already used Laptop Mode Tools, but didn't recognize any improvements.

Also, probably related to the above log spam, I noticed pulseaudio was using 20% CPU constantly. I just uninstalled it because I don't care about audio on my laptop, but seems like audio could be a likely culprit for high temperature.

I temporarily disabled pulseaudio, the dmesg spam is gone, however it seems, that core temperature did not improve...

I think I just try to use cpupower as you suggested.

@TRPB

This comment has been minimized.

Copy link
Owner Author

@TRPB TRPB commented Mar 10, 2020

Thanks for the tip. What temperatures did you get yours too?

Mine is a 6 core (Are they all?) which is a lot for a laptop at idles at 52c after installing thermald. The slightest load (which boosts the clockspeed) takes it to 60+ instantly on all cores.

@jbg

This comment has been minimized.

Copy link

@jbg jbg commented Mar 11, 2020

Mine is a 4 core (with HT) and idles at around 41C.

@gbrow004

This comment has been minimized.

Copy link

@gbrow004 gbrow004 commented Mar 13, 2020

Is there a trick to getting 2-finger click and scroll working? Lack of that is driving me crazy! I tried synclient, but couldn't get that to work, which is not surprising...

Edit: I'm on Ubuntu and using the new 16-inch MBP, if that makes any difference.

@jbg

This comment has been minimized.

Copy link

@jbg jbg commented Mar 14, 2020

Worked out of the box for me with sway/wayland (after following the instructions in this gist). On X I guess you will need to use libinput, but I would have thought that would be the default on recent Ubuntu.

@JoshLipps

This comment has been minimized.

Copy link

@JoshLipps JoshLipps commented Mar 22, 2020

bootctl install resulted in a kernel panic, after which the required structure in the EFI partition was only halfway setup. In particular:

For me just used the --no-variables flag and bootctl no longer caused a kernel panic.

>  bootctl --path=/boot --no-variables install 

Then mask as above; thanks for this it was the missing part for me!!

> systemctl mask systemd-boot-system-token.service 
@jbg

This comment has been minimized.

Copy link

@jbg jbg commented Apr 2, 2020

@stefanpartheym @TRPB

I managed to get idle down to 33C by blacklisting the thunderbolt module and creating /etc/modprobe.d/i915.conf with content options i915 enable_dc=4 enable_fbc=1 enable_psr=1 disable_power_well=1, making sure i915 was listed in MODULES in /etc/mkinitcpio.conf, regenerating the initramfs and rebooting. Before this the package sleep state would never go below PC3, now it gets down to PC7. If you have discrete GPU I guess this wouldn't apply. Also, I see in dmesg that some of those options are considered "dangerous", so don't blame me if something breaks ;)

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented Apr 2, 2020

@jbg Thanks man 🙏 ! I will try the options you mentioned.
I already blacklisted the thunderbolt module, so I think the i915 config might do the trick.

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented Apr 3, 2020

@jbg Unfortunately for me, core temperatures still idle at around 50°C after configuring the i915 module as you described and enabling it in mkinitcpio.conf.

@peryngveohlin666

This comment has been minimized.

Copy link

@peryngveohlin666 peryngveohlin666 commented Apr 24, 2020

when i try to build the iso the pgp keys don't match and your iso is no longer up there, would you like to put a new one?

@paalwilliams

This comment has been minimized.

Copy link

@paalwilliams paalwilliams commented May 1, 2020

Hi! The arch ISO download that you built does not seem to be available. Could you please put a new one up?

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 4, 2020

I got bored whilst quarantining and someone reminded me about this project. Was dissapointed to see people without an ISO. So here you are. Main issue about this one is that the repo is still untrusted until the developer refreshes his keys. Nothing I can do about that. So I had to blindly trust it so that it will compile (This means just be careful with any packages coming from the mbp repo group). Maybe if i'm bored enough later ill make another repo. This ISO isn't tested until I do my install (Possibly tomorrow). But you're all welcome to give it a go.

sha256sum: fdc6c65b342c5740d8bc0501ce59e17d8503d3dbf2c84ccbce23f696fe13c685

@paalwilliams

This comment has been minimized.

Copy link

@paalwilliams paalwilliams commented May 5, 2020

Thanks so much Jpyke3! Looking forward to giving this a go.

@paalwilliams

This comment has been minimized.

Copy link

@paalwilliams paalwilliams commented May 5, 2020

I can confirm that this iso does not work for me. Live boot crashes about 10 seconds in at varying points and screen goes black so can’t tell exactly where

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 5, 2020

Hm that's strange I just tested it out now and it works completely fine for me. Are you saying it crashes after you are already in zsh?

@paalwilliams

This comment has been minimized.

Copy link

@paalwilliams paalwilliams commented May 5, 2020

It boots to zsh but doesn’t finish initial setup. I’m going to try again tomorrow with a different flash drive (I used this for Ubuntu so maybe thats causing some issues) and a different iso imaging program and will get back.

Just to confirm you’re using a 15” 2018 mbp? 15,1?

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 5, 2020

I had a fresh flash disk and used dd in order to flash the iso to the drive. Just in case that helps you out. I am on a 13" 15,2. That's the 2018 model as well so it should be just fine with your model. If you have any other issues I can try compiling the iso on my Mac itself. I compiled on a Manjaro machine. But ideally that shouldn't really matter.

@paalwilliams

This comment has been minimized.

Copy link

@paalwilliams paalwilliams commented May 6, 2020

Yeah- no dice. It gets to "target bluetooth" and then the screen glitches and goes black. I tried waiting 30+ mins and still nothing. Fresh USB and image made with dd.

Perhaps it has something to do with the 15" having a dedicated GPU? It appears to be graphical.

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented May 6, 2020

Make sure you have the thunderbolt module blacklisted when before booting. Either by adding module_blacklist=thunderbolt option in your kernel command line, or by building an ISO with the boot loader entry predefined with the module_blacklist=thunderbolt option.
Not sure, if that's the issue.

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 6, 2020

Make sure you have the thunderbolt module blacklisted when before booting. Either by adding module_blacklist=thunderbolt option in your kernel command line, or by building an ISO with the boot loader entry predefined with the module_blacklist=thunderbolt option.
Not sure, if that's the issue.

I didn't compile with this. So yep, that could be your issue. Interestingly, I didn't have that problem with my 15,2 Macbook. I remember my first Arch install did but this time I didn't have to blacklist the module.

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 6, 2020

Has anyone played around with audio a little bit more? I must admit everything works flawlessly but Pulse just really does not want to play ball. Continual crashes and etc.

@cristianmiranda

This comment has been minimized.

Copy link

@cristianmiranda cristianmiranda commented May 7, 2020

Hi! Has anyone been able to spoof macos (either using refind or custom efi) to be able to use the integrated Intel GPU? (I have amfgpu running now)
I have another MacBook (without T2 chip) and I was able to do it, but not on the new one. I think I was able to see the Intel card only once on the first boot though (I checked using lspci command).
Any help is highly appreciated. Keep up the good work!!

@peryngveohlin666

This comment has been minimized.

Copy link

@peryngveohlin666 peryngveohlin666 commented May 7, 2020

Could you compile it with the blacklist if possible? there is no way to blacklist the module on systemd boot (at least that i know of)

@cristianmiranda

This comment has been minimized.

Copy link

@cristianmiranda cristianmiranda commented May 7, 2020

@peryngveohlin666 I'm not compiling the kernel, I'm using a custom ISO. But yeah I understand what you're saying, on my non-T2 macbook pro I just use vgaswitcheroo to turn off amdgpu (once loaded), but for doing that I need the Intel GPU card to be visible first.
Apparently @gbrow004 said he was able to make it work and he's going to update a repo: https://gist.github.com/gbrow004/096f845c8fe8d03ef9009fbb87b781a4#gistcomment-3294560

On my non-T2 MBP I was able to spoof macos using refind and also using the custom EFI). Refind is of no good for the T2 MBPs, hopefully the custom EFI will do the trick 🤞

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented May 7, 2020

@peryngveohlin666
Try pressing "e" when after selecting the desired entry in your systemd-boot menu and add module_blacklist=thunderbolt at the end of the kernel command line. This should definately work.
Just to clarify:

  • Insert the USB with you Arch live ISO
  • Press the [option] key on your keyboard in order to be able to boot from an external drive (like your USB stick)
  • A password prompt may appear where you have to enter your firmware password - enter it
  • Select your USB stick to boot from
  • Wait until the systemd-boot menu appears and press "e" and add the mentioned option at the end
  • press enter

Does this work for you? I'm pretty sure I did not miss something, since I repeated this procedure a couple of times tbh.

@peryngveohlin666

This comment has been minimized.

Copy link

@peryngveohlin666 peryngveohlin666 commented May 7, 2020

@peryngveohlin666
Try pressing "e" when after selecting the desired entry in your systemd-boot menu and add module_blacklist=thunderbolt at the end of the kernel command line. This should definately work.
Just to clarify:

* Insert the USB with you Arch live ISO

* Press the [option] key on your keyboard in order to be able to boot from an external drive (like your USB stick)

* A password prompt may appear where you have to enter your firmware password - enter it

* Select your USB stick to boot from

* Wait until the systemd-boot menu appears and press "e" and add the mentioned option at the end

* press enter

Does this work for you? I'm pretty sure I did not miss something

I have already tried this but didn't work for me, after it says reached target bluetooth i just get a grey screen and nothing shows up after waiting. I didn't really know how systemd boot works but thanks for the help. Also I am using a macbook pro 15,1 if that helps anyone or if anyone has a solution.

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented May 7, 2020

Hmm, very strange. I'm using a MacbookPro15,2 so maybe thats why it works for me, however seems to be a pretty huge difference between these two models...

@cristianmiranda

This comment has been minimized.

Copy link

@cristianmiranda cristianmiranda commented May 7, 2020

I actually can now see both cards when doing lspci | grep "VGA", but I cannot use https://github.com/0xbb/gpu-switch to switch to the integrated one (see mikeeq/mbp-fedora#17 (comment)).
When I run xrandr -q it doesn't output my screen as it would normally do, and I cannot change brightness anymore :(

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 8, 2020

@peryngveohlin666
Try pressing "e" when after selecting the desired entry in your systemd-boot menu and add module_blacklist=thunderbolt at the end of the kernel command line. This should definately work.
Just to clarify:

* Insert the USB with you Arch live ISO

* Press the [option] key on your keyboard in order to be able to boot from an external drive (like your USB stick)

* A password prompt may appear where you have to enter your firmware password - enter it

* Select your USB stick to boot from

* Wait until the systemd-boot menu appears and press "e" and add the mentioned option at the end

* press enter

Does this work for you? I'm pretty sure I did not miss something

I have already tried this but didn't work for me, after it says reached target bluetooth i just get a grey screen and nothing shows up after waiting. I didn't really know how systemd boot works but thanks for the help. Also I am using a macbook pro 15,1 if that helps anyone or if anyone has a solution.

Hm, that is strange, I also have a 15,2 so I assume that's why I'm all good like @stefanpartheym. If you add me on Discord (Pykee#0971) maybe you can send me a video of your issue. That might help me debug. I can then compile another ISO for you, from apple logo to crash if I figure it out what specifically is going wrong. I'll start working on an ISO with the thunderbolt blacklist though for ya.

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 8, 2020

@paalpwmd

So to all you guys running on 15,1 MBP's. It seems in some of the later versions of Catalina they have patched some GPU firmware or something. In order to get the ISO to actually boot. you need to add module_blacklist=amdgpu. Obviously this means you will be running on the Intel integrated graphics instead of the GPU. And post-install I have my doubts the GPU will work if you install the drivers, at least until its patched out of linux-mbp

TL;DR: If you're on a 15,1 add module_blacklist=amdgpu

EDIT: After running through the setup with someone else, you will also need to add blacklist amdgpu to /etc/modprobe/blacklist.conf I would do this whilst chrooted into the system during setup.

@paalwilliams

This comment has been minimized.

Copy link

@paalwilliams paalwilliams commented May 8, 2020

@JPyke3

Thanks, I'll give this a go and report back.

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 9, 2020

Seems like there are some Xorg issues with the Radeon GPU too. I'm not really sure how to force Xorg to run on integrated graphics, as it can't find the internal display on the 15,1. Have you been able to get Xorg running on integrated graphics @cristianmiranda?

@cristianmiranda

This comment has been minimized.

Copy link

@cristianmiranda cristianmiranda commented May 9, 2020

@jpyke I tried booting with amdgpu blacklisted, it doesn't make any difference. This is a summary of things I've tried so far:

  • I'm on MBP 15,3 2018 with T2 chip.
  1. Using rEFInd I can spoof macos and the integrated Intel GPU becomes powered on and visible, alongside with the ATI dedicated GPU.
[cmiranda@localhost ~]$ lspci \| grep "VGA"
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 12 [Radeon Pro Vega 20] (rev c0)
04:00.1 Non-VGA unclassified device: Apple Inc. T2 Bridge Controller (rev 01)
04:00.2 Non-VGA unclassified device: Apple Inc. T2 Secure Enclave Processor (rev 01)
  1. Since I booted using rEFInd, amdgpu is not in charge anymore (or at least that seems to be the case), but I don't have full control of the graphics either (as you can see on the following output). I cannot control brightness for instance and power consumption if off the charts (same as overheating):
[cmiranda@localhost ~]$ glxinfo \| grep "OpenGL renderer"
OpenGL renderer string: llvmpipe (LLVM 10.0.0, 256 bits)

[cmiranda@localhost ~]$ xrandr -q
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 3360 x 2100, current 3360 x 2100, maximum 3360 x 2100
default connected primary 3360x2100+0+0 0mm x 0mm
3360x2100     90.00*
   
[cmiranda@localhost ~]$ xrandr --listproviders
Providers: number : 0
  1. I cannot mount efivars anymore (not sure why) so I cannot use https://github.com/0xbb/gpu-switch to switch to the integrated GPU (see mikeeq/mbp-fedora#17 (comment)).

  2. As you can see on dmesg logs I get this:

[    0.115080] You have booted with nomodeset. This means your GPU drivers are DISABLED

So I edited grub and removed nomodeset. After it boots it seems that graphics are better, I see brightness controls but after a few seconds the whole system freezes :/

More logs: https://paste.gg/p/anonymous/5510a39de482465a80c0baef65d3b68f

NOTE: I have a MBP 2016 (no T2 chip) and I was able to make it work like this:

  1. blacklist amdgpu
  2. spoof macos using refind (or a custom EFI)
  3. modprobe amdgpu
  4. turn off amdgpu using vgaswitcheroo

I hope this summary helps anyone else trying to make this work 🤞

@cristianmiranda

This comment has been minimized.

Copy link

@cristianmiranda cristianmiranda commented May 9, 2020

@stefanpartheym are you on a dual GPU mbp? I'm having some issues to make the dedicated gpu idle and use only the integrated one. Here's a summary of things I've tried so far: https://gist.github.com/TRPB/437f663b545d23cc8a2073253c774be3#gistcomment-3297642
Have you been able to make this work?

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 10, 2020

@cristianmiranda Right okay was this a recent firmware upgrade or something? I don't remember hearing about this happening before Catalina was released. In any case thanks for reporting back on your findings! I don't have a dual GPU mbp, I just have the smaller one. but I was trying to help someone else. If you get any further with this keep us updated. It would be a great help :)

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented May 10, 2020

@cristianmiranda I'm on a MacBookPro15,2. I can't say for sure wether I'm on a dual GPU or not, but heavily doubt it.
This is the output I get for lspci | grep VGA:

00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics 655 (rev 01)
02:00.1 Non-VGA unclassified device: Apple Inc. T2 Bridge Controller (rev 01)
02:00.2 Non-VGA unclassified device: Apple Inc. T2 Secure Enclave Processor (rev 01)

Just as a side note: I never ever installed Catalina on my macos, I'm still on Mojave, if that matters in some way.
Also, obviously I did not have to blacklist amdgpu in order to boot into GNOME on Wayland.

Hope this helps.

@cristianmiranda

This comment has been minimized.

Copy link

@cristianmiranda cristianmiranda commented May 11, 2020

@JPyke3 I'm not entirely sure, but I can confirm that I still can use gpu-switch on my non-T2 MBP 13,3 (I didn't upgrade Catalina's version, and I won't ever do that, just in case).

@stefanpartheym I see, apparently you don't have a dedicated GPU. Lucky you!, you spent less money on the machine and you're not dealing with these horrible issues ☺️

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented May 12, 2020

Can anyone relate to the following problem:
Currently, my wifi keeps disconnecting from time to time afterwards, I either have to restart iwd or NetworkManager for the wifi to work again.
This is what dmesg tells me:

[   78.453683] ieee80211 phy0: brcmf_cfg80211_scan: Connecting: status (3)
[   78.453711] ieee80211 phy0: brcmf_cfg80211_scan: Connecting: status (3)
[   78.453717] iwd[412]: segfault at 8 ip 000055b7a690eb23 sp 00007ffd60a98040 error 4 in iwd[55b7a68f2000+8d000]

@cristianmiranda At least something I did right, however my Macbook was still pretty expensive haha 😄

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 16, 2020

@stefanpartheym that to me looks like an issue with iwd itself. Maybe try and switch network manager/backend. I remember once on the MBP I used wicd give that a go. You might have better mileage. I assume the error is caused by the mbp hardware. But it could be calling a function it doesn't actually need or something and crashing.

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented May 17, 2020

@JPyke3 Thanks man! I will try out wicd.
However, I experienced the whole time now I'm using Arch on my mbp:
90% of the time I'm booting, GDM fails to start. I then have to manually restart GDM sudo systemctl restart gdm.
After restarting GDM I can log into GNOME without any issue. Using my bluetooth AirPods however comes along with choppy sound. This seems to be due to my enabled wifi (more one this in the ArchLinux wiki).
I tested this by temporarily stopping the iwd service, and indeed, bluetooth sound is completely clean.
Now the other 10% of time I boot, GDM just starts properly, I can login without the need to manually restart GDM. After a few moments I'm logged in, iwd and NetworkManager complain about not being able to connect to my "physical ethernet interface" (which is there for some reason I can't explain). This however seems to fix the choppy audio for my bluetooth headset. And funnily enough - contrary what I said my last post - wifi still works without issues alongside bluetooth. Only NetworkManager indicates "not connected", which isn't the case.

I'd be glad if someone knows whats going on there, since this choppy bluetooth sound and the manual GDM restarts are driving me nuts...

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 17, 2020

@stefanpartheym I mean I have never used gnome myself. But couldn't you give a different DM a go? On my machine i use lighdm. It works like a charm. I have heard from a few issues with gdm, although not on the mbp. Just in general. Perhaps that's something to look into.

Also, I wonder if your Bluetooth issues are also related to the massive amounts of packet loss on WiFi. I am quite into cloud gaming at the moment and I noticed that whenever Bluetooth was enabled, It would periodically have huge packet loss spikes whenever Bluetooth was trying to scan or something. Sadly I can't help you much further than my personal experience but maybe that helps you out with debugging or something.

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented May 18, 2020

@JPyke3 Thanks man! This definitely helps.
I can confirm that GDM indeed has a few flaws. Some I already "fixed" or found a workaround for. However I will try lightdm next, as you suggested.

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented May 18, 2020

@JPyke3 Unfortunately, lightdm does not fix any issues with wifi/bluetooth/audio 😕 ...

However, I got some news on the bluetooth audio issue:
As I mentioned in my post yesterday, I experience shattering/choppy bluetooth audio as soon as my wifi has to do "heavy" lifting (i.e. loading a website with lots of async requests and such).
I thought, maybe reloading the wifi driver would have an effect, so I did the following:

sudo modprobe -r brcmfmac
sudo modprobe brcmfmac
sudo systemctl restart iwd
sudo systemctl restart NetworkManager

And voilá - this actually fixes bluetooth audio for me, at least temporarily until the next reboot.
I created a little script, that I can execute everytime I experience bad bluetooth audio. This should do it as a workaround for now. However I really want to got the bottom of this.

So, just as little update for anyone having the same trouble ...

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented May 24, 2020

Just a heads up to everyone, I noticed the kernel and its headers popped up in the archlinuxcn repo. Which is a community Repo. However, I really doubt you are going to have any signing issues there. These are what I could see by pacman -Ss

archlinuxcn/linux-mbp 5.5.13-1 [installed: 5.6.13-1]
    The Linux for MBP kernel and modules
archlinuxcn/linux-mbp-docs 5.5.13-1
    Documentation for the Linux for MBP kernel
archlinuxcn/linux-mbp-headers 5.5.13-1 [installed: 5.6.13-1]
    Headers and scripts for building modules for the Linux for MBP kernel

So for anyone wanting to I guess use a more "More-Official-But-Not-Totally-Official" repo then you should be able to use their packages for the kernel just fine. The reason I found out about this was that I accidentally was using this kernel for ages. One issue I ran into with it though was my dkms modules were not compiling very well. Link To GitHub

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented Jun 10, 2020

As a few people asked how i compiled the ISO. I made a github with the scripts and some precompiled iso files. Can be found here here

@franruiz

This comment has been minimized.

Copy link

@franruiz franruiz commented Jun 12, 2020

Has anyone been able to download the ISO @TRPB pruposes on the post under this link? It would be great to have mirror for that -I could host it if needed-.
BTW, excelent work @TRPB.
Regards

@bernardoaraujor

This comment has been minimized.

Copy link

@bernardoaraujor bernardoaraujor commented Jun 18, 2020

I'm also not able to download from the link... sharepoint is imposing some restrictions

@JPyke3

This comment has been minimized.

@franruiz

This comment has been minimized.

Copy link

@franruiz franruiz commented Jun 19, 2020

@bernardoaraujor

This comment has been minimized.

Copy link

@bernardoaraujor bernardoaraujor commented Jun 19, 2020

Hi @bernardoaraujor and @franruiz. Check out https://github.com/JPyke3/arch-mbp-archiso/releases

Thankssss already flashing the ISO.

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented Jul 10, 2020

If anyone is interested in a bit of a less tedious way to set this up. I also compiled Manjaro, can be found here: https://github.com/JPyke3/mbp-manjaro

@jbg

This comment has been minimized.

Copy link

@jbg jbg commented Aug 30, 2020

I had another look at getting audio working today. The pulseaudio problems (pulseaudio dies or constantly restarts) are because of some performance issues in the driver causing pulseaudio to spend too long in realtime scheduling contexts. This should be fixed in the driver, so I filed an issue. In the meantime, you can either set realtime-scheduling = no in /etc/pulse/daemon.conf, possibly leading to audio quality problems like dropouts, or set rlimit-rttime = 3200000 (value may need to be even higher - experiment) in the same file, possibly leading to scheduling issues like other programs not getting CPU time while audio is playing.

@Bokaiii

This comment has been minimized.

Copy link

@Bokaiii Bokaiii commented Sep 10, 2020

I cannot get wifi to work. I followed the instruction very carefully, and still doesn't work. It connects just fine over bluetooth when I share internet from my phone, but if I try to connect to a wifi network it instantly disconnects. Any idea what I can do to fix this? c:

Everything else works just fine! :D

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented Sep 10, 2020

Hi @Bokaiii, which model do you have? And arer you using iwd as your wifi backend?

@Bokaiii

This comment has been minimized.

Copy link

@Bokaiii Bokaiii commented Sep 11, 2020

@JPyke3 I have a macbook 2018 (model 15,2) - and I've tried using iwd as well as wpa_supplicant from your GitHub c:

I'm running macOS Catalina, could that have anything to do with the wifi not working? (I saw that someone wrote something similar earlier, but I'm not sure how to get the .txt, .trx and .clmb files from versions before Catalina...)

@jbg

This comment has been minimized.

Copy link

@jbg jbg commented Sep 11, 2020

@Bokaiii did you download the firmware blob for your wifi, or extract it from macOS or the recovery image? it won't work without the firmware.

Check dmesg for errors related to your wifi.

@JPyke3

This comment has been minimized.

Copy link

@JPyke3 JPyke3 commented Sep 11, 2020

@Bokaiii Oh yeah the wifi FW from Catalina doesn’t work. Have a look here https://github.com/JPyke3/mbp-manjaro. Check out the category "In order to get WiFi working". (Sorry on mobile, can’t link you)

@Bokaiii

This comment has been minimized.

Copy link

@Bokaiii Bokaiii commented Sep 11, 2020

@jbg I downloaded the 3 files (txt, trx and clmb) from the link provided. I ran the given command in macOS to see which files I needed.

@JPyke3 I followed the step by step and still couldn't get it to work. How do I check what files to download if not the files from Catalina?

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented Sep 11, 2020

@Bokaiii You can use the files from this repository: https://github.com/stefanpartheym/mbp15-wifi-driver
All necessary files for MacBookPro15,2 are in the driver-files directory.
You can also use the install.sh script to install them to the correct location.

@Bokaiii

This comment has been minimized.

Copy link

@Bokaiii Bokaiii commented Sep 11, 2020

@stefanpartheym I downloaded the files and ran executed the install.sh file (command in linux terminal: exec install.sh), but the terminal just closes immediately after.
Also, I don't have a wifi section under settings?

@stefanpartheym

This comment has been minimized.

Copy link

@stefanpartheym stefanpartheym commented Sep 11, 2020

@Bokaiii This script only copies the necessary files to the correct location in your linux system. This does not make wifi work immediately.
Also run the script via ./install.sh, you might need to make it executable first with chmod +x ./install.sh.
Make sure you follow this guide in order to make wifi work.

@Bokaiii

This comment has been minimized.

Copy link

@Bokaiii Bokaiii commented Sep 11, 2020

@stefanpartheym I tried running it by typing ./install.sh (permission denied), so I tried "sudo ./install.sh" and it just returned saying that ./install.sh: command not found.

Tried making it an executable, and it's still the same outcome?

@jbg

This comment has been minimized.

Copy link

@jbg jbg commented Sep 11, 2020

@Bokaiii The script copies to /lib/firmware, so it will need to be run as root (via sudo or by being logged in as root). It will also need to be executable (chmod +x install.sh as above). Then go and read (thoroughly) the guide @stefanpartheym linked you above.

If you need help learning to use your shell / Linux, try the IRC channel or forums for your Linux distribution -- consider that each message you write here is emailed to probably 50+ people.

@Bokaiii

This comment has been minimized.

Copy link

@Bokaiii Bokaiii commented Sep 11, 2020

@jbg I turned it into an executable, I ran it using the command: "sudo ./install.sh".
I did all you just said (I read the guide thoroughly), and it still says that ./install.sh is an unknown command.

@TrueNix

This comment has been minimized.

Copy link

@TrueNix TrueNix commented Sep 13, 2020

@jameseidson

This comment has been minimized.

Copy link

@jameseidson jameseidson commented Sep 19, 2020

Hi all, I'm having trouble downloading linux-mbp and linux-mbp-headers- I'm getting errors about missing/unknown PGP keys when compiling the iso. I tried manually adding the key from https://packages.aunali1.com/archlinux/key.asc, but now I get a new error saying the signature is unknown trust. From here, I downloaded the ISO provided by @JPyke3, and after following the install process, I get the same PGP error after running pacstrap /mnt base linux-mbp linux-firmware. Is there anything I can do or does @aunali1 need to update the keys?

@aunali1

This comment has been minimized.

Copy link

@aunali1 aunali1 commented Sep 19, 2020

@jameseidson These instructions are fairly dated, the previous site packages.aunali1.com has been deprecated. The new location is http://dl.t2linux.org. The reported key is still valid and used for package signing for my binary repo, found at http://dl.t2linux.org/archlinux/key.asc. You need to import the key using the following steps:

$ pacman-key --add key.asc
$ pacman-key --finger 7F9B8FC29F78B339
$ pacman-key --lsign-key 7F9B8FC29F78B339

Additionally, if you are using @JPyke3's images, they are signed using a different key and will require you to follow the same steps as mentioned above with his key.

@jameseidson

This comment has been minimized.

Copy link

@jameseidson jameseidson commented Sep 20, 2020

@aunali1 Thank you, the packages worked perfectly and I have a full install now. Unfortunately, I'm stuck on getting wifi to work. I copied over the files from your archive listed in another comment, which got the wifi card to show up in ip link. I then followed the instructions in the original post to enable the iwd backend for network manager, as well as the instructions on the arch wiki here, including installing networkmanager-iwd. I am able to list nearby networks, but when I attempt to connect via nmcli I get Connection activation failed: (7) Secrets were required, but not provided (I am providing the network's passcode). When using nmtui to connect to the same network, I get Activation failed: The base network connection was interrupted. If I attempt to connect to a different network with no password, the program crashes and I get a huge screen writeout with a stack trace. Any recommendations? Also tagging @TRPB cause its his guide.

@aunali1

This comment has been minimized.

Copy link

@aunali1 aunali1 commented Sep 20, 2020

@jameseidson I suggest you connect to the wireless network using the iwctl utility instead of nmcli. It's REPL is quite intuitive and it should be fairly straightforward to connect to a network.

@jameseidson

This comment has been minimized.

Copy link

@jameseidson jameseidson commented Sep 20, 2020

@aunali1 I tried this and again I am able to scan nearby networks just fine, but when I attempt to join any of them I get Operation aborted and nothing happens. Same experience whether I use the REPL or run from the command line with the appropriate arguments.

@aunali1

This comment has been minimized.

Copy link

@aunali1 aunali1 commented Sep 20, 2020

@jameseidson Hmm, odd... Can you please paste the results of the following after a clean reboot:

$ sudo dmesg | grep -i brcm
@jameseidson

This comment has been minimized.

Copy link

@jameseidson jameseidson commented Sep 20, 2020

@aunali1

[    7.015518] usbcore: registered new interface driver brcmfmac
[    7.030322] brcmfmac 0000:03:00.0: enabling device (0000 -> 0002)
[    7.137403] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4364-pcie for chip BCM4364/3
[    7.171951] brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac4364-pcie.Apple Inc.-MacBookPro15,1.txt failed with error -2
[    7.171959] brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac4364-pcie.txt failed with error -2
[    7.538406] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4364-pcie for chip BCM4364/3
[    7.571404] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4364/3 wl0: Oct 23 2019 08:32:36 version 9.137.11.0.32.6.36 FWID 01-671ec60c
[    7.731492] Bluetooth: hci0: BCM: 'brcm/BCM.hcd'
@aunali1

This comment has been minimized.

Copy link

@aunali1 aunali1 commented Sep 20, 2020

@jameseidson It seems that your NVRAM .txt file is missing. This would explain the failure to connect. You will need to ensure that the requisite .txt file is named as brcmfmac4364-pcie.Apple Inc.-MacBookPro15,1.txt and located in your firmware/brcm/ folder.

@jameseidson

This comment has been minimized.

Copy link

@jameseidson jameseidson commented Sep 20, 2020

@aunali1 You are an absolute legend! When I initially moved the file I added quotations around the path because of the space, but I also mistakenly added an escape character backslash, so my file had a literal '\' in its name. I renamed the file and it works perfectly now. Thank you so much for taking the time to help me out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.