Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mikeeq/mbp-fedora-kernel


https://github.com/mikeeq/mbp-fedora-kernel

2019 2020 apple apple-t2 fedora kernel linux linux-kernel macbook macbook-pro

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# mbp-fedora-kernel

Fedora kernel with Apple T2 patches built-in (Macbooks produced >= 2018).

Fedora ISO (with mbp-fedora-kernel builtin):

Kernel patches:

> Tested on: Macbook Pro 15,2 13" 2019 i5 TouchBar Z0WQ000AR MV972ZE/A/R1 && Macbook Pro 16,2 13" 2020 i5

```
Boot ROM Version: 220.270.99.0.0 (iBridge: 16.16.6571.0.0,0)
macOS Mojave: 10.14.6 (18G103)
```

## CI status

GitHub Actions kernel build status

[![Build Status](https://github.com/mikeeq/mbp-fedora-kernel/actions/workflows/build-kernel.yml/badge.svg)](https://github.com/mikeeq/mbp-fedora-kernel/actions/workflows/build-kernel.yml)

Github Actions kernel publish status -

[![Publish Status](https://github.com/mikeeq/mbp-fedora-kernel/actions/workflows/yum-repo.yml/badge.svg)](https://github.com/mikeeq/mbp-fedora-kernel/actions/workflows/yum-repo.yml)

## How to update mbp-fedora-kernel

Starting from Fedora 37 `mbp-fedora` release - `mbp-fedora-kernel` should be automatically updated using builtin package manager - DNF, so simply run `dnf update --refresh`, and it should automatically fetch all required updates.

If the DNF fail, or you're updating your older `mbp-fedora`, you can still use previously used method with `update_kernel_mbp` described below.

```bash
### First run or if you want to update your copy of update_kernel_mbp script
sudo -i
curl -L https://raw.githubusercontent.com/mikeeq/mbp-fedora-kernel/v6.4-f38/update_kernel_mbp.sh -o /usr/bin/update_kernel_mbp
chmod +x /usr/bin/update_kernel_mbp
update_kernel_mbp

### Next runs
sudo -i
update_kernel_mbp

### Update to specific version of kernel
sudo -i
KERNEL_VERSION="6.4.16-f38" update_kernel_mbp

### Update to specific version of kernel using specific version of update script
#### Usually not needed, because scripts are shared between branches, but you can use it to update your update_kernel_mbp script
##### If the script fails, try to rerun it - it's due to self-upgrading feature of this script
sudo -i
KERNEL_VERSION="6.4.16-f38" UPDATE_SCRIPT_BRANCH="v6.4-f38" update_kernel_mbp

### If kernel update using dnf would file you can execute update_kernel_mbp script with `--github` argument, it will force it to use github to download kernel RPMs
sudo -i
update_kernel_mbp --github
```

## Known issues

- TouchID - (@MCMrARM is working on it - https://github.com/Dunedan/mbp-2016-linux/issues/71#issuecomment-528545490)
- Audio
- Internal Microphone (it's recognized with new apple t2 sound driver, but there is a low mic volume amp)

### Partially working

- Suspend - really unstable, I recommend disabling it. If you would stuck in sleep mode, try to keep pressing power off button for a while to force poweroff and then turn on the Macbook.
- Touch Bar, if you encounter any issues, I recommend reboot to MacOS/Windows to initialize TouchBar and then back to Linux - it should fix the problem.

### Working with upstream stable kernel 6.0

- Display/Screen
- USB-C
- Battery/AC
- Ethernet/Video USB-C adapters
- Bluetooth
- NVMe
- Camera
- Thunderbolt

### Working with mbp-fedora-kernel

- with builtin BCE driver
- Audio
- Keyboard
- Keyboard Backlight
- Touchpad (scroll, right click)
- with builtin iBridge driver
- MacBook Pro Touch Bar
- If there's an issue with Touch Bar startup on Linux I recommend installing Win10 and boot it once a while to initialize Touch Bar using BootCamp driver, it seems to fix the issue
- WiFi
- to make it working, you need to grab closed source Broadcom WiFi firmware from MacOS and put it under `/lib/firmware/brcm/` in Linux OS, see

### Not tested

- eGPU

## How to build mbp-fedora-kernel

1. Make sure that Docker is installed and running correctly on your machine
2. Clone repo
3. Generate GPG key: `gpg --full-generate-key`, choose `RSA and RSA` and `Real name: mbp-fedora`
4. Change version in `build.sh`,
5. Run `./build_in_docker.sh`

## Docs

- Discord:
- T2 Wiki:
- WiFi firmware:

### Fedora

-
-
-

### Github

- GitHub issue (RE history):
- @kekerby T2 Audio Config:
- Apple BCE repository (Apple T2 HID):
- Apple iBridge repository (TouchBar):

- hid-apple-patched module for changing mappings of ctrl, fn, option keys:
- Linux T2 kernel patches:
- Ubuntu
- Kernel
- ISO
- Arch Linux
- Kernel
- Packages
- ISO

### Old

- VHCI+Sound driver (Apple T2):
- AppleSMC driver (fan control):
- hid-apple keyboard backlight patch:
- TouchBar driver:

### Other

- blog `Installing Fedora 31 on a 2018 Mac mini`:
- iwd:
-
-
-

## Credits

- @MCMrARM - thanks for all RE work
- @ozbenh - thanks for submitting NVME patch
- @roadrunner2 - thanks for SPI (touchbar) driver
- @aunali1 - thanks for Kernel Patches
- @ppaulweber - thanks for keyboard and Macbook Air patches
- @AdityaGarg8 - thanks for support and upkeeping kernel patches
- @kekrby for T2 Audio config
- @Redecorating for Arch support