Skip to content

sebastienrousseau/iceunit

Repository files navigation

Iceunit (ICU) Banner
Turbocharge your T2 MacBook Air 2020 (Intel)

CachyOS on MacBook Air 2020 (Intel)

Tests Docs License: MIT Platform

Field-tested scripts and configuration for installing and optimising CachyOS on the 2020 Intel MacBook Air (MacBookAir9,1) with Apple T2 chip. Full documentation is available at iceunit.com.


Hardware Compatibility

Component Status Notes
Wi-Fi (BCM4377b) Working brcmfmac — firmware extraction required
Bluetooth (BRCM4377) Working hci_bcm4377
Audio (T2) Working apple-bce + PipeWire
Keyboard / Trackpad Working Via apple-bce USB-over-PCIe
Graphics (Iris Plus G7) Working i915 hardware acceleration
Display Working Full native resolution
NVMe Working TRIM via discard=async
Sleep / Wake Mostly working Suspend fix service recommended
Webcam Partial May require apple-bce updates
Thunderbolt Limited Basic USB-C works
Touch ID Not supported T2 Secure Enclave — inaccessible from Linux

Quick Start

# Ensure prerequisites are installed
sudo pacman -S --needed go make git

git clone https://github.com/sebastienrousseau/cachyos-macbook-intel-2020.git
cd cachyos-macbook-intel-2020

# Run the interactive Iceunit (ICU) installer
sudo make install

The new installer features a beautiful, interactive CLI interface built with Go and Bubble Tea, automatically executing the post-installation optimization steps concurrently where possible.


Repository Structure

cachyos-macbook-intel-2020/
├── .github/                     # GitHub Actions workflows
├── config/                      # System configuration drop-ins
├── docs/                        # VitePress documentation site
├── installer/                   # Go-based interactive Iceunit installer
│   ├── main.go                  # TUI orchestrator source
│   ├── main_test.go             # Installer unit tests
│   ├── go.mod                   # Go module definition
│   └── installer_bin            # Compiled installer binary
├── scripts/                     # Core hardware automation scripts
│   ├── 00-setup-vault.sh        # Encrypted vault creation
│   ├── 00-system-init.sh        # Smart package synchronisation
│   ├── 01-thermal-setup.sh      # Fan & thermal control
│   ├── 02-wifi-firmware.sh      # Wi-Fi & Bluetooth firmware
│   ├── 03-optimise.sh           # Post-install optimisation
│   ├── 04-bootloader.sh         # Bootloader management
│   ├── 05-mount-vault.sh        # Unlock and mount vault
│   ├── 06-unmount-vault.sh      # Lock and unmount vault
│   ├── 07-install-apps.sh       # Standard application suite
│   └── 99-verify-install.sh     # System health audit
├── tests/                       # Unit and integration test suites
│   ├── *.bats                   # 144 unit tests (bats-core)
│   ├── Dockerfile.unit          # Unit test container
│   ├── Dockerfile.integration   # Integration test container
│   ├── setup-bats.sh            # BATS installation helper
│   ├── test_helper.bash         # Test framework & mocks
│   └── integration/             # Integration test scripts
├── workstation/                 # Workstation provisioning modules
│   ├── 00-ai-dev-workstation.sh # AI/LLM & Dev stack
│   ├── 10-gnome-productivity.sh # GNOME UI tweaks
│   ├── 20-devops-tools.sh       # K8s & Cloud-native tools
│   ├── 30-security-tools.sh     # Firewall & Secrets hardening
│   └── 40-dotfiles-link.sh      # Symbolic configuration links
├── bootstrap-dotfiles.sh        # Dotfiles bootstrap helper
├── install.sh                   # Unified Iceunit (ICU) installer entry point
├── Makefile                     # Task runner for install, verify, and test
├── README.md                    # Project documentation
├── LICENSE                      # MIT licence
├── CONTRIBUTING.md              # Contribution guidelines
├── SECURITY.md                  # Security policy
└── package.json                 # Documentation site dependencies

Scripts

Script Purpose Status Run As Docs
00-setup-vault.sh Create LUKS2 encrypted vault Optional make vault Reference
00-system-init.sh Smart package sync Mandatory sudo make init Reference
01-thermal-setup.sh Fix fan/thermal control Mandatory make thermal Reference
02-wifi-firmware.sh Manage Wi-Fi/BT firmware Mandatory make wifi Reference
03-optimise.sh System-wide optimisation Recommended make optimise Reference
04-bootloader.sh Limine & boot management Recommended make bootloader Reference
05-mount-vault.sh Unlock and mount vault Optional make mount Reference
06-unmount-vault.sh Lock and unmount vault Optional make unmount Reference
07-install-apps.sh Standard application suite Recommended make apps Reference
99-verify-install.sh System health audit Recommended make verify Reference

All scripts support DRY_RUN=1 to preview changes and --help for usage information.

Workstation Scripts

Script Purpose Status Run As Docs
00-ai-dev-workstation.sh AI/LLM & Dev Stack Optional sudo Reference
10-gnome-productivity.sh GNOME Speed & UI Tweaks Optional User Reference
20-devops-tools.sh K8s & Terraform Stack Optional sudo Reference
30-security-tools.sh Firewall & Secrets Optional sudo Reference
40-dotfiles-link.sh Symbolic Config Links Optional User Reference

Testing & Verification

make verify             # Run the Iceunit system health audit
make test-all           # Run all tests (Lint, BATS, Go, Docker)
make lint               # Run ShellCheck and Go vet/fmt
make test               # Run unit tests locally (requires bats-core)
make test-go            # Run Go unit tests for the installer

Documentation

The full guide is hosted at iceunit.com and covers:

  • Getting Started — hardware specs, compatibility status, introduction
  • Pre-Installation — T2 security, Wi-Fi firmware, bootable USB, partition layout
  • Installation — running the CachyOS installer, Limine bootloader setup
  • Post-Installation — thermal setup, system optimisation, encrypted vault
  • Reference — troubleshooting, FAQ
  • Scripts — detailed reference for all modules

Contributing

See CONTRIBUTING.md for script conventions, ShellCheck requirements, and the PR process.

Licence

MIT — configurations and scripts are based on field testing on a MacBook Air 2020 (MacBookAir9,1) running CachyOS with kernel 6.19.x.

THE ARCHITECT ᛫ Sebastien Rousseau
THE ENGINE ᛞ EUXIS ᛫ Enterprise Unified Execution Intelligence System

About

Step-by-step guide to installing and optimizing CachyOS on a 2020 Intel MacBook Air (MacBookAir9,1) with T2 chip support.

Topics

Resources

License

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Contributors