Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tips for contributing, update State article #487

Merged
merged 13 commits into from
Dec 23, 2023
4 changes: 4 additions & 0 deletions docs/contribute.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ The T2 project itself currently does not accept financial donations. However, so

The best way of donation which we believe is in the form of skill. If you think you have the potential to help us in pushing the project further like fixing bugs, adding new features etc., you are free to do so. For this, you may contact our discord server, where other members of this organization are present.

## Contribute to the code

See "partially working" features at [State](https://wiki.t2linux.org/state/) to get an idea of what's being worked on, and what should be worked on.

## Support our maintainers

Here is the list and links to donate some of our maintainers.
Expand Down
17 changes: 12 additions & 5 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ The following repos contain kernel modules for said support:

## Guides and similar

Note that, if you are using one of the distributions listed above, you should follow their install guides rather than the ones listed under this section. However, they might still be important to gain a better general picture or to help with specific issues.
!!! Warning "The following guides are third party"
These guides/configurations aren't supported by t2linux maintainers. Use at your own risk. If you are using one of the distributions listed above, you should follow their install guides rather than the ones listed under this section. However, they might still be important to gain a better general picture or to help with specific issues.

- List of Mac Model Identifiers on [everymac.com](https://everymac.com/systems/by_capability/mac-specs-by-machine-model-machine-id.html)
- Using Luks with the integrated keyboard [https://github.com/DimitriDokuchaev/GrubLuksUnlock](https://github.com/DimitriDokuchaev/GrubLuksUnlock)
Expand All @@ -53,11 +54,17 @@ Note that, if you are using one of the distributions listed above, you should fo
- Get SMART information of your Apple Internal SSD using Linux [https://gist.github.com/AdityaGarg8/b03e57826213019fbffa747e1c724cac](https://gist.github.com/AdityaGarg8/b03e57826213019fbffa747e1c724cac)
- Keyboard related issues [https://wiki.archlinux.org/title/Apple_Keyboard](https://wiki.archlinux.org/title/Apple_Keyboard)
- Get silent boot experience similar to macOS and Windows on [Ubuntu](https://gist.github.com/AdityaGarg8/a39063f0d8c39572f03f55cbe02f9beb) and [Arch Linux](https://wiki.archlinux.org/title/silent_boot).
- Implement macOS-like Keyboard and trackpad experience on **Gnome Xorg**. Read the top comments of each file in the links given below to understand requirements, additional tools and usage.
- [Synaptics Config](https://gist.github.com/smileBeda/f0452f0d7f1f6d8aa772603411f7876f) (for general trackpad behaviour using Synaptics)
- [Fusuma Config](https://gist.github.com/smileBeda/74a52fe7cb0901da9e67ae4e39966982) (for additional gestures commands using Fusuma)

*Outdated*
### Trackpad tuning

- Wayland
- libinput tuning is typically applied by distribution maintainers rather than end users. You can test changes on your own, see [debugging touchpad pressure](https://wayland.freedesktop.org/libinput/doc/latest/touchpad-pressure-debugging.html) and [palm detection](https://wayland.freedesktop.org/libinput/doc/latest/palm-detection.html) guides. If you get a configuration that works well, please notify the t2linux maintainers.
- Xorg **(deprecated, use Wayland instead if possible)**
- Implement macOS-like Keyboard and trackpad experience on Gnome Xorg. Read the top comments of each file in the links given below to understand requirements, additional tools and usage.
- [Synaptics Config](https://gist.github.com/smileBeda/f0452f0d7f1f6d8aa772603411f7876f) (for general trackpad behaviour using Synaptics)
- [Fusuma Config](https://gist.github.com/smileBeda/74a52fe7cb0901da9e67ae4e39966982) (for additional gestures commands using Fusuma)

### Outdated

- State of Linux on the MacBook Pro (technical documentation) [https://github.com/Dunedan/mbp-2016-linux](https://github.com/Dunedan/mbp-2016-linux)
- Arch on 2018 MacBook Pro [https://gist.github.com/TRPB/437f663b545d23cc8a2073253c774be3](https://gist.github.com/TRPB/437f663b545d23cc8a2073253c774be3)
Expand Down
52 changes: 23 additions & 29 deletions docs/state.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,29 @@
# Introduction
# State

While Linux is usable on all T2 models, some features are limited due to the lack of drivers or similar. This page should give a general overview of what is working and what is not.

## Working

- Internal Drive / SSD: Support for the SSD has been upstreamed to the Linux Kernel
- Screen
- USB
- Keyboard
- Camera
- Wi-Fi (requires macOS firmware)
- Bluetooth (requires macOS firmware only for devices with BCM4377 chip. Also, Bluetooth glitches on devices with BCM4377 Chip if connected to a 2.4 Ghz Wi-Fi connection. Thus, in order to use Bluetooth either turn off your Wi-Fi or use a 5Ghz Wi-Fi connection.)
- Touch Bar: There is support for the "Touch Bar Keyboard" device configuration, where only the Function Keys or the Media/Brightness Control Keys can be shown. No other graphics can be shown on the Touchbar (this is what Windows with Bootcamp drivers uses).
- Suspend

## Partially Working

- Trackpad: Functions, but it is far from the experience on macOS (No force touch or palm rejection). Some models have deadzones on the edges of their trackpads where swipes along the trackpad that start in these deadzones will not be registered.
- Audio: With proper configuration audio can work, however it is not stable in some older kernels and switching between speakers and when using the microphone. Microphone volume is low in some Macs.
- Hybrid Graphics: If the device has a dedicated AMD GPU (15 and 16 inch MacBookPro's) as well as an Intel iGPU, the iGPU can be used, but this breaks resume, see the [Hybrid Graphics](https://wiki.t2linux.org/guides/hybrid-graphics/) page.
- AMD GPUs: Changing resolution, using DRI_PRIME and doing various other things can cause crashes, but `echo high | sudo tee /sys/bus/pci/drivers/amdgpu/0000:??:??.?/power_dpm_force_performance_level` or adding `amdgpu.dpm=0` to the kernel commandline stops these crashes.
- MacPro7,1: Users have encountered PCIE Address Space issues, with auto remap breaking.

## Not working

- Custom graphics on Touchbar: There is currently no Linux driver for the Touchbar's "Touch Bar Display" device configuration, which is what macOS uses, and gives full control over the display to the Operating System.
- T2 Secure Enclave Processor (Touch ID, storing encryption keys on the T2)
- The T2's onboard Audio Video Encoder (used for Sidecar on macOS)
- Graphics switching without rebooting (gmux)

## Other
|Feature|Status|Upstream|Notes|Issues/links|
|-|-|-|-|-|
|Internal Drive / SSD|🟢 Working|🟢 Kernel 5.4||[Filesystem notes](#filesystem-notes)|
|Screen, iGPU|🟢 Working|🟡 Partial|||
|USB|🟢 Working|🟢 Yes|||
|Keyboard|🟢 Working|🔴 No||[apple-bce](https://github.com/t2linux/apple-bce-drv)|
|Trackpad|🟢 Working|🔴 No|Works, but isn't as great as on macOS (no force touch or palm rejection).|[apple-bce](https://github.com/t2linux/apple-bce-drv), [Trackpad tuning](https://wiki.t2linux.org/#trackpad-tuning)|
|Wi-Fi|🟢 Working|🟢 Yes|Requires macOS firmware|[Setup guide](https://wiki.t2linux.org/guides/wifi-bluetooth/)|
|Bluetooth|🟡 Partially working|🟢 Yes|Requires macOS firmware only for devices with BCM4377 chip. Also, Bluetooth glitches on devices with BCM4377 Chip if connected to a 2.4 Ghz Wi-Fi connection. Thus, in order to use Bluetooth either turn off your Wi-Fi or use a 5Ghz Wi-Fi connection.|[Setup guide](https://wiki.t2linux.org/guides/wifi-bluetooth/)|
|Camera|🟢 Working|🔴 No||[apple-bce](https://github.com/t2linux/apple-bce-drv)|
|Thunderbolt|🟢 Working|🟢 Yes|If it doesn't work, try replacing `pcie_ports=compat` with `pcie_ports=native` in the kernel parameters via GRUB.||
|Touch Bar|🟢 Working|🔴 No|"Touch Bar Keyboard" mode works OOTB, where only the Function Keys or the Media/Brightness Control Keys are shown. Support for custom graphics on the Touch Bar is being actively developed.|[tiny-dfr](https://github.com/kekrby/tiny-dfr), [apple-ib](https://github.com/t2linux/apple-ib-drv)|
|Suspend|🟡 Partially working|🟢 Yes|A firmware upgrade attached to macOS Sonoma broke suspend. Some users were having difficulty with it even before Sonoma. The issue has something to do with the apple-bce driver, because suspend works when it's disabled.|[#53](https://github.com/t2linux/T2-Ubuntu-Kernel/issues/53)|
|Audio|🟡 Partially working|🔴 No|With proper configuration audio can work, however it is not stable in some older kernels and switching between speakers and when using the microphone. Microphone volume is low in some Macs.|[apple-bce](https://github.com/t2linux/apple-bce-drv)|
|Hybrid Graphics|🟡 Partially working|🟡 Partial|Toggling dGPU power doesn't work.|[Hybrid Graphics](https://wiki.t2linux.org/guides/hybrid-graphics/)|
|AMD GPUs|🟡 Partially working||Changing resolution, using DRI_PRIME and doing various other things can cause crashes, but `echo high \| sudo tee /sys/bus/pci/drivers/amdgpu/0000:??:??.?/power_dpm_force_performance_level` or adding `amdgpu.dpm=0` to the kernel commandline stops these crashes.||
|MacPro7,1|🟡 Partially working||Users have encountered PCIE Address Space issues, with auto remap breaking.||
netnef marked this conversation as resolved.
Show resolved Hide resolved
|T2 Secure Enclave|🔴 Not working||Used for Touch ID, storing encryption keys on macOS||
|T2 Audio Video Encoder|🔴 Not working||Used for Sidecar on macOS||

## Filesystem notes

- Linux using APFS filesystems: Linux cannot read the internal SSD's macOS APFS parition's Data and System volume (for other APFS volumes, [linux-apfs-rw](https://github.com/linux-apfs/linux-apfs-rw) can be used for reading data, but attempting to write is risky).

- macOS using Linux filesystems: There are FUSE implementations of some Linux Filesystems that can be used on macOS (but again, most only have experemental write support).
Loading