70 lines
2.1 KiB
Markdown
Executable File
70 lines
2.1 KiB
Markdown
Executable File
# MacBook Pro — NixOS / Asahi Linux (macbook-pro-nixos)
|
|
|
|
`systems/aarch64-linux/macbook-pro-nixos/`
|
|
|
|
## Hardware
|
|
|
|
- **Device**: Apple Silicon MacBook Pro (M-series)
|
|
- **OS**: NixOS via [Asahi Linux](https://asahilinux.org/) (`nixos-apple-silicon`)
|
|
- **Boot**: Asahi boot chain (not traditional EFI)
|
|
|
|
## Key Features
|
|
|
|
- Asahi Linux kernel with full Apple Silicon support (sound, GPU, etc.)
|
|
- GNOME as the primary desktop; Hyprland available but disabled
|
|
- x86_64 emulation via binfmt (enables running x86 binaries)
|
|
- Waydroid and libvirtd available (Waydroid disabled by default)
|
|
- Battery management — charge threshold set via `macsmc-battery`
|
|
- Omnissa Horizon client (custom package) for remote desktop
|
|
- Distrobox for containerised Linux environments
|
|
- iwd as the Wi-Fi backend
|
|
|
|
## x86_64 Emulation
|
|
|
|
```nix
|
|
nix.settings.extra-platforms = [ "x86_64-linux" ];
|
|
boot.binfmt.emulatedSystems = [ "x86_64-linux" ];
|
|
```
|
|
|
|
This allows building and running x86_64 packages on the ARM host.
|
|
|
|
## Asahi Hardware
|
|
|
|
The Asahi hardware module provides:
|
|
- Firmware loading from `./firmware/`
|
|
- Sound setup (`setupAsahiSound = true`)
|
|
- Apple-specific kernel patches and device drivers
|
|
|
|
Useful packages installed:
|
|
`asahi-bless`, `asahi-btsync`, `asahi-nvram`, `asahi-wifisync`, `apfs-fuse`, `apfsprogs`, `muvm`, `fex`
|
|
|
|
## Network
|
|
|
|
- **Hostname**: macbook-pro-nixos
|
|
- **Wi-Fi backend**: iwd (via NetworkManager)
|
|
- Firewall: extra rules for multicast (ports 1990, 2021)
|
|
|
|
## Battery Management
|
|
|
|
```nix
|
|
mjallen.hardware.battery = {
|
|
enable = true;
|
|
chargeLimitPath = "/sys/class/power_supply/macsmc-battery/charge_control_end_threshold";
|
|
};
|
|
```
|
|
|
|
## Configuration Files
|
|
|
|
| File | Purpose |
|
|
|---|---|
|
|
| `default.nix` | Main config — Asahi hardware, users, network |
|
|
| `boot.nix` | Asahi boot configuration |
|
|
| `filesystems.nix` | Disk layout |
|
|
| `hardware-configuration.nix` | Generated hardware config |
|
|
| `services.nix` | logind, GDM, GNOME, Flatpak, power settings |
|
|
| `firmware/` | Asahi firmware blobs |
|
|
|
|
## Secrets
|
|
|
|
Secrets are in `secrets/mac-secrets.yaml`, encrypted for: `matt`, `matt_pi5`, `desktop`, `pi5`, `admin`, `jallen-nas`, `matt_macbook-pro`, `macbook-pro`.
|