All Projects → mikeeq → Mbp Fedora

mikeeq / Mbp Fedora

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Mbp Fedora

chaos-2
A hand-made SMP-aware kernel
Stars: ✭ 20 (-84.5%)
Mutual labels:  kernel, iso, os, operating-system
Aquila
AquilaOS: UNIX-like Operating System
Stars: ✭ 413 (+220.16%)
Mutual labels:  kernel, operating-system, os
Serenity
SerenityOS is a love letter to '90s user interfaces with a custom Unix-like core. It flatters with sincerity by stealing beautiful ideas from various other systems.
Stars: ✭ 16,842 (+12955.81%)
Mutual labels:  kernel, operating-system, os
Customarch
Arch Linux Based Custom ISOs Made With "Archiso"
Stars: ✭ 606 (+369.77%)
Mutual labels:  iso, operating-system, os
Wingos
a little 64bit operating system written in c++ with smp support
Stars: ✭ 361 (+179.84%)
Mutual labels:  kernel, operating-system, os
Qword
Operating system for x86_64 based around a "keep it simple and make it work" philosophy.
Stars: ✭ 367 (+184.5%)
Mutual labels:  kernel, operating-system, os
Tofita
🍬 All-new kernel for @GreenteaOS
Stars: ✭ 112 (-13.18%)
Mutual labels:  kernel, operating-system, os
Lemonos
The Lemon Operating System https://lemonos.org
Stars: ✭ 260 (+101.55%)
Mutual labels:  kernel, operating-system, os
Fiwix
A UNIX-like kernel for the i386 architecture
Stars: ✭ 38 (-70.54%)
Mutual labels:  kernel, operating-system, os
Dennix
Dennix is a unix-like hobbyist operating system written from scratch.
Stars: ✭ 53 (-58.91%)
Mutual labels:  kernel, operating-system, os
Toaru Nih
NOTICE: The ToaruOS-NIH Project has been MERGED UPSTREAM. This repository is now archived.
Stars: ✭ 66 (-48.84%)
Mutual labels:  kernel, operating-system, os
Rust Raspberrypi Os Tutorials
📚 Learn to write an embedded OS in Rust 🦀
Stars: ✭ 7,275 (+5539.53%)
Mutual labels:  kernel, operating-system, os
Toaruos
A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.
Stars: ✭ 4,687 (+3533.33%)
Mutual labels:  kernel, operating-system, os
Reactos
A free Windows-compatible Operating System
Stars: ✭ 10,216 (+7819.38%)
Mutual labels:  kernel, operating-system, os
Harmonyos
A curated list of awesome things related to HarmonyOS. 华为鸿蒙操作系统。
Stars: ✭ 18,385 (+14151.94%)
Mutual labels:  kernel, operating-system, os
Archcraft
// Source : ISO
Stars: ✭ 437 (+238.76%)
Mutual labels:  operating-system, os, fedora
Emerald
An operating system written in C
Stars: ✭ 118 (-8.53%)
Mutual labels:  kernel, operating-system, os
LudOS
A toy monolithic kernel written in C++
Stars: ✭ 38 (-70.54%)
Mutual labels:  kernel, os, operating-system
fpos
Free Pascal Operating System (FPOS) is a operating system consists of a minimal kernel built on FreePascal. It contains a Scheme implementation of a hard drive (ATA) driver, keyboard (PS2), serial (8250 UART), FAT32 filesystem and a small real time clock manager. The project was built to experiment with developement of operating system using a h…
Stars: ✭ 36 (-72.09%)
Mutual labels:  kernel, os, operating-system
Floppybird
Floppy Bird (OS)
Stars: ✭ 836 (+548.06%)
Mutual labels:  iso, kernel, os

mbp-fedora

Build Status

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

All available Apple T2 drivers are integrated with this iso. Most things work, besides those mentioned in not working section.

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

Drivers:

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

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

How to install

  • Turn off secure boot - https://support.apple.com/en-us/HT208330

  • Download .iso from releases section - https://github.com/mikeeq/mbp-fedora/releases/latest

  • Burn the image on USB stick >=8GB via:

  • Install Fedora

    • Boot directly from macOS boot manager. (You can boot into it by pressing and holding option key after clicking the power-on button).
      • There will be three boot options available, usually the third one works for me. (There are three of them, because there are three partitions in ISO: 1) ISO9660: with installer data, 2) fat32, 3) hfs+)
    • I recommend to shrink (resize) macOS APFS partition and not removing macOS installation entirely from your MacBook, because it's the only way to keep your device up-to-date. macOS OS updates also contains security patches to EFI/Apple T2
    • You should use standard partition layout during partitioning your Disk in anaconda, because i haven't tested LVM scenario yet. https://github.com/mikeeq/mbp-fedora/issues/2
      • /boot/efi - 1024MB Linux HFS+ ESP
      • /boot - 1024MB EXT4
      • / - xxxGB EXT4
    • There will be an error on Installing bootloader... step, click Yes - It's related to efi=noruntime kernel arg bootloader issue
    # /tmp/anaconda.log
    13:39:49,173 INF bootloader.grub2: bootloader.py: used boot args: resume=UUID=8a64abbd-b1a3-4d4a-85c3-b73800e46a1e rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet
    13:39:54,649 ERR bootloader.installation: bootloader.write failed: Failed to set new efi boot target. This is most likely a kernel or firmware bug.
    
  • Put wifi firmware files to /lib/firmware/brcm/

  • To install additional languages, install appropriate langpack via dnf dnf search langpack

  • After login you can update kernel by running sudo update_kernel_mbp

  • You can change mappings of ctrl, option keys (PC keyboard mappings) by creating /etc/modprobe.d/hid_apple.conf file and recreating grub config. All available modifications could be found here: https://github.com/free5lot/hid-apple-patched

# /etc/modprobe.d/hid_apple.conf
options hid_apple swap_fn_leftctrl=1
options hid_apple swap_opt_cmd=1

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
  • To change function key mappings for models with touchbar see modinfo apple_ib_tb and use echo 2 > /sys/class/input/*/device/fnmode instead of the hid_apple options. See this issue

Not working

  • Dynamic audio input/output change (on connecting/disconnecting headphones jack)
  • TouchID - (@MCMrARM is working on it - https://github.com/Dunedan/mbp-2016-linux/issues/71#issuecomment-528545490)
  • Thunderbolt (is disabled, because driver was causing kernel panics (not tested with 5.5 kernel))
  • Microphone (it's recognised with new apple t2 sound driver, but there is a low mic volume amp)

TODO

  • add Fedora icon to usb installer

  • alsa/pulseaudio config

    • Dynamic audio input/output change (on connecting/disconnecting headphones jack)
    ## to manually change audio profile via PulseAudio cli execute
    # to headphones output
    pacmd set-card-profile $(pacmd list-cards | grep -B6 'alsa.card_name = "Apple T2 Audio"' | head -n1 | cut -d':' -f 2) output:codec-output+input:codec-input
    
    # to speakers output
    pacmd set-card-profile $(pacmd list-cards | grep -B6 'alsa.card_name = "Apple T2 Audio"' | head -n1 | cut -d':' -f 2) output:builtin-speaker+input:builtin-mic
    
  • disable iBridge network interface (awkward internal Ethernet device?)

  • disable not working camera device

    • there are two video devices (web cameras) initialized/discovered, don't know why yet
    ➜ ls -l /sys/class/video4linux/
    total 0
    lrwxrwxrwx. 1 root root 0 Aug 23 15:14 video0 -> ../../devices/pci0000:00/0000:00:1d.4/0000:02:00.1/bce/bce/bce-vhci/usb7/7-2/7-2:1.0/video4linux/video0
    lrwxrwxrwx. 1 root root 0 Aug 23 15:14 video1 -> ../../devices/pci0000:00/0000:00:1d.4/0000:02:00.1/bce/bce/bce-vhci/usb7/7-2/7-2:1.0/video4linux/video1
    ➜ cat /sys/class/video4linux/*/dev
    81:0
    81:1
    
  • verify brcmf_chip_tcm_rambase returns

Known issues

  • Kernel/Mac related issues are mentioned in kernel repo
  • Anaconda sometimes could not finish installation process and it's freezing on Network Configuration step, probably due to iBridge internal network interface

workaround - it's a final step of installation, just reboot your Mac (installation is complete)

  • Wifi could have problems with connecting to secure networks (WPA2)

    • wpa_supplicant error - CTRL-EVENT-ASSOC-REJECT bssid= status_code=16
      • there are two workaround available:

        • you can stick with wpa_supplicant as wifi backend and you will need to reload broadcom module every time you connect to network
        ## Run as root
        modprobe -r brcmfmac; modprobe brcmfmac
        
        • or you can change your wifi backend to iwd (it's less problematic, it's crashing sometimes, but it's more stable than wpa_supplicant [with broadcom wifi])
        ### iwd is now installed by default installation instructions mentioned below are for older Fedora installations
        
        ## Run all commands as root
        # Change wifi backend which NetworkManager is using
        vi /etc/NetworkManager/conf.d/wifi_backend.conf
        
        [device]
        wifi.backend=iwd
        
        # enable iwd autostart
        systemctl enable iwd
        
        # start iwd
        /usr/libexec/iwd
        systemctl start iwd
        systemctl restart NetworkManager
        
        ## If you want to switch back to wpa_supplicant just remove/rename `/etc/NetworkManager/conf.d/wifi_backend.conf` file, i.e.:
        mv /etc/NetworkManager/conf.d/wifi_backend.conf /etc/NetworkManager/conf.d/wifi_backend.conf_iwd
        
  • Macbooks with Apple T2 can't boot EFI binaries from HFS+ formatted ESP - only FAT32 (FAT32 have to be labelled as msftdata).

workaround applied - HFS+ ESP is reformatted to FAT32 in post-scripts step and labelled as msftdata

  • efibootmgr write command freezes Mac (it's executed in Anaconda during Install bootloader... step) - nvram is blocked from writing

    • since macOS Catalina EFI is blocked even from reading, so access to EFI is blocked via adding efi=noruntime to kernel args
efibootmgr --c -w -L Fedora /d /dev/nvme0n1 -p 3 -l \EFI\fedora\shimx64.efi
  • ctrl+x is not working in GRUB, so if you are trying to change kernel parameters - start your OS by clicking ctrl+shift+f10 on external keyboard

Docs

Fedora

Github

Credits

  • @MCMrARM - thanks for all RE work
  • @ozbenh - thanks for submitting NVME patch
  • @roadrunner2 - thanks for SPI (touchbar) driver
  • @aunali1 - thanks for ArchLinux Kernel CI
  • @ppaulweber - thanks for keyboard and Macbook Air patches
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].