- modules/t490.nix: TLP power management, CPU throttling (throttled), S3 sleep, remote Nix builders (cluster), fwupd, fprintd, fprintd, Syncthing, Tailscale, Intel VA-API, TrackPoint sensitivity, PipeWire defaults - flake.nix: add nixos-hardware input, import T490 module + nixos-hardware - docs/T490-HARDWARE.md: WiFi variants, graphics, audio, fingerprint, sleep guide - docs/T490-BATTERY.md: TLP config, threshold strategy, real-world battery numbers - docs/T490-OFFLOADING.md: local vs cluster split, remote builder setup - MIGRATION.md: add T490 post-install steps (fwupd, fprint, remote build key) - README.md: reflect new module and docs structure
56 lines
1.8 KiB
Markdown
56 lines
1.8 KiB
Markdown
# T490 Battery Life
|
|
|
|
## Hardware Baseline
|
|
|
|
- **50 Wh** internal battery (3-cell)
|
|
- Panel draws ~4-5W at typical brightness
|
|
- CPU TDP-up 25W, TDP-down 10W
|
|
|
|
## Real-World Estimates
|
|
|
|
| Scenario | Runtime |
|
|
|---|---|
|
|
| Idle, screen off | 10-12 hours |
|
|
| Light work (terminal, notes) | 7-8 hours |
|
|
| Dev work (editor, browser, kubectl) | 5-6 hours |
|
|
| Browsing (10+ tabs, video) | 4-5 hours |
|
|
| Compiling / heavy CPU | 1.5-2 hours |
|
|
|
|
## TLP Configuration
|
|
|
|
`modules/t490.nix` configures:
|
|
- `powersave` governor on battery, `performance` on AC
|
|
- Turbo disabled on battery
|
|
- CPU capped at 40% max frequency on battery (~1.7 GHz)
|
|
- WiFi power saving on battery
|
|
- PCIe runtime PM (auto on battery)
|
|
- Intel GPU frequency limits (300-600 MHz on battery)
|
|
|
|
### Battery Health Thresholds
|
|
|
|
Lenovo Battery Team recommendations — configured in `modules/t490.nix`:
|
|
- **Start charging** below 40%
|
|
- **Stop charging** at 80%
|
|
- Thresholds persist in firmware (survive reboots without TLP)
|
|
|
|
This dramatically extends battery lifespan. Don't leave plugged in at 100% for days.
|
|
|
|
## CPU Throttling Fix
|
|
|
|
Intel Whiskey Lake CPUs have a bug where BD PROCHOT fires spuriously, locking the CPU at 400 MHz. The nixos-hardware T490 module enables `services.throttled` (erpalma/throttled) — this is mandatory.
|
|
|
|
**Skip thermald** — it conflicts with throttled. `services.thermald.enable = false` is set in `modules/t490.nix`.
|
|
|
|
## Additional Tweaks
|
|
|
|
- `pcie_aspm=force` — force PCIe power saving
|
|
- `i915.enable_rc6=7` — max GPU power saving
|
|
- `noatime,nodiratime` — reduce disk writes
|
|
- **zram swap** at 50% of RAM — faster, saves NVMe writes
|
|
|
|
## Quick Wins (No Config Needed)
|
|
|
|
- Lower screen brightness (40-60% is plenty — biggest power draw)
|
|
- Disable Bluetooth when not in use
|
|
- Use S3 deep sleep (not s2idle)
|
|
- Close unused browser tabs
|