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
3 changes: 3 additions & 0 deletions docs/contribute.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ 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
51 changes: 21 additions & 30 deletions docs/state.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,26 @@
# 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|🟢 Working|🟢 Yes|||
netnef marked this conversation as resolved.
Show resolved Hide resolved
|USB|🟢 Working|🟢 Yes|||
|Keyboard|🟢 Working|🔴 No||[apple-bce](https://github.com/t2linux/apple-bce-drv)|
|Camera|🟢 Working|🟢 Yes|||
Redecorating marked this conversation as resolved.
Show resolved Hide resolved
|Wi-Fi|🟢 Working|🔴 No|Requires macOS firmware|[Setup guide](https://wiki.t2linux.org/guides/wifi-bluetooth/)|
|Bluetooth|🟢 Working|🔴 No|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/)|
netnef marked this conversation as resolved.
Show resolved Hide resolved
|Touch Bar|🟢 Working|🔴 No|There is support for the "Touch Bar Keyboard" device configuration, where only the Function Keys or the Media/Brightness Control Keys can be shown. There is work in progress support for custom graphics on the Touch Bar.|[tiny-dfr](https://github.com/kekrby/tiny-dfr)<br>[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.|[#53](https://github.com/t2linux/T2-Ubuntu-Kernel/issues/53)|
netnef marked this conversation as resolved.
Show resolved Hide resolved
|Trackpad|🟡 Partially working|🔴 No|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.|[apple-bce](https://github.com/t2linux/apple-bce-drv)|
|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|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.|[Hybrid Graphics](https://wiki.t2linux.org/guides/hybrid-graphics/)|
netnef marked this conversation as resolved.
Show resolved Hide resolved
|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.||
netnef marked this conversation as resolved.
Show resolved Hide resolved
|MacPro7,1|🟡 Partially working||Users have encountered PCIE Address Space issues, with auto remap breaking.||
|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).