- 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
1.8 KiB
1.8 KiB
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:
powersavegovernor on battery,performanceon 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 savingi915.enable_rc6=7— max GPU power savingnoatime,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