Compare commits

...

198 commits

Author SHA1 Message Date
Jörg Thalheim
e60c66bd0b replace tlp with power-profiles-daemon
TLP is often no longer the best choice since firmware provides power
profiles instead. That's why we are removing TLP as the default option.
We may want to bring back TLP to some old hardware if it makes sense
i.e. certain thinkpad modules.
2025-11-06 12:07:59 +01:00
Jörg Thalheim
e4c6ee69e7
Merge pull request #1666 from brianmcgillion/update-imx8
Some checks are pending
Test / nixfmt (push) Waiting to run
Test / tests (push) Blocked by required conditions
imx8-evk: fix cross-compiled builds
2025-11-05 19:41:19 +00:00
Brian McGillion
ae91411396
imx8-evk: fix cross-compiled builds
update just to fix the cross compilation.

Signed-off-by: Brian McGillion <bmg.avoin@gmail.com>
2025-11-05 16:35:23 +04:00
Jörg Thalheim
d48e8f0e16
Merge pull request #1665 from brianmcgillion/fix-system-property
Some checks are pending
Test / nixfmt (push) Waiting to run
Test / tests (push) Blocked by required conditions
system: fix the system setting for nixpkgs
2025-11-05 09:50:57 +00:00
Brian McGillion
eea20ba3b0
system: fix the system setting for nixpkgs
90cb787644

Signed-off-by: Brian McGillion <bmg.avoin@gmail.com>
2025-11-05 13:20:53 +04:00
Jörg Thalheim
2e85ae1b70
Merge pull request #1662 from NixOS/nxp-docs
Some checks are pending
Test / nixfmt (push) Waiting to run
Test / tests (push) Blocked by required conditions
nxp: document flashing better
2025-11-04 14:44:00 +00:00
Jörg Thalheim
8b72f74d80 nxp: add upstream docs 2025-11-04 15:27:28 +01:00
Jörg Thalheim
655a6da8a8 nxp: document flash procedure and expose images in flake 2025-11-04 13:35:34 +01:00
Jörg Thalheim
bffe23e699
Merge pull request #1650 from govindsi/feat/ucm-imx95-platform
Add support for UCM-iMX95 Evaluation Kit platform
2025-11-04 12:19:19 +00:00
Jörg Thalheim
5ad68c5dff tests: add all aarch64 NXP boards to aarch64Systems list 2025-11-04 12:57:21 +01:00
Jörg Thalheim
fad92f5f57 ucm-imx95: expand pkgs in callPackage for overrides 2025-11-04 12:57:21 +01:00
Jörg Thalheim
f2e49f279c optee-builder: use stdenv as opposed to gccStdenv
should be the same in our use case, but stdenv is more standard.
2025-11-04 12:34:11 +01:00
Jörg Thalheim
e598a4ca2f nxp: patch toolchain more consistent between different targets 2025-11-04 12:28:52 +01:00
Jörg Thalheim
2567706185
Merge pull request #1660 from afreakk/patch-1
Some checks are pending
Test / nixfmt (push) Waiting to run
Test / tests (push) Blocked by required conditions
'runCommandNoCC' has been renamed to/replaced by 'runCommand'
2025-11-03 14:13:01 +00:00
Jörg Thalheim
7467f155fc
Merge pull request #1555 from imxade/imxade-patch-1
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
[Inspiron 3442] Removed enableAllFirmware, BT doesn't rely on it
2025-10-31 17:53:41 +00:00
Rituraj
ddb27b7bba
Merge branch 'master' into imxade-patch-1 2025-10-31 21:51:27 +05:30
Hans
13cc234e37
'runCommandNoCC' has been renamed to/replaced by 'runCommand' 2025-10-31 09:54:49 +01:00
Jörg Thalheim
a2bc09823a ucm-imx95: various changes
- Move openssl to nativeBuildInputs in ATF build for proper cross-compilation
- Add explicit SILICON validation with clear error messages in firmware build
- Fix fragile wildcard patterns in firmware DDR file copying
- Replace mutable branch URLs with pinned commit hashes for patch stability
- Add U-Boot config merge step (make olddefconfig) after extra config
- Fix cross-compilation toolchain coherence (cpp in optee-os)
- Standardize license format (single value instead of single-element list)
- Update maintainer references with inline name/email format
- Fix typos and grammar in documentation and comments
2025-10-30 15:17:56 +01:00
Jörg Thalheim
86d9291cc3 ucm-imx95: use --replace-fail for substituteInPlace 2025-10-30 14:52:25 +01:00
Jörg Thalheim
8650454db6 ucm-imx95: fix firmware parameter collision and update imx-mkimage
Fixed parameter name collision in ucm-imx95-firmware.nix where the
'silicon' parameter conflicted with the nixpkgs silicon package, causing
the wrong AHAB container to be selected. Renamed to 'siliconRev'.

Updated imx-mkimage from lf-6.6.36 to lf-6.6.52-2.2.1 to match the
firmware version expectations (v202409 instead of v202311).
2025-10-30 14:48:44 +01:00
Govind Singh
11ea8b8477 ucm-imx95: firmware: fetch firmware files from NXP release
Fetch AHAB container, M7 firmware, and DDR PHY firmware binaries
from the NXP release packages. The derivation extracts the correct
LPDDR5 PHY images and selects the appropriate AHAB container for
A0 or B0 silicon revisions.

Signed-off-by: Govind Singh <govind.singh@tii.ae>
2025-10-30 14:29:53 +01:00
Govind Singh
a3576f0f3c chore: Add README for UCM-iMX95 SOM support
Added README.md for UCM-iMX95 SOM support.
2025-10-30 14:29:53 +01:00
Govind Singh
fe21eda733 Add support for UCM-iMX95 Evaluation Kit platform
The CompuLab UCM-iMX95 Evaluation Kit provides a platform for comprehensive
evaluation of the NXP i.MX95 application processor. This change adds support
in NixOS hardware to provide a template for customized i.MX95-based platforms.

UCM-iMX95: https://www.compulab.com/products/som-evaluation-kits/ucm-imx95-evaluation-kit/

Signed-off-by: Govind Singh <govind.singh@tii.ae>
2025-10-30 14:29:53 +01:00
Jörg Thalheim
43ffe9ac82
Merge pull request #1580 from NixOS/private-flake
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
Refactor tests to load flake inputs with flake-compat
2025-10-30 12:26:15 +00:00
Jörg Thalheim
3beac2438b nix-eval-job: disable eval-cache
in ci, there is no cache, so it's just overhead and prints warnings.
2025-10-30 13:12:15 +01:00
Jörg Thalheim
b09586b101 Remove insecure broadcom-sta driver from hardware profiles
The broadcom-sta driver package is marked as insecure due to CVE-2019-9501
and CVE-2019-9502 (heap buffer overflow vulnerabilities allowing remote code
execution). The driver is also unmaintained and incompatible with modern
Linux kernel security mitigations.

Removed broadcom_sta from extraModulePackages and the corresponding "wl" kernel module.

This resolves test failures where Nixpkgs refuses to evaluate configurations
containing this insecure package.
2025-10-30 13:04:01 +01:00
Jörg Thalheim
e07b1618c3
Merge pull request #1568 from nmouha/patch-1
framework/13-inch/intel-core-ultra-series1: revert #1358 (fix intel_vpu firmware error -2)
2025-10-30 11:46:27 +00:00
Jörg Thalheim
e214e292a6 also enable formatter on macOS 2025-10-30 12:39:05 +01:00
Jörg Thalheim
779c16f604 ci: show github errors nicer formatted 2025-10-30 12:39:05 +01:00
Jörg Thalheim
6ec1e82182 format nix code after nixfmt update 2025-10-30 12:39:05 +01:00
Jörg Thalheim
4bafcc2454 Refactor tests to load flake inputs with flake-compat
This makes `nix fmt` just works and we no longer have to override flake
inputs.
2025-10-30 12:36:49 +01:00
Jörg Thalheim
46ab381a8c
Merge branch 'master' into patch-1 2025-10-30 12:30:42 +01:00
Jörg Thalheim
ec7bf039ca
Merge pull request #1656 from r-vdp/rvdp/framework-kmod
framework/kmod: remove compatibility with Linux version < 6.10
2025-10-30 11:26:58 +00:00
r-vdp
e11482075d
framework/kmod: remove compatibility with Linux version < 6.10
Upstream changes broke the checks that we had.
By now we have 6.12 as the LTS, and 24.05 went out of support, so I
think we don't need to support this anymore.
Anyone still on such old kernel versions, can apply the patch manually
if needed.
2025-10-30 10:54:55 +01:00
Jörg Thalheim
2379bc4099
Merge pull request #1649 from govindsi/feat/imx93-evk-platform
Some checks are pending
Test / nixfmt (push) Waiting to run
Test / tests (push) Blocked by required conditions
Add support for i.MX93-EVK platform
2025-10-29 17:41:40 +00:00
Jörg Thalheim
688ee555de refactor(nxp): parameterize i.MX platform builders to reduce duplication
This refactoring reduces code duplication across i.MX93, i.MX8MP, and
i.MX8MQ platforms by extracting common build logic into parameterized
shared builders. This makes it easier to maintain and add new i.MX
platforms while ensuring consistency across all platforms.
2025-10-29 18:26:21 +01:00
Govind Singh
8b405e9c6d chore(fmt): apply nix formatting
Signed-off-by: Govind Singh <govind.singh@tii.ae>
2025-10-29 18:19:05 +01:00
Govind Singh
34b7229b95 Add support for i.MX93-EVK platform
The i.MX93 EVK provides a platform for comprehensive evaluation
of the i.MX93 application processors. This change adds support
in NixOS hardware to provide a template for customized i.MX93-based
platforms.

Signed-off-by: Govind Singh <govind.singh@tii.ae>
2025-10-29 18:19:05 +01:00
Jörg Thalheim
46f9982c9b
Merge pull request #1652 from MichaelVessia/patch-1
Fix Framework 12th Gen Intel Core link path
2025-10-29 15:19:51 +00:00
Jörg Thalheim
9c0ee5dfa1
Merge pull request #1651 from rti/framework-13-intel-core-enableRedistributableFirmware
Some checks are pending
Test / nixfmt (push) Waiting to run
Test / tests (push) Blocked by required conditions
fix: enableRedistributableFirmware on Framework 13 Intel Core Ultra Series1
2025-10-28 16:33:09 +00:00
Michael Vessia
7667e19678
Fix Framework 12th Gen Intel Core link path 2025-10-23 20:20:44 -04:00
rti
b27995044c fix: enable enableRedistributableFirmware on framework 13 intel core 2025-10-23 15:18:06 +00:00
kirillrdy
d6645c340e
Merge pull request #1629 from trueNAHO/codeowners-remove-truenaho-from-tuxedo-pulse-14-gen3
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
CODEOWNERS: remove trueNAHO from tuxedo-pulse-14-gen3
2025-10-20 11:03:08 +00:00
NAHO
c4fe135227 CODEOWNERS: remove trueNAHO from tuxedo-pulse-14-gen3
Remove trueNAHO from tuxedo-pulse-14-gen3 because I never owned this
hardware.

Fixes: caabc42556 ("feat: Update CODEOWNERS for Tuxedo Pulse Laptops")
2025-10-20 21:47:11 +11:00
Sandro
9ed85f8afe
Merge pull request #1633 from NixOS/pi4-rendering
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
raspberrypi/4: fix many option rendering
2025-10-10 14:30:35 +00:00
Sandro
c816590dca
Merge pull request #1631 from NixOS/pi3-keyboard
raspberry-pi/3: load usbhid and usb_storage
2025-10-10 13:51:30 +00:00
Sandro Jäckel
eb9e8e10ac
raspberrypi/4: fix many option rendering 2025-10-10 15:50:52 +02:00
Sandro
156fbb62a9
Merge pull request #1634 from MrSom3body-contrib/fix/asus-battery-threshold
asus/battery: fix battery threshold not being set after hibernation
2025-10-10 12:47:24 +00:00
Karun Sandhu
c52ea60901
asus/battery: fix battery threshold not being set after hibernation 2025-10-10 10:51:07 +02:00
Sandro
d232c6f9cc
Merge pull request #1549 from MrSom3body-contrib/add-asus-um6702
Some checks are pending
Test / nixfmt (push) Waiting to run
Test / tests (push) Blocked by required conditions
init: Asus Zenbook 17 Pro
2025-10-09 23:46:13 +00:00
Karun Sandhu
a8bbda8911
init: Asus Zenbook 17 Pro 2025-10-09 22:13:19 +02:00
Sandro Jäckel
d0955d227d
raspberry-pi/3: load usbhid and usb_storage 2025-10-07 22:08:20 +02:00
0x4A6F
3441b5242a
Merge pull request #1554 from fidgetingbits/missing-readme-entries
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
Add missing README entries and re-align columns
2025-10-04 12:58:59 +00:00
fidgetingbits
0257a0aa58
Add missing README entries and re-align columns 2025-10-01 17:10:20 +08:00
Jörg Thalheim
e087756cf4
Merge pull request #1615 from borja-rojo-ilvento/lenovo-thinkpad-p14s-intel-gen2
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
Lenovo thinkpad p14s intel gen2
2025-09-30 19:45:27 +00:00
Jörg Thalheim
a74f5ce8c6
Merge pull request #1621 from nukdokplex/msi/b550-tomahawk
msi/b550-tomahawk: init
2025-09-30 19:41:31 +00:00
Jörg Thalheim
dd4227bb1b
Merge pull request #1508 from florianvazelle/asus-rog-gl552vw
Add Asus ROG-GL552VW hardware
2025-09-30 19:40:23 +00:00
Jörg Thalheim
30bf4efeda Merge pull request #1597 from yvan-sraka/cf-lx3
panasonic: add Let's Note CF-LX3 configuration
2025-09-30 19:33:30 +00:00
Jörg Thalheim
081542ae22
Merge pull request #1608 from trueNAHO/tuxedo-pulse-15-gen-2-load-more-modules-and-defer-warning
tuxedo/pulse/15/gen2: load more modules and defer warning
2025-09-30 19:32:30 +00:00
Borja Rojo Ilvento
ba70d20716 Add Lenovo ThinkPad P14s Intel Gen 2 profile
Adds hardware profile for Lenovo ThinkPad P14s Intel Gen 2 with:
- Intel Tiger Lake CPU support
- NVIDIA Turing GPU with PRIME configuration
- Suspend-to-RAM S3 sleep state configuration
2025-09-30 21:28:37 +02:00
nukdokplex
28c41d0a5d
msi/b550-tomahawk: init 2025-10-01 00:25:19 +05:00
Jörg Thalheim
c8b6a49ebf
Merge pull request #1618 from kuwii/linglong-novastudio
linglong/nova-studio: init
2025-09-30 19:22:27 +00:00
Jörg Thalheim
895e314e4b
Merge pull request #1620 from makefu/master
lenovo/t14-intel-gen1(-nvidia): init
2025-09-30 19:21:37 +00:00
Jörg Thalheim
0582a93516
Merge pull request #1622 from panchoh/feat/init-apple-macbook-air-5
apple/macbook-air/5: init
2025-09-30 19:20:40 +00:00
Jörg Thalheim
1243f78ca9
Merge pull request #1623 from leifhelm/mnt-reform-classic-rk3588
mnt/reform: init
2025-09-30 19:20:21 +00:00
Jakob Leifhelm
5e57f28e6a
mnt/reform: init 2025-09-30 00:08:11 +02:00
pancho horrillo
095a445675
apple/macbook-air/5: init 2025-09-27 07:11:36 +02:00
kuwii
0e9dc7cf61 linglong/nova-studio: remove opencl config and move it to readme 2025-09-25 22:42:51 +08:00
Yvan Sraka
27581273c2
panasonic: add Let's Note CF-LX3 configuration 2025-09-24 10:31:39 +02:00
Sandro
170ff93c86
Merge pull request #1614 from codingCoffee/x1-carbon-12
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
feat: kernel params for x1 carbon
2025-09-23 21:45:26 +00:00
makefu
76a314765d
lenovo/t14-intel-gen1(-nvidia): init
init configuration for t14 intel gen1 with and without nvidia dedicated graphics card

ref: https://thinkwiki.de/T14_Gen_1_(Intel)
2025-09-23 16:07:10 +02:00
kuwii
4ba28b48c8 linglong/nova-studio: init 2025-09-21 11:54:04 +08:00
Ameya Shenoy
3caaf86f9d
feat: kernel params for x1 carbon
Signed-off-by: Ameya Shenoy <shenoy.ameya@gmail.com>
2025-09-17 01:19:01 +05:30
Jörg Thalheim
67a709cfe5
Merge pull request #1611 from Enzime/push-wroqwyuruzvr
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
MacBookAir6,x: fix wireless
2025-09-15 13:35:27 +00:00
Michael Hoang
0632a5e10f MacBookAir6,x: fix wireless 2025-09-15 15:19:23 +02:00
Sandro
4c38a024fa
Merge pull request #1610 from NixOS/SuperSandro2000-patch-1
Some checks are pending
Test / nixfmt (push) Waiting to run
Test / tests (push) Blocked by required conditions
Fix fydetab duo eval
2025-09-14 23:03:45 +00:00
Sandro
82e5fcb58c
Fix fydetab duo eval 2025-09-15 00:48:02 +02:00
0x4A6F
f89c620d3d
Merge pull request #1609 from NixOS/intel-compute-runtime-legacy
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
common/gpu: add and use option to choose intel-compute-runtime variant
2025-09-13 14:55:51 +00:00
Sandro Jäckel
e049c10c3e
treewide: set intel cpu variant to legacy where newer versions are not supported
According to https://github.com/intel/compute-runtime#legacy-platforms
2025-09-12 00:45:01 +02:00
Sandro Jäckel
4100cffdbe
common/gpu: add option to choose intel-compute-runtime variant 2025-09-12 00:45:00 +02:00
Sandro Jäckel
a98f1a2b75
Drop some unused inputs 2025-09-11 23:59:28 +02:00
Sandro Jäckel
536ac3ab4b
common/cpu/intel/comet-lake: drop gpu option
It is already set for the gpu
2025-09-11 23:59:14 +02:00
NAHO
40dffd02e3
tuxedo/pulse/15/gen2: defer amdgpu secure display warning to Stage 2
Defer the amdgpu secure display warning from Stage 1 to Stage 2, despite
the initial decision [1] of reverting commit dd18dc7714
("fix(tuxedo/pulse/15/gen2): prevent 'Secure display: Generic Failure'
warning") with commit 80d98a7d55 ("feat(tuxedo/pulse/15/gen2): use
default 'hardware.amdgpu.loadInInitrd'").

Since this noisy warning is an inherit property of this hardware,
deferring it is the desired behavior.

[1]: https://github.com/NixOS/nixos-hardware/pull/755#discussion_r1359669448
2025-09-07 21:43:50 +00:00
NAHO
0c55f0f776
tuxedo/pulse/15/gen2: load more internal modules 2025-09-07 18:18:27 +02:00
0x4A6F
11b2a10c7b
Merge pull request #1605 from RossComputerGuy/fix/fyde
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
fydetab/duo: fix hardware.firmware being applied
2025-09-05 20:15:52 +00:00
Tristan Ross
7e40faf569
fydetab/duo: enable hid sensor hub kernel module 2025-09-05 11:49:13 -07:00
Tristan Ross
295e0f92ff
fydetab/duo: clarify graphics support 2025-09-05 11:22:25 -07:00
Tristan Ross
410a17733a
fydetab/duo: fix himax firmware source hash 2025-09-05 11:20:47 -07:00
Tristan Ross
a6cc50d994
fydetab/duo: fix hardware.firmware being applied 2025-09-05 11:16:21 -07:00
0x4A6F
af3dd1cb20
Merge pull request #1604 from RossComputerGuy/fix/fyde
fydetab/duo: fix typo with enable option
2025-09-05 17:54:20 +00:00
Tristan Ross
e9db02252a
fydetab/duo: fix typo with enable option 2025-09-05 08:31:44 -07:00
0x4A6F
7e56e39db4
Merge pull request #1583 from RossComputerGuy/feat/fydetab-duo
Add Fydetab Duo
2025-09-05 14:17:17 +00:00
Tristan Ross
d9b0f10475
Add Fydetab Duo 2025-09-05 06:55:19 -07:00
Jörg Thalheim
ba6fab2976
Merge pull request #1530 from Gigahawk/tc358743-4-lane
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
raspberry-pi/4: support 4lane csi
2025-09-03 18:56:35 +00:00
Jörg Thalheim
da1b459c17
Merge pull request #1541 from cassis163/add-hp-probook-460-g11
Add HP ProBook 460 G11
2025-09-03 18:52:03 +00:00
Jörg Thalheim
003318603f
Merge branch 'master' into tc358743-4-lane 2025-09-03 20:40:56 +02:00
Jörg Thalheim
ad6d270a9a
Merge pull request #1535 from fidgetingbits/dell-precision-5570
Added Dell Precision 5570
2025-09-03 18:40:07 +00:00
Jörg Thalheim
c362a52136
Merge pull request #1592 from FrameworkComputer/framework16-ai300
Add Framework Laptop 16 AMD AI 300 Series
2025-09-03 18:38:21 +00:00
caangeenbrug-fvt
4091b501aa Add HP ProBook 460 G11 to hardware table in /README.md 2025-09-03 20:36:25 +02:00
cassis163
4a39585546 Add HP ProBook 460 G11 2025-09-03 20:36:25 +02:00
Jörg Thalheim
71841ee366
Merge pull request #1599 from gngram/imx8mp_sw_upgrade
bsp update for imx8mp-evk
2025-09-03 18:34:16 +00:00
Jörg Thalheim
7d524775bf
Merge pull request #1601 from RamReso/fix-flake-modules-in-readme
fix missmatch between README.md Flake Module and modules defined in flake.nix
2025-09-03 18:33:51 +00:00
Ganga Ram
2dbfb943a0 bsp update for imx8mp-evk
Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
2025-09-03 17:17:14 +04:00
Noah Markert
2f7f1dc6ec
renamed flake modules in README.md to match them in flake.nix; add missing nixos modules to flake.nix; 2025-09-03 11:05:40 +02:00
Jörg Thalheim
47eb4856cf
Merge pull request #1567 from matteobongio/system76/gaze18
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
System76/gaze18: minor fixes
2025-09-01 18:14:48 +00:00
Jörg Thalheim
b403970fdf
Merge pull request #1550 from Ace-h121/master
Adding Power Management on Asus fa507nv
2025-09-01 18:03:55 +00:00
Jörg Thalheim
81129e6f19
Merge pull request #1556 from omeyenburg/fix-typo-macbookpro
apple/macbook-pro: Correct typos in 12-1 and 8-1 READMEs
2025-09-01 18:02:18 +00:00
Jörg Thalheim
72d5560fb7
Merge pull request #1557 from suzana2314/lenovo-legion-15ach6h
Lenovo Legion 5 15ach6h add option for hybrid only or nvidia only modules
2025-09-01 18:01:47 +00:00
Jörg Thalheim
321cb2173b
Merge pull request #1558 from matthiasdotsh/ms-surface/update-kernel-6.15.9
surface: linux 6.15.6 -> 6.15.9
2025-09-01 18:01:30 +00:00
Jörg Thalheim
ea1e368e75
Merge pull request #1559 from moduon/rpi-tmp-crb
fix(raspberry-pi-4): enable building kernel
2025-09-01 18:01:20 +00:00
Jörg Thalheim
6f97793214
Merge pull request #1561 from Flameopathic/14ILL10-fix
lenovo/yoga/7/14ILL10: update kernel version requirement
2025-09-01 18:01:00 +00:00
Jörg Thalheim
6b7941884f
Merge pull request #1562 from hatch01/fix-tc358743
fix: tc358743 dt overlay
2025-09-01 18:00:28 +00:00
Matteo Bongiovanni
f4a07aa370 system76-gaze18: add laptop and ssd imports 2025-09-01 19:59:56 +02:00
Matteo Bongiovanni
7fe67c44d1 system76-gaze18: use xserver.videoDrivers instead of initrd.kernelModules
system76-gaze18: use xserver.videoDrivers instead of initrd.kernelModules
2025-09-01 19:59:56 +02:00
Matteo Bongiovanni
c69cdbed34 system76-gaze18: add CPU module 2025-09-01 19:59:56 +02:00
Jörg Thalheim
31b333f6e7
Merge pull request #1585 from 497a/master
Revert "apple: add hid_apple.iso_layout=0 kernel param"
2025-09-01 17:57:58 +00:00
Jörg Thalheim
7c75c09ab6
Merge pull request #1569 from lynimbus/main
feat: add MECHREVO Yilong15Pro(GM5HG0A)
2025-09-01 17:52:17 +00:00
Jörg Thalheim
c5231106d4
Merge pull request #1570 from panchoh/fix/out-of-sync-flake-lock
Update flake.lock, dropping unused `nixpkgs` input
2025-09-01 17:51:52 +00:00
Jörg Thalheim
bfce4a25eb
Merge pull request #1571 from b-eyselein/master
Add Lenovo Thinkpad P16s AMD Gen 4
2025-09-01 17:51:39 +00:00
Jörg Thalheim
232f44c2d5
Merge pull request #1572 from bashfulrobot/master
Add ThinkPad T14 Intel Gen 6 support
2025-09-01 17:51:17 +00:00
Jörg Thalheim
c38b907bd4
Merge pull request #1576 from Gigahawk/tc358743-media-controller
raspberry-pi/4: support enabling/disabling media-controller api on tc358743
2025-09-01 17:50:43 +00:00
Jörg Thalheim
65b725a43e
Merge pull request #1578 from rumlenordstroem/macbookpro11,4
Added macbook pro 11,4 config
2025-09-01 17:50:29 +00:00
Jörg Thalheim
fe8baa10f9
Merge pull request #1582 from NixOS/dependabot/github_actions/actions/checkout-5
build(deps): bump actions/checkout from 4 to 5
2025-09-01 17:49:55 +00:00
Jörg Thalheim
74dc6125d0
Merge pull request #1584 from ktechmidas/G533Q
Added g533q config
2025-09-01 17:49:32 +00:00
Hannah Izzie Gesser
e903fd796d Revert "apple: add hid_apple.iso_layout=0 kernel param"
This reverts commit e228c7827b.
2025-09-01 19:42:22 +02:00
Jörg Thalheim
682c8615f1
Merge pull request #1593 from janTatesa/master
fix: add missing import of ideapad 16iah8
2025-09-01 17:41:03 +00:00
Jörg Thalheim
f08ec094d3
Merge pull request #1594 from mkorje/master
apple/t2: kernel 6.15 -> 6.16; sync patches
2025-09-01 17:40:42 +00:00
Jörg Thalheim
21030ae98d
Merge pull request #1595 from spacifici/dell_precision_7520_stable_nvidia_driver
dell/precision/7520: use stable nvidia driver (not legacy)
2025-09-01 17:40:31 +00:00
Jörg Thalheim
3e10646c9b
Merge pull request #1598 from KaiStarkk/patch-1
microsoft/surface: update wireplumber docs
2025-09-01 17:32:11 +00:00
KaiStarkk
a57aded40e
Update README.md - wireplumber example issue 2025-09-02 01:19:01 +10:00
mkorje
f3444245a7
apple/t2: sync stable patches (6.12.43 -> 6.12.44) 2025-09-01 21:05:51 +10:00
mkorje
9691e6ee8a
apple/t2: sync stable patches 2025-08-30 00:52:57 +10:00
Stefano Pacifici
bfda6f34d3 dell/precision/7520: use stable nvidia driver (not legacy) 2025-08-29 14:09:23 +02:00
Mads Rumle Nordstrøm
59e2d82cc2 ran formatter for mbp11,4 2025-08-29 11:16:31 +02:00
lantianx
6439a46c7c feat: add MECHREVO Yilong15Pro(GM5HG0A) 2025-08-28 00:44:54 +08:00
Tatesa Uradnik
cfb36e4feb
fix: add missing import of ideapad 16iah8 2025-08-27 13:05:58 +02:00
Jörg Thalheim
a65b650d69
Merge pull request #1590 from FrameworkComputer/fw16-nomicjack
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
framework 16: Remove headset quirk
2025-08-26 21:50:47 +00:00
Jörg Thalheim
048c7bbca5
Merge pull request #1591 from FrameworkComputer/framework-fwupd
framework: Enable fwupd by default
2025-08-26 21:49:20 +00:00
Daniel Schaefer
3a4da5f8c1 framework: Enable fwupd by default
Users should keep their firmware (not just BIOS) up to date.
Framework 13 Intel 11-13th Gen have some components that can't be
updated with fwupd, so some BIOS versions are better to be installed
through the EFI shell or Windows.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
2025-08-27 01:11:13 +08:00
Daniel Schaefer
cd3d24b038 Add Framework Laptop 16 AMD AI 300 Series
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2025-08-27 00:50:53 +08:00
Daniel Schaefer
c13241f1c0 framework 16: Remove headset quirk
Framework 16 does not have a built-in headphone jack, this is not
needed.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
2025-08-27 00:30:49 +08:00
Ace Hathaway
cc896f1f7e
Merge branch 'NixOS:master' into master 2025-08-22 16:41:52 -04:00
Aaron Adams
8137ca755e
Merge branch 'master' into dell-precision-5570 2025-08-21 08:55:32 +08:00
fidgetingbits
ebd8f57cd9
Fix probe id and switch from sync to offload 2025-08-21 08:52:27 +08:00
ktechmidas
5e741b56dc added supporting files 2025-08-20 13:50:51 +03:00
ktechmidas
17113fc124 Added g533q 2025-08-20 13:42:37 +03:00
bashfulrobot
0413405b45
feat: add ThinkPad T14 Intel Gen 6 hardware support
Add complete hardware profile for Lenovo ThinkPad T14 Intel Gen 6 with:
- Lunar Lake CPU architecture support with modern kernel requirements
- Intel Arc graphics integration
- Kernel parameters for backlight and touchpad optimization
- Fingerprint reader support with comprehensive PAM configuration guidance
- Disabled throttled service for modern Intel power management
- Updated flake.nix and README.md with new module entries

Includes detailed documentation for fingerprint authentication setup
with warnings about potential login issues and proper PAM configuration
in host systems. Follows CONTRIBUTING.md guidelines for profile structure.
2025-08-19 10:29:33 -07:00
Cassie Cheung
e3e3717d85
apple/t2: kernel 6.15 -> 6.16; sync patches 2025-08-19 20:39:53 +08:00
Mads Rumle Nordstrøm
2d512d0f4e removed s2idle for macbookpro11,4 as default 2025-08-18 13:14:33 +02:00
dependabot[bot]
6287c9e15f
build(deps): bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 03:34:00 +00:00
Jörg Thalheim
3dac8a8725
Merge pull request #1579 from mjschwenne/fix-surface-kernel
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
Fix Typo Preventing Microsoft Surface Kernels from Building
2025-08-16 07:44:41 +00:00
Matt Schwennesen
c006c5a59b formatting 2025-08-15 23:00:53 -05:00
Matt Schwennesen
7dd36b62fc fix typo casuing error 2025-08-15 18:22:42 -05:00
Mads Rumle Nordstrøm
292aeb6fd6 added macbook pro 11,4 config 2025-08-15 13:16:50 +02:00
Jasper Chan
c4af46bb6a raspberry-pi/4: support enabling/disabling media-controller api on tc358743 2025-08-13 21:48:22 -07:00
Jairo Llopis
79649965c5
fix(raspberry-pi-4): enable building kernel
Fixes https://github.com/NixOS/nixos-hardware/issues/858
2025-08-11 08:12:40 +02:00
eymeric
680761f019
fix: tc358743 dt overlay 2025-08-08 22:41:18 +02:00
Björn Eyselein
139a6586ed Add Lenovo Thinkpad P16s AMD Gen 4
Signed-off-by: Björn Eyselein <eyselein@infosim.net>
2025-08-08 09:51:11 +02:00
pancho horrillo
aaecdd8d3b
Update flake.lock, dropping unused nixpkgs input
On a7600cef40 all the
inputs on `flake.nix` were moved to `tests/flake.nix`, but `flake.lock`
was not updated correctly, and a reference to `nixpkgs` still remains,
producing this error upon evaluation when used as an input in my flake:

    evaluating file '<nix/derivation-internal.nix>'copying "/nix/store/xjzjf1f6nyg6yqxb6v5awf9hs14606yp-source" to the store...evaluating file '/nix/store/xjzjf1f6nyg6yqxb6v5awf9hs14606yp-source/flake.nix'evaluating file '/nix/store/xjzjf1f6nyg6yqxb6v5awf9hs14606yp-source/flake.nix'warning: updating lock file '"/nix/store/xjzjf1f6nyg6yqxb6v5awf9hs14606yp-source/flake.lock"':• Removed input 'nixpkgs'error:… while updating the lock file of flake 'path:/nix/store/xjzjf1f6nyg6yqxb6v5awf9hs14606yp-source?lastModified=0&narHash=sha256-dz303vGuzWjzOPOaYkS9xSW%2BB93PSAJxvBd6CambXVA%3D'error: opening file '/nix/store/xjzjf1f6nyg6yqxb6v5awf9hs14606yp-source/flake.lock': Read-only file system

I’ve thus updated `flake.lock` with the standard procedure:

```console
❯ nix flake lock --verbose
warning: updating lock file '"/home/pancho/sandbox/NixOS/nixos-hardware/flake.lock"':
• Removed input 'nixpkgs'
```
2025-08-08 07:17:15 +02:00
0x4A6F
26ed7a0d4b
Merge pull request #1552 from FrameworkComputer/framework-desktop
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
framework: Add Framework Desktop
2025-08-07 10:54:08 +00:00
0x4A6F
cd88704818
Merge pull request #1551 from FrameworkComputer/framework12-tabletmode
framework/12-inch: Fix tabletmode
2025-08-07 10:53:29 +00:00
Daniel Schaefer
df02f4f16a framework/12-inch: Fix tabletmode on some kernels
NixOS kernels don't have pinctrl_tigerlake built-in, we need to make
sure it loads before soc_button_array. Adding it to the initrd ensures
that.

Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2025-08-07 18:09:04 +08:00
Daniel Schaefer
659b41d59c framework/desktop: Add minimum kernel version
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2025-08-07 18:07:43 +08:00
Daniel Schaefer
9157552825 framework: Add Framework Desktop
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2025-08-07 18:07:18 +08:00
Nicky Mouha
8972e6538b
framework/13-inch/intel-core-ultra-series1: revert #1358 (fix intel_vpu firmware error -2) 2025-08-06 13:04:39 -04:00
0x4A6F
9368056b73
Merge pull request #1564 from 0x4A6F/master-framework-13-amd-ai-300-series-kernel-fixup
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
framework-amd-ai-300-series: mkDefault boot.kernelPackages
2025-08-04 14:07:56 +00:00
0x4A6F
547c96d797
framework-amd-ai-300-series: mkDefault boot.kernelPackages 2025-08-04 12:42:15 +02:00
Jörg Thalheim
a872d98539
Merge pull request #1563 from 0x4A6F/master-framework-13-amd-ai-300-series-kernel
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
framework-amd-ai-300-series: bump kernel to latest for suspend support
2025-08-03 14:03:14 +00:00
0x4A6F
d99ca4e5f4
framework-amd-ai-300-series: bump kernel to latest for suspend support 2025-08-03 14:07:00 +02:00
Flameopathic
26c9d90663 lenovo/yoga/7/14ILL10: update kernel version requirement 2025-08-02 22:53:06 -04:00
matthiasdotsh
f30fc54b0e surface: linux 6.15.6 -> 6.15.9 2025-08-01 12:45:10 +02:00
florian
c92f8fc536
style: apply formatter 2025-07-31 15:42:08 +02:00
suzana2314
28fc41508c
lenovo-legion-15ach6h: added hybrid and nvidia configurations 2025-07-28 18:51:21 +01:00
omeyemburg
85070738e9
macbook-pro/8-1: remove redundant line in readme 2025-07-27 11:50:21 +02:00
omeyemburg
1f7ed6211f
macbook-pro/12-1: remove redundant bracket in readme 2025-07-27 11:49:59 +02:00
Rituraj
37d0301b3c
Removed enableAllFirmware, BT doesn't rely on it 2025-07-26 18:13:24 +05:30
Ace-h121
c46bd952e9 Forgot to add lib.mkDefault 2025-07-23 23:13:43 -04:00
Ace-h121
25fdfb36a7 Adding Power Management on Asus fa507nv
I personally own this laptop, I am running gnome and on sleep the
graphics always corrupt without fail, this setting has been the only way
to correct it.
2025-07-23 23:07:00 -04:00
Aaron Adams
19b899ead6
Merge branch 'master' into dell-precision-5570 2025-07-24 10:33:29 +08:00
fidgetingbits
b90855f92a
Added Dell Precision 5570 2025-07-24 10:31:11 +08:00
Jörg Thalheim
cc66fddc6c
Merge pull request #1525 from shinishiho/patch-1
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
asus: fix charge-upto script
2025-07-21 18:32:21 +00:00
Jörg Thalheim
e792f2f4ac
Merge pull request #1526 from pokon548/fix-flip_done-timeout
Add flip_done timeout workaround for 14IMH9
2025-07-21 18:31:26 +00:00
Jörg Thalheim
5efc6e9418
Merge pull request #1537 from LucasFA/init-nuc5i5RYB
init: NUC 5i5RYB
2025-07-21 18:13:43 +00:00
Jörg Thalheim
2b75e96d0d
Merge pull request #1538 from matthiasdotsh/ms-surface/update-kernel-6.15.6
surface: linux 6.15.3 -> 6.15.6
2025-07-21 18:13:16 +00:00
0x4A6F
d1bfa8f6cc
Merge pull request #1527 from anna-oake/patch-1
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
framework-intel-core-ultra-series1: preset device name for audio enhancement
2025-07-16 11:50:37 +00:00
Anna Oake
95ee2804d7 framework-intel-core-ultra-series1: preset device name for audio enhancement 2025-07-15 13:31:45 +02:00
matthiasdotsh
8ea54c025e surface: linux 6.15.3 -> 6.15.6 2025-07-14 17:09:26 +02:00
LucasFA
9410081079 init: NUC 5i5RYB 2025-07-13 12:47:18 +01:00
Jörg Thalheim
7ced9122cf
Merge pull request #1532 from NixOS/add-missing-pr
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
added inspiron 3442 to the flake
2025-07-09 08:16:00 +00:00
Rituraj
323366c51c added inspiron 3442 to the flake 2025-07-09 09:56:25 +02:00
Jasper Chan
6015af43f3 raspberry-pi/4: support 4lane csi 2025-07-08 12:26:38 -07:00
Bu Kun
41f2cad3f9
Add flip_done timeout workaround for 14IMH9 2025-07-06 19:21:15 +08:00
Đỗ Quang Minh
1828627b08
asus: fix charge-upto script 2025-07-04 06:48:03 +07:00
Jörg Thalheim
497ae1357f
Merge pull request #1516 from RossComputerGuy/feat/system76-thelio-mega
Some checks failed
Test / nixfmt (push) Has been cancelled
Test / tests (push) Has been cancelled
Add System76 Thelio Mega module
2025-07-02 05:05:11 +00:00
Jörg Thalheim
d2a1b158ac
Merge pull request #1522 from Rishabh5321/master
xiaomi/redmibook/15-pro-2021: fix declaration of device.
2025-07-02 05:04:43 +00:00
Tristan Ross
3b622ae6e6
Add System76 Thelio Mega module 2025-07-01 21:13:30 -07:00
Rishabh
a724614b86 xiaomi/redmibook/15-pro-2021: fix flake.nix 2025-07-02 07:52:52 +05:30
florianvazelle
66e88bdcaa asus/rog-gl552vw: init 2025-07-01 22:15:31 +02:00
182 changed files with 14941 additions and 1430 deletions

View file

@ -9,13 +9,13 @@ jobs:
nixfmt: nixfmt:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- uses: cachix/install-nix-action@v31 - uses: cachix/install-nix-action@v31
- run: cd tests && nix fmt .. -- --fail-on-change - run: nix build .#checks.x86_64-linux.formatting
tests: tests:
needs: nixfmt needs: nixfmt
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- uses: cachix/install-nix-action@v31 - uses: cachix/install-nix-action@v31
- run: nix run ./tests#run . - run: nix run .#run-tests

View file

@ -11,4 +11,4 @@ purism/librem/13v3 @yegortimoshenko
system76/darp6 @khumba system76/darp6 @khumba
framework @emiller88 framework @emiller88
tuxedo/pulse/15/gen2 @trueNAHO tuxedo/pulse/15/gen2 @trueNAHO
tuxedo/pulse/14/gen3 @gabyx @britter @trueNAHO tuxedo/pulse/14/gen3 @gabyx @britter

View file

@ -14,8 +14,9 @@ For example:
```nix ```nix
{ lib }: { { lib }: {
# Using mkDefault, because the user might want to disable tlp # Using mkDefault, because the user might want to disable power-profiles-daemon
services.tlp.enable = lib.mkDefault true; services.power-profiles-daemon.enable = lib.mkDefault true;
# No need to use mkDefault, because the setting will merge with the user's setting # No need to use mkDefault, because the setting will merge with the user's setting
boot.kernelModules = [ "tmp_smapi" ]; boot.kernelModules = [ "tmp_smapi" ];
} }
@ -42,7 +43,7 @@ Link the profile in the table in README.md and in flake.nix.
## 3. Testing ## 3. Testing
Run `nix run ./tests#run .` to evaluate all hardware profiles. Run `nix run .#run-tests` to evaluate all hardware profiles.
Because profiles can only be tested with the appropriate hardware, quality Because profiles can only be tested with the appropriate hardware, quality
assurance is up to *you*. assurance is up to *you*.

692
README.md
View file

@ -84,335 +84,365 @@ All contributors and users are welcome to join!
See code for all available configurations. See code for all available configurations.
| Model | Path | Flake Module | | Model | Path | Flake Module |
| --------------------------------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------- | | --------------------------------------------------------------------------------- | ------------------------------------------------------- | -------------------------------------- |
| [Acer Aspire 4810T](acer/aspire/4810t) | `<nixos-hardware/acer/aspire/4810t>` | `acer-aspire-4810t` | | [Acer Aspire 4810T](acer/aspire/4810t) | `<nixos-hardware/acer/aspire/4810t>` | `acer-aspire-4810t` |
| [Airis N990](airis/n990) | `<nixos-hardware/airis/n990>` | `airis-n990` | | [Airis N990](airis/n990) | `<nixos-hardware/airis/n990>` | `airis-n990` |
| [Apple iMac 14.2](apple/imac/14-2) | `<nixos-hardware/apple/imac/14-2>` | `apple-imac-14-2` | | [Apple iMac 14.2](apple/imac/14-2) | `<nixos-hardware/apple/imac/14-2>` | `apple-imac-14-2` |
| [Apple iMac 18.2](apple/imac/18-2) | `<nixos-hardware/apple/imac/18-2>` | `apple-imac-18-2` | | [Apple iMac 18.2](apple/imac/18-2) | `<nixos-hardware/apple/imac/18-2>` | `apple-imac-18-2` |
| [Apple MacBook Air 3,X](apple/macbook-air/3) | `<nixos-hardware/apple/macbook-air/3>` | `apple-macbook-air-3` | | [Apple MacBook Air 3,X](apple/macbook-air/3) | `<nixos-hardware/apple/macbook-air/3>` | `apple-macbook-air-3` |
| [Apple MacBook Air 4,X](apple/macbook-air/4) | `<nixos-hardware/apple/macbook-air/4>` | `apple-macbook-air-4` | | [Apple MacBook Air 4,X](apple/macbook-air/4) | `<nixos-hardware/apple/macbook-air/4>` | `apple-macbook-air-4` |
| [Apple MacBook Air 6,X](apple/macbook-air/6) | `<nixos-hardware/apple/macbook-air/6>` | `apple-macbook-air-6` | | [Apple MacBook Air 5,X](apple/macbook-air/5) | `<nixos-hardware/apple/macbook-air/5>` | `apple-macbook-air-5` |
| [Apple MacBook Air 7,X](apple/macbook-air/7) | `<nixos-hardware/apple/macbook-air/7>` | `apple-macbook-air-7` | | [Apple MacBook Air 6,X](apple/macbook-air/6) | `<nixos-hardware/apple/macbook-air/6>` | `apple-macbook-air-6` |
| [Apple MacBook Pro 8,1](apple/macbook-pro/8-1) | `<nixos-hardware/apple/macbook-pro/8-1>` | `apple-macbook-pro-8-1` | | [Apple MacBook Air 7,X](apple/macbook-air/7) | `<nixos-hardware/apple/macbook-air/7>` | `apple-macbook-air-7` |
| [Apple MacBook Pro 10,1](apple/macbook-pro/10-1) | `<nixos-hardware/apple/macbook-pro/10-1>` | `apple-macbook-pro-10-1` | | [Apple MacBook Pro 8,1](apple/macbook-pro/8-1) | `<nixos-hardware/apple/macbook-pro/8-1>` | `apple-macbook-pro-8-1` |
| [Apple MacBook Pro 11,1](apple/macbook-pro/11-1) | `<nixos-hardware/apple/macbook-pro/11-1>` | `apple-macbook-pro-11-1` | | [Apple MacBook Pro 10,1](apple/macbook-pro/10-1) | `<nixos-hardware/apple/macbook-pro/10-1>` | `apple-macbook-pro-10-1` |
| [Apple MacBook Pro 11,5](apple/macbook-pro/11-5) | `<nixos-hardware/apple/macbook-pro/11-5>` | `apple-macbook-pro-11-5` | | [Apple MacBook Pro 11,1](apple/macbook-pro/11-1) | `<nixos-hardware/apple/macbook-pro/11-1>` | `apple-macbook-pro-11-1` |
| [Apple MacBook Pro 12,1](apple/macbook-pro/12-1) | `<nixos-hardware/apple/macbook-pro/12-1>` | `apple-macbook-pro-12-1` | | [Apple MacBook Pro 11,4](apple/macbook-pro/11-4) | `<nixos-hardware/apple/macbook-pro/11-4>` | `apple-macbook-pro-11-4` |
| [Apple MacBook Pro 14,1](apple/macbook-pro/14-1) | `<nixos-hardware/apple/macbook-pro/14-1>` | `apple-macbook-pro-14-1` | | [Apple MacBook Pro 11,5](apple/macbook-pro/11-5) | `<nixos-hardware/apple/macbook-pro/11-5>` | `apple-macbook-pro-11-5` |
| [Apple MacMini (2010, Intel, Nvidia)](apple/macmini/4) | `<nixos-hardware/apple/macmini/4>` | `apple-macmini-4-1` | | [Apple MacBook Pro 12,1](apple/macbook-pro/12-1) | `<nixos-hardware/apple/macbook-pro/12-1>` | `apple-macbook-pro-12-1` |
| [Apple Macs with a T2 Chip](apple/t2) | `<nixos-hardware/apple/t2>` | `apple-t2` | | [Apple MacBook Pro 14,1](apple/macbook-pro/14-1) | `<nixos-hardware/apple/macbook-pro/14-1>` | `apple-macbook-pro-14-1` |
| [Aoostar R1 N100](aoostar/r1/n100) | `<nixos-hardware/aoostar/r1/n100>` | `aoostar-r1-n100` | | [Apple MacMini (2010, Intel, Nvidia)](apple/macmini/4) | `<nixos-hardware/apple/macmini/4>` | `apple-macmini-4-1` |
| [Asus Pro WS X570-ACE](asus/pro-ws-x570-ace) | `<nixos-hardware/asus/pro-ws-x570-ace>` | `asus-pro-ws-x570-ace` | | [Apple Macs with a T2 Chip](apple/t2) | `<nixos-hardware/apple/t2>` | `apple-t2` |
| [Asus ROG Ally RC71L (2023)](asus/ally/rc71l) | `<nixos-hardware/asus/ally/rc71l>` | `asus-ally-rc71l` | | [Aoostar R1 N100](aoostar/r1/n100) | `<nixos-hardware/aoostar/r1/n100>` | `aoostar-r1-n100` |
| [Asus ROG Flow X13 GV302X\* (2023)](asus/flow/gv302x/amdgpu) | `<nixos-hardware/asus/flow/gv302x/amdgpu>` | `asus-flow-gv302x-amdgpu` | | [Asus Pro WS X570-ACE](asus/pro-ws-x570-ace) | `<nixos-hardware/asus/pro-ws-x570-ace>` | `asus-pro-ws-x570-ace` |
| [Asus ROG Flow X13 GV302X\* (2023)](asus/flow/gv302x/nvidia) | `<nixos-hardware/asus/flow/gv302x/nvidia>` | `asus-flow-gv302x-nvidia` | | [Asus ROG Ally RC71L (2023)](asus/ally/rc71l) | `<nixos-hardware/asus/ally/rc71l>` | `asus-ally-rc71l` |
| [Asus ROG Strix G513IM](asus/rog-strix/g513im) | `<nixos-hardware/asus/rog-strix/g513im>` | `asus-rog-strix-g513im` | | [Asus ROG Flow X13 GV302X\* (2023)](asus/flow/gv302x/amdgpu) | `<nixos-hardware/asus/flow/gv302x/amdgpu>` | `asus-flow-gv302x-amdgpu` |
| [Asus ROG Strix G533ZW](asus/rog-strix/g533zw) | `<nixos-hardware/asus/rog-strix/g533zw>` | `asus-rog-strix-g533zw` | | [Asus ROG Flow X13 GV302X\* (2023)](asus/flow/gv302x/nvidia) | `<nixos-hardware/asus/flow/gv302x/nvidia>` | `asus-flow-gv302x-nvidia` |
| [Asus ROG Strix G713IE](asus/rog-strix/g713ie) | `<nixos-hardware/asus/rog-strix/g713ie>` | `asus-rog-strix-g713ie` | | [Asus ROG GL552VW](asus/rog-gl552vw) | `<nixos-hardware/asus/rog-gl552vw>` | `asus-rog-gl552vw` |
| [Asus ROG Strix G733QS](asus/rog-strix/g733qs) | `<nixos-hardware/asus/rog-strix/g733qs>` | `asus-rog-strix-g733qs` | | [Asus ROG Strix G513IM](asus/rog-strix/g513im) | `<nixos-hardware/asus/rog-strix/g513im>` | `asus-rog-strix-g513im` |
| [Asus ROG Strix X570-E GAMING](asus/rog-strix/x570e) | `<nixos-hardware/asus/rog-strix/x570e>` | `asus-rog-strix-x570e` | | [Asus ROG Strix G533ZW](asus/rog-strix/g533zw) | `<nixos-hardware/asus/rog-strix/g533zw>` | `asus-rog-strix-g533zw` |
| [Asus ROG Zephyrus G14 GA401](asus/zephyrus/ga401) | `<nixos-hardware/asus/zephyrus/ga401>` | `asus-zephyrus-ga401` | | [Asus ROG Strix G533Q](asus/rog-strix/g533q) | `<nixos-hardware/asus/rog-strix/g533q>` | `asus-rog-strix-g533zw` |
| [Asus ROG Zephyrus G14 GA402](asus/zephyrus/ga402) | `<nixos-hardware/asus/zephyrus/ga402>` | `asus-zephyrus-ga402` | | [Asus ROG Strix G713IE](asus/rog-strix/g713ie) | `<nixos-hardware/asus/rog-strix/g713ie>` | `asus-rog-strix-g713ie` |
| [Asus ROG Zephyrus G14 GA402X\* (2023)](asus/zephyrus/ga402x/amdgpu) | `<nixos-hardware/asus/zephyrus/ga402x/amdgpu>` | `asus-zephyrus-ga402x-amdgpu` | | [Asus ROG Strix G733QS](asus/rog-strix/g733qs) | `<nixos-hardware/asus/rog-strix/g733qs>` | `asus-rog-strix-g733qs` |
| [Asus ROG Zephyrus G14 GA402X\* (2023)](asus/zephyrus/ga402x/nvidia) | `<nixos-hardware/asus/zephyrus/ga402x/nvidia>` | `asus-zephyrus-ga402x-nvidia` | | [Asus ROG Strix X570-E GAMING](asus/rog-strix/x570e) | `<nixos-hardware/asus/rog-strix/x570e>` | `asus-rog-strix-x570e` |
| [Asus ROG Zephyrus G15 GA502](asus/zephyrus/ga502) | `<nixos-hardware/asus/zephyrus/ga502>` | `asus-zephyrus-ga502` | | [Asus ROG Zephyrus G14 GA401](asus/zephyrus/ga401) | `<nixos-hardware/asus/zephyrus/ga401>` | `asus-zephyrus-ga401` |
| [Asus ROG Zephyrus G15 GA503](asus/zephyrus/ga503) | `<nixos-hardware/asus/zephyrus/ga503>` | `asus-zephyrus-ga503` | | [Asus ROG Zephyrus G14 GA402](asus/zephyrus/ga402) | `<nixos-hardware/asus/zephyrus/ga402>` | `asus-zephyrus-ga402` |
| [Asus ROG Zephyrus G16 GU605MY](asus/zephyrus/gu605my) | `<nixos-hardware/asus/zephyrus/gu605my>` | `asus-zephyrus-gu605my` | | [Asus ROG Zephyrus G14 GA402X\* (2023)](asus/zephyrus/ga402x/amdgpu) | `<nixos-hardware/asus/zephyrus/ga402x/amdgpu>` | `asus-zephyrus-ga402x-amdgpu` |
| [Asus ROG Zephyrus M16 GU603H](asus/zephyrus/gu603h) | `<nixos-hardware/asus/zephyrus/gu603h>` | `asus-zephyrus-gu603h` | | [Asus ROG Zephyrus G14 GA402X\* (2023)](asus/zephyrus/ga402x/nvidia) | `<nixos-hardware/asus/zephyrus/ga402x/nvidia>` | `asus-zephyrus-ga402x-nvidia` |
| [Asus TUF FX504GD](asus/fx504gd) | `<nixos-hardware/asus/fx504gd>` | `asus-fx504gd` | | [Asus ROG Zephyrus G15 GA502](asus/zephyrus/ga502) | `<nixos-hardware/asus/zephyrus/ga502>` | `asus-zephyrus-ga502` |
| [Asus TUF FX506HM](asus/fx506hm) | `<nixos-hardware/asus/fx506hm>` | `asus-fx506hm` | | [Asus ROG Zephyrus G15 GA503](asus/zephyrus/ga503) | `<nixos-hardware/asus/zephyrus/ga503>` | `asus-zephyrus-ga503` |
| [Asus TUF FA506IC](asus/fa506ic) | `<nixos-hardware/asus/fa506ic>` | `asus-fa506ic` | | [Asus ROG Zephyrus G16 GU605MY](asus/zephyrus/gu605my) | `<nixos-hardware/asus/zephyrus/gu605my>` | `asus-zephyrus-gu605my` |
| [Asus TUF FA507RM](asus/fa507rm) | `<nixos-hardware/asus/fa507rm>` | `asus-fa507rm` | | [Asus ROG Zephyrus M16 GU603H](asus/zephyrus/gu603h) | `<nixos-hardware/asus/zephyrus/gu603h>` | `asus-zephyrus-gu603h` |
| [Asus TUF FA507NV](asus/fa507nv) | `<nixos-hardware/asus/fa507nv>` | `asus-fa507nv` | | [Asus TUF FX504GD](asus/fx504gd) | `<nixos-hardware/asus/fx504gd>` | `asus-fx504gd` |
| [Asus Zenbook Duo 14 UX481](asus/zenbook/ux481/intelgpu/) | `<nixos-hardware/asus/zenbook/ux481/intelgpu>` | `asus-zenbook-ux481-intelgpu` | | [Asus TUF FX506HM](asus/fx506hm) | `<nixos-hardware/asus/fx506hm>` | `asus-fx506hm` |
| [Asus Zenbook Duo 14 UX481](asus/zenbook/ux481/nvidia/) | `<nixos-hardware/asus/zenbook/ux481/nvidia>` | `asus-zenbook-ux481-nvidia` | | [Asus TUF FA506IC](asus/fa506ic) | `<nixos-hardware/asus/fa506ic>` | `asus-fa506ic` |
| [Asus Zenbook Flip S13 UX371](asus/zenbook/ux371/) | `<nixos-hardware/asus/zenbook/ux371>` | `asus-zenbook-ux371` | | [Asus TUF FA507RM](asus/fa507rm) | `<nixos-hardware/asus/fa507rm>` | `asus-fa507rm` |
| [Asus Zenbook Pro 15 UX535](asus/zenbook/ux535/) | `<nixos-hardware/asus/zenbook/ux535>` | `asus-zenbook-ux535` | | [Asus TUF FA507NV](asus/fa507nv) | `<nixos-hardware/asus/fa507nv>` | `asus-fa507nv` |
| [BeagleBoard PocketBeagle](beagleboard/pocketbeagle) | `<nixos-hardware/beagleboard/pocketbeagle>` | `beagleboard-pocketbeagle` | | [Asus Zenbook Duo 14 UX481](asus/zenbook/ux481/intelgpu/) | `<nixos-hardware/asus/zenbook/ux481/intelgpu>` | `asus-zenbook-ux481-intelgpu` |
| [Chuwi MiniBook X](chuwi/minibook-x) | `<nixos-hardware/chuwi/minibook-x>` | `chuwi-minibook-x` | | [Asus Zenbook Duo 14 UX481](asus/zenbook/ux481/nvidia/) | `<nixos-hardware/asus/zenbook/ux481/nvidia>` | `asus-zenbook-ux481-nvidia` |
| [Deciso DEC series](deciso/dec) | `<nixos-hardware/deciso/dec>` | `deciso-dec` | | [Asus Zenbook Flip S13 UX371](asus/zenbook/ux371/) | `<nixos-hardware/asus/zenbook/ux371>` | `asus-zenbook-ux371` |
| [Dell G3 3779](dell/g3/3779) | `<nixos-hardware/dell/g3/3779>` | `dell-g3-3779` | | [Asus Zenbook Pro 15 UX535](asus/zenbook/ux535/) | `<nixos-hardware/asus/zenbook/ux535>` | `asus-zenbook-ux535` |
| [Dell G3 3579](dell/g3/3579) | `<nixos-hardware/dell/g3/3579>` | `dell-g3-3579` | | [Asus Zenbook Pro 17 UM6702](asus/zenbook/um6702/) | `<nixos-hardware/asus/zenbook/um6702>` | `asus-zenbook-um6702` |
| [Dell Inspiron 3442](dell/inspiron/3442) | `<nixos-hardware/dell/inspiron/3442>` | `dell-inspiron-3442` | | [BeagleBoard PocketBeagle](beagleboard/pocketbeagle) | `<nixos-hardware/beagleboard/pocketbeagle>` | `beagleboard-pocketbeagle` |
| [Dell Inspiron 14 5420](dell/inspiron/14-5420) | `<nixos-hardware/dell/inspiron/14-5420>` | `dell-inspiron-14-5420` | | [Chuwi MiniBook X](chuwi/minibook-x) | `<nixos-hardware/chuwi/minibook-x>` | `chuwi-minibook-x` |
| [Dell Inspiron 5509](dell/inspiron/5509) | `<nixos-hardware/dell/inspiron/5509>` | `dell-inspiron-5509` | | [Deciso DEC series](deciso/dec) | `<nixos-hardware/deciso/dec>` | `deciso-dec` |
| [Dell Inspiron 5515](dell/inspiron/5515) | `<nixos-hardware/dell/inspiron/5515>` | `dell-inspiron-5515` | | [Dell G3 3779](dell/g3/3779) | `<nixos-hardware/dell/g3/3779>` | `dell-g3-3779` |
| [Dell Inspiron 7405](dell/inspiron/7405) | `<nixos-hardware/dell/inspiron/7405>` | `dell-inspiron-7405` | | [Dell G3 3579](dell/g3/3579) | `<nixos-hardware/dell/g3/3579>` | `dell-g3-3579` |
| [Dell Inspiron 7460](dell/inspiron/7460) | `<nixos-hardware/dell/inspiron/7460>` | `dell-inspiron-7460` | | [Dell Inspiron 3442](dell/inspiron/3442) | `<nixos-hardware/dell/inspiron/3442>` | `dell-inspiron-3442` |
| [Dell Inspiron 7559](dell/inspiron/7559) | `<nixos-hardware/dell/inspiron/7559>` | `dell-inspiron-7559` | | [Dell Inspiron 14 5420](dell/inspiron/14-5420) | `<nixos-hardware/dell/inspiron/14-5420>` | `dell-inspiron-14-5420` |
| [Dell Latitude 3340](dell/latitude/3340) | `<nixos-hardware/dell/latitude/3340>` | `dell-latitude-3340` | | [Dell Inspiron 5509](dell/inspiron/5509) | `<nixos-hardware/dell/inspiron/5509>` | `dell-inspiron-5509` |
| [Dell Latitude 3480](dell/latitude/3480) | `<nixos-hardware/dell/latitude/3480>` | `dell-latitude-3480` | | [Dell Inspiron 5515](dell/inspiron/5515) | `<nixos-hardware/dell/inspiron/5515>` | `dell-inspiron-5515` |
| [Dell Latitude 5490](dell/latitude/5490) | `<nixos-hardware/dell/latitude/5490>` | `dell-latitude-5490` | | [Dell Inspiron 7405](dell/inspiron/7405) | `<nixos-hardware/dell/inspiron/7405>` | `dell-inspiron-7405` |
| [Dell Latitude 5520](dell/latitude/5520) | `<nixos-hardware/dell/latitude/5520>` | `dell-latitude-5520` | | [Dell Inspiron 7460](dell/inspiron/7460) | `<nixos-hardware/dell/inspiron/7460>` | `dell-inspiron-7460` |
| [Dell Latitude 7280](dell/latitude/7280) | `<nixos-hardware/dell/latitude/7280>` | `dell-latitude-7280` | | [Dell Inspiron 7559](dell/inspiron/7559) | `<nixos-hardware/dell/inspiron/7559>` | `dell-inspiron-7559` |
| [Dell Latitude 7390](dell/latitude/7390) | `<nixos-hardware/dell/latitude/7390>` | `dell-latitude-7390` | | [Dell Latitude 3340](dell/latitude/3340) | `<nixos-hardware/dell/latitude/3340>` | `dell-latitude-3340` |
| [Dell Latitude 7420](dell/latitude/7420) | `<nixos-hardware/dell/latitude/7420>` | `dell-latitude-7420` | | [Dell Latitude 3480](dell/latitude/3480) | `<nixos-hardware/dell/latitude/3480>` | `dell-latitude-3480` |
| [Dell Latitude 7430](dell/latitude/7430) | `<nixos-hardware/dell/latitude/7430>` | `dell-latitude-7430` | | [Dell Latitude 5490](dell/latitude/5490) | `<nixos-hardware/dell/latitude/5490>` | `dell-latitude-5490` |
| [Dell Latitude 7490](dell/latitude/7490) | `<nixos-hardware/dell/latitude/7490>` | `dell-latitude-7490` | | [Dell Latitude 5520](dell/latitude/5520) | `<nixos-hardware/dell/latitude/5520>` | `dell-latitude-5520` |
| [Dell Latitude 9430](dell/latitude/9430) | `<nixos-hardware/dell/latitude/9430>` | `dell-latitude-9430` | | [Dell Latitude 7280](dell/latitude/7280) | `<nixos-hardware/dell/latitude/7280>` | `dell-latitude-7280` |
| [Dell Latitude E7240](dell/latitude/e7240) | `<nixos-hardware/dell/latitude/e7240>` | `dell-latitude-e7240` | | [Dell Latitude 7390](dell/latitude/7390) | `<nixos-hardware/dell/latitude/7390>` | `dell-latitude-7390` |
| [Dell Optiplex 3050](dell/optiplex/3050) | `<nixos-hardware/dell/optiplex/3050>` | `dell-optiplex-3050` | | [Dell Latitude 7420](dell/latitude/7420) | `<nixos-hardware/dell/latitude/7420>` | `dell-latitude-7420` |
| [Dell Poweredge R7515](dell/poweredge/r7515) | `<nixos-hardware/dell/poweredge/r7515>` | `dell-poweredge-r7515` | | [Dell Latitude 7430](dell/latitude/7430) | `<nixos-hardware/dell/latitude/7430>` | `dell-latitude-7430` |
| [Dell Precision 3490, nvidia](dell/precision/3490/nvidia) | `<nixos-hardware/dell/precision/3490/nvidia>` | `dell-precision-3490-nvidia` | | [Dell Latitude 7490](dell/latitude/7490) | `<nixos-hardware/dell/latitude/7490>` | `dell-latitude-7490` |
| [Dell Precision 3490, intel](dell/precision/3490/intel) | `<nixos-hardware/dell/precision/3490/intel>` | `dell-precision-3490-intel` | | [Dell Latitude 9430](dell/latitude/9430) | `<nixos-hardware/dell/latitude/9430>` | `dell-latitude-9430` |
| [Dell Precision 3541](dell/precision/3541) | `<nixos-hardware/dell/precision/3541>` | `dell-precision-3541` | | [Dell Latitude E7240](dell/latitude/e7240) | `<nixos-hardware/dell/latitude/e7240>` | `dell-latitude-e7240` |
| [Dell Precision 5490](dell/precision/5490) | `<nixos-hardware/dell/precision/5490>` | `dell-precision-5490` | | [Dell Optiplex 3050](dell/optiplex/3050) | `<nixos-hardware/dell/optiplex/3050>` | `dell-optiplex-3050` |
| [Dell Precision 5530](dell/precision/5530) | `<nixos-hardware/dell/precision/5530>` | `dell-precision-5530` | | [Dell Poweredge R7515](dell/poweredge/r7515) | `<nixos-hardware/dell/poweredge/r7515>` | `dell-poweredge-r7515` |
| [Dell Precision 7520](dell/precision/7520) | `<nixos-hardware/dell/precision/7520>` | `dell-precision-7520` | | [Dell Precision 3490, nvidia](dell/precision/3490/nvidia) | `<nixos-hardware/dell/precision/3490/nvidia>` | `dell-precision-3490-nvidia` |
| [Dell XPS 13 7390](dell/xps/13-7390) | `<nixos-hardware/dell/xps/13-7390>` | `dell-xps-13-7390` | | [Dell Precision 3490, intel](dell/precision/3490/intel) | `<nixos-hardware/dell/precision/3490/intel>` | `dell-precision-3490-intel` |
| [Dell XPS 13 9300](dell/xps/13-9300) | `<nixos-hardware/dell/xps/13-9300>` | `dell-xps-13-9300` | | [Dell Precision 3541](dell/precision/3541) | `<nixos-hardware/dell/precision/3541>` | `dell-precision-3541` |
| [Dell XPS 13 9310](dell/xps/13-9310) | `<nixos-hardware/dell/xps/13-9310>` | `dell-xps-13-9310` | | [Dell Precision 5490](dell/precision/5490) | `<nixos-hardware/dell/precision/5490>` | `dell-precision-5490` |
| [Dell XPS 13 9315](dell/xps/13-9315) | `<nixos-hardware/dell/xps/13-9315>` | `dell-xps-13-9315` | | [Dell Precision 5530](dell/precision/5530) | `<nixos-hardware/dell/precision/5530>` | `dell-precision-5530` |
| [Dell XPS 13 9333](dell/xps/13-9333) | `<nixos-hardware/dell/xps/13-9333>` | `dell-xps-13-9333` | | [Dell Precision 5560](dell/precision/5560) | `<nixos-hardware/dell/precision/5560>` | `dell-precision-5560` |
| [Dell XPS 13 9343](dell/xps/13-9343) | `<nixos-hardware/dell/xps/13-9343>` | `dell-xps-13-9343` | | [Dell Precision 5570](dell/precision/5570) | `<nixos-hardware/dell/precision/5570>` | `dell-precision-5570` |
| [Dell XPS 13 9350](dell/xps/13-9350) | `<nixos-hardware/dell/xps/13-9350>` | `dell-xps-13-9350` | | [Dell Precision 7520](dell/precision/7520) | `<nixos-hardware/dell/precision/7520>` | `dell-precision-7520` |
| [Dell XPS 13 9360](dell/xps/13-9360) | `<nixos-hardware/dell/xps/13-9360>` | `dell-xps-13-9360` | | [Dell XPS 13 7390](dell/xps/13-7390) | `<nixos-hardware/dell/xps/13-7390>` | `dell-xps-13-7390` |
| [Dell XPS 13 9370](dell/xps/13-9370) | `<nixos-hardware/dell/xps/13-9370>` | `dell-xps-13-9370` | | [Dell XPS 13 9300](dell/xps/13-9300) | `<nixos-hardware/dell/xps/13-9300>` | `dell-xps-13-9300` |
| [Dell XPS 13 9380](dell/xps/13-9380) | `<nixos-hardware/dell/xps/13-9380>` | `dell-xps-13-9380` | | [Dell XPS 13 9310](dell/xps/13-9310) | `<nixos-hardware/dell/xps/13-9310>` | `dell-xps-13-9310` |
| [Dell XPS 15 7590, nvidia](dell/xps/15-7590/nvidia) | `<nixos-hardware/dell/xps/15-7590/nvidia>` | `dell-xps-15-7590-nvidia` | | [Dell XPS 13 9315](dell/xps/13-9315) | `<nixos-hardware/dell/xps/13-9315>` | `dell-xps-13-9315` |
| [Dell XPS 15 7590](dell/xps/15-7590) | `<nixos-hardware/dell/xps/15-7590>` | `dell-xps-15-7590` | | [Dell XPS 13 9333](dell/xps/13-9333) | `<nixos-hardware/dell/xps/13-9333>` | `dell-xps-13-9333` |
| [Dell XPS 15 9500, nvidia](dell/xps/15-9500/nvidia) | `<nixos-hardware/dell/xps/15-9500/nvidia>` | `dell-xps-15-9500-nvidia` | | [Dell XPS 13 9343](dell/xps/13-9343) | `<nixos-hardware/dell/xps/13-9343>` | `dell-xps-13-9343` |
| [Dell XPS 15 9500](dell/xps/15-9500) | `<nixos-hardware/dell/xps/15-9500>` | `dell-xps-15-9500` | | [Dell XPS 13 9350](dell/xps/13-9350) | `<nixos-hardware/dell/xps/13-9350>` | `dell-xps-13-9350` |
| [Dell XPS 15 9510, nvidia](dell/xps/15-9510/nvidia) | `<nixos-hardware/dell/xps/15-9510/nvidia>` | `dell-xps-15-9510-nvidia` | | [Dell XPS 13 9360](dell/xps/13-9360) | `<nixos-hardware/dell/xps/13-9360>` | `dell-xps-13-9360` |
| [Dell XPS 15 9510](dell/xps/15-9510) | `<nixos-hardware/dell/xps/15-9510>` | `dell-xps-15-9510` | | [Dell XPS 13 9370](dell/xps/13-9370) | `<nixos-hardware/dell/xps/13-9370>` | `dell-xps-13-9370` |
| [Dell XPS 15 9520, nvidia](dell/xps/15-9520/nvidia) | `<nixos-hardware/dell/xps/15-9520/nvidia>` | `dell-xps-15-9520-nvidia` | | [Dell XPS 13 9380](dell/xps/13-9380) | `<nixos-hardware/dell/xps/13-9380>` | `dell-xps-13-9380` |
| [Dell XPS 15 9520](dell/xps/15-9520) | `<nixos-hardware/dell/xps/15-9520>` | `dell-xps-15-9520` | | [Dell XPS 15 7590, nvidia](dell/xps/15-7590/nvidia) | `<nixos-hardware/dell/xps/15-7590/nvidia>` | `dell-xps-15-7590-nvidia` |
| [Dell XPS 15 9530, nvidia](dell/xps/15-9530/nvidia) | `<nixos-hardware/dell/xps/15-9530/nvidia>` | `dell-xps-15-9530-nvidia` | | [Dell XPS 15 7590](dell/xps/15-7590) | `<nixos-hardware/dell/xps/15-7590>` | `dell-xps-15-7590` |
| [Dell XPS 15 9530](dell/xps/15-9530) | `<nixos-hardware/dell/xps/15-9530>` | `dell-xps-15-9530` | | [Dell XPS 15 9500, nvidia](dell/xps/15-9500/nvidia) | `<nixos-hardware/dell/xps/15-9500/nvidia>` | `dell-xps-15-9500-nvidia` |
| [Dell XPS 15 9550, nvidia](dell/xps/15-9550/nvidia) | `<nixos-hardware/dell/xps/15-9550/nvidia>` | `dell-xps-15-9550-nvidia` | | [Dell XPS 15 9500](dell/xps/15-9500) | `<nixos-hardware/dell/xps/15-9500>` | `dell-xps-15-9500` |
| [Dell XPS 15 9550](dell/xps/15-9550) | `<nixos-hardware/dell/xps/15-9550>` | `dell-xps-15-9550` | | [Dell XPS 15 9510, nvidia](dell/xps/15-9510/nvidia) | `<nixos-hardware/dell/xps/15-9510/nvidia>` | `dell-xps-15-9510-nvidia` |
| [Dell XPS 15 9560, intel only](dell/xps/15-9560/intel) | `<nixos-hardware/dell/xps/15-9560/intel>` | `dell-xps-15-9560-intel` | | [Dell XPS 15 9510](dell/xps/15-9510) | `<nixos-hardware/dell/xps/15-9510>` | `dell-xps-15-9510` |
| [Dell XPS 15 9560, nvidia only](dell/xps/15-9560/nvidia) | `<nixos-hardware/dell/xps/15-9560/nvidia>` | `dell-xps-15-9560-nvidia` | | [Dell XPS 15 9520, nvidia](dell/xps/15-9520/nvidia) | `<nixos-hardware/dell/xps/15-9520/nvidia>` | `dell-xps-15-9520-nvidia` |
| [Dell XPS 15 9560](dell/xps/15-9560) | `<nixos-hardware/dell/xps/15-9560>` | `dell-xps-15-9560` | | [Dell XPS 15 9520](dell/xps/15-9520) | `<nixos-hardware/dell/xps/15-9520>` | `dell-xps-15-9520` |
| [Dell XPS 15 9570, intel only](dell/xps/15-9570/intel) | `<nixos-hardware/dell/xps/15-9570/intel>` | `dell-xps-15-9570-intel` | | [Dell XPS 15 9530, nvidia](dell/xps/15-9530/nvidia) | `<nixos-hardware/dell/xps/15-9530/nvidia>` | `dell-xps-15-9530-nvidia` |
| [Dell XPS 15 9570, nvidia](dell/xps/15-9570/nvidia) | `<nixos-hardware/dell/xps/15-9570/nvidia>` | `dell-xps-15-9570-nvidia` | | [Dell XPS 15 9530](dell/xps/15-9530) | `<nixos-hardware/dell/xps/15-9530>` | `dell-xps-15-9530` |
| [Dell XPS 15 9570](dell/xps/15-9570) | `<nixos-hardware/dell/xps/15-9570>` | `dell-xps-15-9570` | | [Dell XPS 15 9550, nvidia](dell/xps/15-9550/nvidia) | `<nixos-hardware/dell/xps/15-9550/nvidia>` | `dell-xps-15-9550-nvidia` |
| [Dell XPS 17 9700, intel](dell/xps/17-9700/intel) | `<nixos-hardware/dell/xps/17-9700/intel` | `dell-xps-17-9700-intel` | | [Dell XPS 15 9550](dell/xps/15-9550) | `<nixos-hardware/dell/xps/15-9550>` | `dell-xps-15-9550` |
| [Dell XPS 17 9700, nvidia](dell/xps/17-9700/nvidia) | `<nixos-hardware/dell/xps/17-9700/nvidia>` | `dell-xps-17-9700-nvidia` | | [Dell XPS 15 9560, intel only](dell/xps/15-9560/intel) | `<nixos-hardware/dell/xps/15-9560/intel>` | `dell-xps-15-9560-intel` |
| [Dell XPS 17 9710, intel only](dell/xps/17-9710/intel) | `<nixos-hardware/dell/xps/17-9710/intel>` | `dell-xps-17-9710-intel` | | [Dell XPS 15 9560, nvidia only](dell/xps/15-9560/nvidia) | `<nixos-hardware/dell/xps/15-9560/nvidia>` | `dell-xps-15-9560-nvidia` |
| [Framework 11th Gen Intel Core](framework/13-inch/11th-gen-intel) | `<nixos-hardware/framework/13-inch/11th-gen-intel>` | `framework-11th-gen-intel` | | [Dell XPS 15 9560](dell/xps/15-9560) | `<nixos-hardware/dell/xps/15-9560>` | `dell-xps-15-9560` |
| [Framework 12th Gen Intel Core](framework/12-inch/13th-gen-intel) | `<nixos-hardware/framework/12-inch/13th-gen-intel>` | `framework-12th-gen-intel` | | [Dell XPS 15 9570, intel only](dell/xps/15-9570/intel) | `<nixos-hardware/dell/xps/15-9570/intel>` | `dell-xps-15-9570-intel` |
| [Framework 13th Gen Intel Core](framework/13-inch/13th-gen-intel) | `<nixos-hardware/framework/13-inch/13th-gen-intel>` | `framework-13th-gen-intel` | | [Dell XPS 15 9570, nvidia](dell/xps/15-9570/nvidia) | `<nixos-hardware/dell/xps/15-9570/nvidia>` | `dell-xps-15-9570-nvidia` |
| [Dell XPS 15 9570](dell/xps/15-9570) | `<nixos-hardware/dell/xps/15-9570>` | `dell-xps-15-9570` |
| [Dell XPS 17 9700, intel](dell/xps/17-9700/intel) | `<nixos-hardware/dell/xps/17-9700/intel` | `dell-xps-17-9700-intel` |
| [Dell XPS 17 9700, nvidia](dell/xps/17-9700/nvidia) | `<nixos-hardware/dell/xps/17-9700/nvidia>` | `dell-xps-17-9700-nvidia` |
| [Dell XPS 17 9710, intel only](dell/xps/17-9710/intel) | `<nixos-hardware/dell/xps/17-9710/intel>` | `dell-xps-17-9710-intel` |
| [Framework 11th Gen Intel Core](framework/13-inch/11th-gen-intel) | `<nixos-hardware/framework/13-inch/11th-gen-intel>` | `framework-11th-gen-intel` |
| [Framework 12th Gen Intel Core](framework/13-inch/12th-gen-intel) | `<nixos-hardware/framework/13-inch/12th-gen-intel>` | `framework-12th-gen-intel` |
| [Framework 13th Gen Intel Core](framework/13-inch/13th-gen-intel) | `<nixos-hardware/framework/13-inch/13th-gen-intel>` | `framework-13th-gen-intel` |
| [Framework Intel Core Ultra Series 1](framework/13-inch/intel-core-ultra-series1) | `<nixos-hardware/framework/13-inch/intel-core-ultra-series1>` | `framework-intel-core-ultra-series1` | | [Framework Intel Core Ultra Series 1](framework/13-inch/intel-core-ultra-series1) | `<nixos-hardware/framework/13-inch/intel-core-ultra-series1>` | `framework-intel-core-ultra-series1` |
| [Framework 13 AMD Ryzen 7040 Series](framework/13-inch/7040-amd) | `<nixos-hardware/framework/13-inch/7040-amd>` | `framework-13-7040-amd` | | [Framework 13 AMD Ryzen 7040 Series](framework/13-inch/7040-amd) | `<nixos-hardware/framework/13-inch/7040-amd>` | `framework-13-7040-amd` |
| [Framework 13 AMD AI 300 Series](framework/13-inch/amd-ai-300-series) | `<nixos-hardware/framework/13-inch/amd-ai-300-series>` | `framework-amd-ai-300-series` | | [Framework 13 AMD AI 300 Series](framework/13-inch/amd-ai-300-series) | `<nixos-hardware/framework/13-inch/amd-ai-300-series>` | `framework-amd-ai-300-series` |
| [Framework 12 13th Gen Intel Core](framework/12-inch/13th-gen-intel) | `<nixos-hardware/framework/12-inch/13th-gen-intel>` | `framework-12-13th-gen-intel` | | [Framework 12 13th Gen Intel Core](framework/12-inch/13th-gen-intel) | `<nixos-hardware/framework/12-inch/13th-gen-intel>` | `framework-12-13th-gen-intel` |
| [Framework 16 AMD Ryzen 7040 Series](framework/16-inch/7040-amd) | `<nixos-hardware/framework/16-inch/7040-amd>` | `framework-16-7040-amd` | | [Framework 16 AMD Ryzen 7040 Series](framework/16-inch/7040-amd) | `<nixos-hardware/framework/16-inch/7040-amd>` | `framework-16-7040-amd` |
| [FriendlyARM NanoPC-T4](friendlyarm/nanopc-t4) | `<nixos-hardware/friendlyarm/nanopc-t4>` | `friendlyarm-nanopc-t4` | | [Framework 16 AMD Ryzen AI 300 Series](framework/16-inch/amd-ai-300-series) | `<nixos-hardware/framework/16-inch/amd-ai-300-series>` | `framework-16-amd-ai-300-series` |
| [FriendlyARM NanoPi R5s](friendlyarm/nanopi-r5s) | `<nixos-hardware/friendlyarm/nanopi-r5s>` | `friendlyarm-nanopi-r5s` | | [FriendlyARM NanoPC-T4](friendlyarm/nanopc-t4) | `<nixos-hardware/friendlyarm/nanopc-t4>` | `friendlyarm-nanopc-t4` |
| [Focus M2 Gen 1](focus/m2/gen1) | `<nixos-hardware/focus/m2/gen1>` | `focus-m2-gen1` | | [FriendlyARM NanoPi R5s](friendlyarm/nanopi-r5s) | `<nixos-hardware/friendlyarm/nanopi-r5s>` | `friendlyarm-nanopi-r5s` |
| [Gigabyte B550](gigabyte/b550) | `<nixos-hardware/gigabyte/b550>` | `gigabyte-b550` | | [Focus M2 Gen 1](focus/m2/gen1) | `<nixos-hardware/focus/m2/gen1>` | `focus-m2-gen1` |
| [Gigabyte B650](gigabyte/b650) | `<nixos-hardware/gigabyte/b650>` | `gigabyte-b650` | | [Fydetab Duo](fydetab/duo) | `<nixos-hardware/fydetab/duo>` | `fydetab-duo` |
| [GMKtec NucBox G3 Plus](gmktec/nucbox/g3-plus) | `<nixos-hardware/gmktec/nucbox/g3-plus>` | `gmktec-nucbox-g3-plus` | | [Gigabyte B550](gigabyte/b550) | `<nixos-hardware/gigabyte/b550>` | `gigabyte-b550` |
| [GPD MicroPC](gpd/micropc) | `<nixos-hardware/gpd/micropc>` | `gpd-micropc` | | [Gigabyte B650](gigabyte/b650) | `<nixos-hardware/gigabyte/b650>` | `gigabyte-b650` |
| [GPD P2 Max](gpd/p2-max) | `<nixos-hardware/gpd/p2-max>` | `gpd-p2-max` | | [GMKtec NucBox G3 Plus](gmktec/nucbox/g3-plus) | `<nixos-hardware/gmktec/nucbox/g3-plus>` | `gmktec-nucbox-g3-plus` |
| [GPD Pocket 3](gpd/pocket-3) | `<nixos-hardware/gpd/pocket-3>` | `gpd-pocket-3` | | [GPD MicroPC](gpd/micropc) | `<nixos-hardware/gpd/micropc>` | `gpd-micropc` |
| [GPD Pocket 4](gpd/pocket-4) | `<nixos-hardware/gpd/pocket-4>` | `gpd-pocket-4` | | [GPD P2 Max](gpd/p2-max) | `<nixos-hardware/gpd/p2-max>` | `gpd-p2-max` |
| [GPD WIN 2](gpd/win-2) | `<nixos-hardware/gpd/win-2>` | `gpd-win-2` | | [GPD Pocket 3](gpd/pocket-3) | `<nixos-hardware/gpd/pocket-3>` | `gpd-pocket-3` |
| [GPD WIN Max 2 2023](gpd/win-max-2/2023) | `<nixos-hardware/gpd/win-max-2/2023>` | `gpd-win-max-2-2023` | | [GPD Pocket 4](gpd/pocket-4) | `<nixos-hardware/gpd/pocket-4>` | `gpd-pocket-4` |
| [GPD WIN Mini 2024](gpd/win-mini/2024) | `<nixos-hardware/gpd/win-mini/2024>` | `gpd-win-mini-2024` | | [GPD WIN 2](gpd/win-2) | `<nixos-hardware/gpd/win-2>` | `gpd-win-2` |
| [Google Pixelbook](google/pixelbook) | `<nixos-hardware/google/pixelbook>` | `google-pixelbook` | | [GPD WIN Max 2 2023](gpd/win-max-2/2023) | `<nixos-hardware/gpd/win-max-2/2023>` | `gpd-win-max-2-2023` |
| [HP Elitebook 2560p](hp/elitebook/2560p) | `<nixos-hardware/hp/elitebook/2560p>` | `hp-elitebook-2560p` | | [GPD WIN Mini 2024](gpd/win-mini/2024) | `<nixos-hardware/gpd/win-mini/2024>` | `gpd-win-mini-2024` |
| [HP Elitebook 830g6](hp/elitebook/830/g6) | `<nixos-hardware/hp/elitebook/830/g6>` | `hp-elitebook-830g6` | | [Google Pixelbook](google/pixelbook) | `<nixos-hardware/google/pixelbook>` | `google-pixelbook` |
| [HP Elitebook 845g7](hp/elitebook/845/g7) | `<nixos-hardware/hp/elitebook/845/g7>` | `hp-elitebook-845g7` | | [HP Elitebook 2560p](hp/elitebook/2560p) | `<nixos-hardware/hp/elitebook/2560p>` | `hp-elitebook-2560p` |
| [HP Elitebook 845g8](hp/elitebook/845/g8) | `<nixos-hardware/hp/elitebook/845/g8>` | `hp-elitebook-845g8` | | [HP Elitebook 830g6](hp/elitebook/830/g6) | `<nixos-hardware/hp/elitebook/830/g6>` | `hp-elitebook-830g6` |
| [HP Elitebook 845g9](hp/elitebook/845/g9) | `<nixos-hardware/hp/elitebook/845/g9>` | `hp-elitebook-845g9` | | [HP Elitebook 845g7](hp/elitebook/845/g7) | `<nixos-hardware/hp/elitebook/845/g7>` | `hp-elitebook-845g7` |
| [HP Laptop 14s-dq2024nf](hp/laptop/14s-dq2024nf) | `<nixos-hardware/hp/laptop/14s-dq2024nf>` | `hp-laptop-14s-dq2024nf` | | [HP Elitebook 845g8](hp/elitebook/845/g8) | `<nixos-hardware/hp/elitebook/845/g8>` | `hp-elitebook-845g8` |
| [HP Notebook 14-df0023](hp/notebook/14-df0023) | `<nixos-hardware/hp/notebook/14-df0023>` | `hp-notebook-14-df0023` | | [HP Elitebook 845g9](hp/elitebook/845/g9) | `<nixos-hardware/hp/elitebook/845/g9>` | `hp-elitebook-845g9` |
| [HP Probook 440G5](hp/probook/440g5) | `<nixos-hardware/hp/probook/440g5>` | `hp-probook-440G5` | | [HP Laptop 14s-dq2024nf](hp/laptop/14s-dq2024nf) | `<nixos-hardware/hp/laptop/14s-dq2024nf>` | `hp-laptop-14s-dq2024nf` |
| [Huawei Matebook X Pro (2020)](huawei/machc-wa) | `<nixos-hardware/huawei/machc-wa>` | `huawei-machc-wa` | | [HP Notebook 14-df0023](hp/notebook/14-df0023) | `<nixos-hardware/hp/notebook/14-df0023>` | `hp-notebook-14-df0023` |
| [i.MX8QuadMax Multisensory Enablement Kit](nxp/imx8qm-mek/) | `<nixos-hardware/nxp/imx8qm-mek>` | `nxp-imx8qm-mek` | | [HP Probook 440G5](hp/probook/440G5) | `<nixos-hardware/hp/probook/440G5>` | `hp-probook-440G5` |
| [Intel NUC 8i7BEH](intel/nuc/8i7beh/) | `<nixos-hardware/intel/nuc/8i7beh>` | `intel-nuc-8i7beh` | | [HP Laptop 14s-dq2024nf](hp/laptop/14s-dq2024nf) | `<nixos-hardware/hp/laptop/14s-dq2024nf>` | `hp-laptop-14s-dq2024nf` |
| [Lenovo IdeaCentre K330](lenovo/ideacentre/k330) | `<nixos-hardware/lenovo/ideacentre/k330>` | `lenovo-ideacentre-k330` | | [HP Probook 460G11](hp/probook/460g11) | `<nixos-hardware/hp/probook/460g11>` | `hp-probook-46011` |
| [Lenovo IdeaPad 3 15alc6](lenovo/ideapad/15alc6) | `<nixos-hardware/lenovo/ideapad/15alc6>` | `lenovo-ideapad-15alc6` | | [Huawei Matebook X Pro (2020)](huawei/machc-wa) | `<nixos-hardware/huawei/machc-wa>` | `huawei-machc-wa` |
| [Lenovo IdeaPad Gaming 3 15arh05](lenovo/ideapad/15arh05) | `<nixos-hardware/lenovo/ideapad/15arh05>` | `lenovo-ideapad-15arh05` | | [i.MX8QuadMax Multisensory Enablement Kit](nxp/imx8qm-mek/) | `<nixos-hardware/nxp/imx8qm-mek>` | `nxp-imx8qm-mek` |
| [Lenovo IdeaPad Gaming 3 15ach6](lenovo/ideapad/15ach6) | `<nixos-hardware/lenovo/ideapad/15ach6>` | `lenovo-ideapad-15ach6` | | [Intel NUC 5i5RYB](intel/nuc/5i5ryb/) | `<nixos-hardware/intel/nuc/5i5ryb>` | `intel-nuc-5i5ryb` |
| [Lenovo IdeaPad 5 Pro 14imh9](lenovo/ideapad/14imh9) | `<nixos-hardware/lenovo/ideapad/14imh9>` | `lenovo-ideapad-14imh9` | | [Intel NUC 8i7BEH](intel/nuc/8i7beh/) | `<nixos-hardware/intel/nuc/8i7beh>` | `intel-nuc-8i7beh` |
| [Lenovo IdeaPad 5 Pro 16ach6](lenovo/ideapad/16ach6) | `<nixos-hardware/lenovo/ideapad/16ach6>` | `lenovo-ideapad-16ach6` | | [Kobol Helios4](kobol/helios4) | `<nixos-hardware/kobol/helios4>` | `kobol-helios-4` |
| [Lenovo IdeaPad Z510](lenovo/ideapad/z510) | `<nixos-hardware/lenovo/ideapad/z510>` | `lenovo-ideapad-z510` | | [Lenovo IdeaCentre K330](lenovo/ideacentre/k330) | `<nixos-hardware/lenovo/ideacentre/k330>` | `lenovo-ideacentre-k330` |
| [Lenovo IdeaPad Slim 5](lenovo/ideapad/slim-5) | `<nixos-hardware/lenovo/ideapad/slim-5>` | `lenovo-ideapad-slim-5` | | [Lenovo IdeaPad 3 15alc6](lenovo/ideapad/15alc6) | `<nixos-hardware/lenovo/ideapad/15alc6>` | `lenovo-ideapad-15alc6` |
| [Lenovo IdeaPad Slim 5 16iah8](lenovo/ideapad/16iah8) | `<nixos-hardware/lenovo/ideapad/16iah8` | `lenovo-ideapad-s5-16iah8` | | [Lenovo IdeaPad Gaming 3 15arh05](lenovo/ideapad/15arh05) | `<nixos-hardware/lenovo/ideapad/15arh05>` | `lenovo-ideapad-15arh05` |
| [Lenovo IdeaPad 2-in-1 16ahp9](lenovo/ideapad/16ahp9) | `<nixos-hardware/lenovo/ideapad/16ahp9>` | `lenovo-ideapad-16ahp9` | | [Lenovo IdeaPad Gaming 3 15ach6](lenovo/ideapad/15ach6) | `<nixos-hardware/lenovo/ideapad/15ach6>` | `lenovo-ideapad-15ach6` |
| [Lenovo IdeaPad S145 15api](lenovo/ideapad/s145-15api) | `<nixos-hardware/lenovo/ideapad/s145-15api>` | `lenovo-ideapad-s145-15api` | | [Lenovo IdeaPad 5 Pro 14imh9](lenovo/ideapad/14imh9) | `<nixos-hardware/lenovo/ideapad/14imh9>` | `lenovo-ideapad-14imh9` |
| [Lenovo Legion 5 15ach6h](lenovo/legion/15ach6h) | `<nixos-hardware/lenovo/legion/15ach6h>` | `lenovo-legion-15ach6h` | | [Lenovo IdeaPad 5 Pro 16ach6](lenovo/ideapad/16ach6) | `<nixos-hardware/lenovo/ideapad/16ach6>` | `lenovo-ideapad-16ach6` |
| [Lenovo Legion 5 15arh05h](lenovo/legion/15arh05h) | `<nixos-hardware/lenovo/legion/15arh05h>` | `lenovo-legion-15arh05h` | | [Lenovo IdeaPad Z510](lenovo/ideapad/z510) | `<nixos-hardware/lenovo/ideapad/z510>` | `lenovo-ideapad-z510` |
| [Lenovo Legion 7 Slim 15ach6](lenovo/legion/15ach6) | `<nixos-hardware/lenovo/legion/15ach6>` | `lenovo-legion-15ach6` | | [Lenovo IdeaPad Slim 5](lenovo/ideapad/slim-5) | `<nixos-hardware/lenovo/ideapad/slim-5>` | `lenovo-ideapad-slim-5` |
| [Lenovo Legion 5 Pro 16ach6h](lenovo/legion/16ach6h) | `<nixos-hardware/lenovo/legion/16ach6h>` | `lenovo-legion-16ach6h` | | [Lenovo IdeaPad Slim 5 16iah8](lenovo/ideapad/16iah8) | `<nixos-hardware/lenovo/ideapad/16iah8` | `lenovo-ideapad-s5-16iah8` |
| [Lenovo Legion 5 Pro 16ach6h (Hybrid)](lenovo/legion/16ach6h/hybrid) | `<nixos-hardware/lenovo/legion/16ach6h/hybrid>` | `lenovo-legion-16ach6h-hybrid` | | [Lenovo IdeaPad 2-in-1 16ahp9](lenovo/ideapad/16ahp9) | `<nixos-hardware/lenovo/ideapad/16ahp9>` | `lenovo-ideapad-16ahp9` |
| [Lenovo Legion 5 Pro 16ach6h (Nvidia)](lenovo/legion/16ach6h/nvidia) | `<nixos-hardware/lenovo/legion/16ach6h/nvidia>` | `lenovo-legion-16ach6h-nvidia` | | [Lenovo IdeaPad S145 15api](lenovo/ideapad/s145-15api) | `<nixos-hardware/lenovo/ideapad/s145-15api>` | `lenovo-ideapad-s145-15api` |
| [Lenovo Legion 5 Pro 16arh7h (IGPU Only)](lenovo/legion/16arh7h/igpu-only) | `<nixos-hardware/lenovo/legion/16arh7h/igpu-only>` | `lenovo-legion-16arh7h-igpu-only` | | [Lenovo Legion 5 15ach6h](lenovo/legion/15ach6h) | `<nixos-hardware/lenovo/legion/15ach6h>` | `lenovo-legion-15ach6h` |
| [Lenovo Legion 5 Pro 16arh7h (Hybrid)](lenovo/legion/16arh7h/hybrid) | `<nixos-hardware/lenovo/legion/16arh7h/hybrid>` | `lenovo-legion-16arh7h-hybrid` | | [Lenovo Legion 5 15ach6h (Hybrid)](lenovo/legion/15ach6h/hybrid) | `<nixos-hardware/lenovo/legion/15ach6h/hybrid>` | `lenovo-legion-15ach6h-hybrid` |
| [Lenovo Legion 5 Pro 16IAH7H (Intel)](lenovo/legion/16iah7h/) | `<nixos-hardware/lenovo/legion/16iah7h>` | `lenovo-legion-16iah7h` | | [Lenovo Legion 5 15ach6h (Nvidia)](lenovo/legion/15ach6h/hybrid) | `<nixos-hardware/lenovo/legion/15ach6h/nvidia>` | `lenovo-legion-15ach6h-nvidia` |
| [Lenovo Legion 7 16achg6 (Hybrid)](lenovo/legion/16achg6/hybrid) | `<nixos-hardware/lenovo/legion/16achg6/hybrid>` | `lenovo-legion-16achg6-hybrid` | | [Lenovo Legion 5 15arh05h](lenovo/legion/15arh05h) | `<nixos-hardware/lenovo/legion/15arh05h>` | `lenovo-legion-15arh05h` |
| [Lenovo Legion 7 16achg6 (Nvidia)](lenovo/legion/16achg6/nvidia) | `<nixos-hardware/lenovo/legion/16achg6/nvidia>` | `lenovo-legion-16achg6-nvidia` | | [Lenovo Legion 7 Slim 15ach6](lenovo/legion/15ach6) | `<nixos-hardware/lenovo/legion/15ach6>` | `lenovo-legion-15ach6` |
| [Lenovo Legion 7i Pro 16irx8h (Intel)](lenovo/legion/16irx8h) | `<nixos-hardware/lenovo/legion/16irx8h>` | `lenovo-legion-16irx8h` | | [Lenovo Legion 5 Pro 16ach6h](lenovo/legion/16ach6h) | `<nixos-hardware/lenovo/legion/16ach6h>` | `lenovo-legion-16ach6h` |
| [Lenovo Legion 7 Pro 16irx9h (Intel)](lenovo/legion/16irx9h) | `<nixos-hardware/lenovo/legion/16irx9h>` | `lenovo-legion-16irx9h` | | [Lenovo Legion 5 Pro 16ach6h (Hybrid)](lenovo/legion/16ach6h/hybrid) | `<nixos-hardware/lenovo/legion/16ach6h/hybrid>` | `lenovo-legion-16ach6h-hybrid` |
| [Lenovo Legion Slim 7 Gen 7 (AMD)](lenovo/legion/16arha7/) | `<nixos-hardware/lenovo/legion/16arha7>` | `lenovo-legion-16arha7` | | [Lenovo Legion 5 Pro 16ach6h (Nvidia)](lenovo/legion/16ach6h/nvidia) | `<nixos-hardware/lenovo/legion/16ach6h/nvidia>` | `lenovo-legion-16ach6h-nvidia` |
| [Lenovo Legion T5 AMR5](lenovo/legion/t526amr5) | `<nixos-hardware/lenovo/legion/t526amr5>` | `lenovo-legion-t526amr5` | | [Lenovo Legion 5 Pro 16arh7h (IGPU Only)](lenovo/legion/16arh7h/igpu-only) | `<nixos-hardware/lenovo/legion/16arh7h/igpu-only>` | `lenovo-legion-16arh7h-igpu-only` |
| [Lenovo Legion Y530 15ICH](lenovo/legion/15ich) | `<nixos-hardware/lenovo/legion/15ich>` | `lenovo-legion-15ich` | | [Lenovo Legion 5 Pro 16arh7h (Hybrid)](lenovo/legion/16arh7h/hybrid) | `<nixos-hardware/lenovo/legion/16arh7h/hybrid>` | `lenovo-legion-16arh7h-hybrid` |
| [Lenovo ThinkPad A475](lenovo/thinkpad/a475) | `<nixos-hardware/lenovo/thinkpad/a475>` | `lenovo-thinkpad-a475` | | [Lenovo Legion 5 Pro 16IAH7H (Intel)](lenovo/legion/16iah7h/) | `<nixos-hardware/lenovo/legion/16iah7h>` | `lenovo-legion-16iah7h` |
| [Lenovo ThinkPad E14 (AMD)](lenovo/thinkpad/e14/amd) | `<nixos-hardware/lenovo/thinkpad/e14/amd>` | `lenovo-thinkpad-e14-amd` | | [Lenovo Legion 7 16achg6 (Hybrid)](lenovo/legion/16achg6/hybrid) | `<nixos-hardware/lenovo/legion/16achg6/hybrid>` | `lenovo-legion-16achg6-hybrid` |
| [Lenovo ThinkPad E14 (Intel - Gen 1)](lenovo/thinkpad/e14/intel) | `<nixos-hardware/lenovo/thinkpad/e14/intel>` | `lenovo-thinkpad-e14-intel` | | [Lenovo Legion 7 16achg6 (Nvidia)](lenovo/legion/16achg6/nvidia) | `<nixos-hardware/lenovo/legion/16achg6/nvidia>` | `lenovo-legion-16achg6-nvidia` |
| [Lenovo ThinkPad E14 (Intel - Gen 4)](lenovo/thinkpad/e14/intel/gen4) | `<nixos-hardware/lenovo/thinkpad/e14/intel/gen4>` | `lenovo-thinkpad-e14-intel-gen4` | | [Lenovo Legion 7i Pro 16irx8h (Intel)](lenovo/legion/16irx8h) | `<nixos-hardware/lenovo/legion/16irx8h>` | `lenovo-legion-16irx8h` |
| [Lenovo ThinkPad E14 (Intel - Gen 6)](lenovo/thinkpad/e14/intel/gen6) | `<nixos-hardware/lenovo/thinkpad/e14/intel/gen6>` | `lenovo-thinkpad-e14-intel-gen6` | | [Lenovo Legion 7 Pro 16irx9h (Intel)](lenovo/legion/16irx9h) | `<nixos-hardware/lenovo/legion/16irx9h>` | `lenovo-legion-16irx9h` |
| [Lenovo ThinkPad E15 (Intel)](lenovo/thinkpad/e15/intel) | `<nixos-hardware/lenovo/thinkpad/e15/intel>` | `lenovo-thinkpad-e15-intel` | | [Lenovo Legion Slim 5](lenovo/legion/16aph8/) | `<nixos-hardware/lenovo/legion/16aph8>` | `lenovo-legion-16aph8` |
| [Lenovo ThinkPad E470](lenovo/thinkpad/e470) | `<nixos-hardware/lenovo/thinkpad/e470>` | `lenovo-thinkpad-e470` | | [Lenovo Legion Slim 7 Gen 7 (AMD)](lenovo/legion/16arha7/) | `<nixos-hardware/lenovo/legion/16arha7>` | `lenovo-legion-16arha7` |
| [Lenovo ThinkPad E495](lenovo/thinkpad/e495) | `<nixos-hardware/lenovo/thinkpad/e495>` | `lenovo-thinkpad-e495` | | [Lenovo Legion T5 AMR5](lenovo/legion/t526amr5) | `<nixos-hardware/lenovo/legion/t526amr5>` | `lenovo-legion-t526amr5` |
| [Lenovo ThinkPad L13 Yoga](lenovo/thinkpad/l13/yoga) | `<nixos-hardware/lenovo/thinkpad/l13/yoga>` | `lenovo-thinkpad-l13-yoga` | | [Lenovo Legion Y530 15ICH](lenovo/legion/15ich) | `<nixos-hardware/lenovo/legion/15ich>` | `lenovo-legion-y530-15ich` |
| [Lenovo ThinkPad L13](lenovo/thinkpad/l13) | `<nixos-hardware/lenovo/thinkpad/l13>` | `lenovo-thinkpad-l13` | | [Lenovo ThinkPad A475](lenovo/thinkpad/a475) | `<nixos-hardware/lenovo/thinkpad/a475>` | `lenovo-thinkpad-a475` |
| [Lenovo ThinkPad L14 (AMD)](lenovo/thinkpad/l14/amd) | `<nixos-hardware/lenovo/thinkpad/l14/amd>` | `lenovo-thinkpad-l14-amd` | | [Lenovo ThinkPad E14 (AMD)](lenovo/thinkpad/e14/amd) | `<nixos-hardware/lenovo/thinkpad/e14/amd>` | `lenovo-thinkpad-e14-amd` |
| [Lenovo ThinkPad L14 (Intel)](lenovo/thinkpad/l14/intel) | `<nixos-hardware/lenovo/thinkpad/l14/intel>` | `lenovo-thinkpad-l14-intel` | | [Lenovo ThinkPad E14 (Intel - Gen 1)](lenovo/thinkpad/e14/intel) | `<nixos-hardware/lenovo/thinkpad/e14/intel>` | `lenovo-thinkpad-e14-intel` |
| [Lenovo ThinkPad L480](lenovo/thinkpad/l480) | `<nixos-hardware/lenovo/thinkpad/l480>` | `lenovo-thinkpad-l480` | | [Lenovo ThinkPad E14 (Intel - Gen 4)](lenovo/thinkpad/e14/intel/gen4) | `<nixos-hardware/lenovo/thinkpad/e14/intel/gen4>` | `lenovo-thinkpad-e14-intel-gen4` |
| [Lenovo ThinkPad P1 Gen 3](lenovo/thinkpad/p1/3th-gen) | `<nixos-hardware/lenovo/thinkpad/p1/3th-gen>` | `lenovo-thinkpad-p1-gen3` | | [Lenovo ThinkPad E14 (Intel - Gen 6)](lenovo/thinkpad/e14/intel/gen6) | `<nixos-hardware/lenovo/thinkpad/e14/intel/gen6>` | `lenovo-thinkpad-e14-intel-gen6` |
| [Lenovo ThinkPad P14s AMD Gen 1](lenovo/thinkpad/p14s/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen1>` | `lenovo-thinkpad-p14s-amd-gen1` | | [Lenovo ThinkPad E15 (Intel)](lenovo/thinkpad/e15/intel) | `<nixos-hardware/lenovo/thinkpad/e15/intel>` | `lenovo-thinkpad-e15-intel` |
| [Lenovo ThinkPad P14s AMD Gen 2](lenovo/thinkpad/p14s/amd/gen2) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen2>` | `lenovo-thinkpad-p14s-amd-gen2` | | [Lenovo ThinkPad E470](lenovo/thinkpad/e470) | `<nixos-hardware/lenovo/thinkpad/e470>` | `lenovo-thinkpad-e470` |
| [Lenovo ThinkPad P14s AMD Gen 3](lenovo/thinkpad/p14s/amd/gen3) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen3>` | `lenovo-thinkpad-p14s-amd-gen3` | | [Lenovo ThinkPad E495](lenovo/thinkpad/e495) | `<nixos-hardware/lenovo/thinkpad/e495>` | `lenovo-thinkpad-e495` |
| [Lenovo ThinkPad P14s AMD Gen 4](lenovo/thinkpad/p14s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen4>` | `lenovo-thinkpad-p14s-amd-gen4` | | [Lenovo ThinkPad L13 Yoga](lenovo/thinkpad/l13/yoga) | `<nixos-hardware/lenovo/thinkpad/l13/yoga>` | `lenovo-thinkpad-l13-yoga` |
| [Lenovo ThinkPad P14s AMD Gen 5](lenovo/thinkpad/p14s/amd/gen5) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen5>` | `lenovo-thinkpad-p14s-amd-gen5` | | [Lenovo ThinkPad L13](lenovo/thinkpad/l13) | `<nixos-hardware/lenovo/thinkpad/l13>` | `lenovo-thinkpad-l13` |
| [Lenovo ThinkPad P14s Intel Gen 3](lenovo/thinkpad/p14s/intel/gen3) | `<nixos-hardware/lenovo/thinkpad/p14s/intel/gen3>` | `lenovo-thinkpad-p14s-intel-gen3`| | [Lenovo ThinkPad L14 (AMD)](lenovo/thinkpad/l14/amd) | `<nixos-hardware/lenovo/thinkpad/l14/amd>` | `lenovo-thinkpad-l14-amd` |
| [Lenovo ThinkPad P14s Intel Gen 5](lenovo/thinkpad/p14s/intel/gen5) | `<nixos-hardware/lenovo/thinkpad/p14s/intel/gen5>` | `lenovo-thinkpad-p14s-intel-gen5`| | [Lenovo ThinkPad L14 (Intel)](lenovo/thinkpad/l14/intel) | `<nixos-hardware/lenovo/thinkpad/l14/intel>` | `lenovo-thinkpad-l14-intel` |
| [Lenovo ThinkPad P16s AMD Gen 1](lenovo/thinkpad/p16s/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/p16s/amd/gen1>` | `lenovo-thinkpad-p16s-amd-gen1` | | [Lenovo ThinkPad L480](lenovo/thinkpad/l480) | `<nixos-hardware/lenovo/thinkpad/l480>` | `lenovo-thinkpad-l480` |
| [Lenovo ThinkPad P16s AMD Gen 2](lenovo/thinkpad/p16s/amd/gen2) | `<nixos-hardware/lenovo/thinkpad/p16s/amd/gen2>` | `lenovo-thinkpad-p16s-amd-gen2` | | [Lenovo ThinkPad P1 Gen 3](lenovo/thinkpad/p1/3th-gen) | `<nixos-hardware/lenovo/thinkpad/p1/3th-gen>` | `lenovo-thinkpad-p1-gen3` |
| [Lenovo ThinkPad P16s Intel Gen 2](lenovo/thinkpad/p16s/intel/gen2) | `<nixos-hardware/lenovo/thinkpad/p16s/intel/gen2>` | `lenovo-thinkpad-p16s-intel-gen2`| | [Lenovo ThinkPad P14s AMD Gen 1](lenovo/thinkpad/p14s/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen1>` | `lenovo-thinkpad-p14s-amd-gen1` |
| [Lenovo ThinkPad P1](lenovo/thinkpad/p1) | `<nixos-hardware/lenovo/thinkpad/p1>` | `lenovo-thinkpad-p1` | | [Lenovo ThinkPad P14s AMD Gen 2](lenovo/thinkpad/p14s/amd/gen2) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen2>` | `lenovo-thinkpad-p14s-amd-gen2` |
| [Lenovo ThinkPad P43s](lenovo/thinkpad/p43s) | `<nixos-hardware/lenovo/thinkpad/p43s>` | `lenovo-thinkpad-p43s` | | [Lenovo ThinkPad P14s AMD Gen 3](lenovo/thinkpad/p14s/amd/gen3) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen3>` | `lenovo-thinkpad-p14s-amd-gen3` |
| [Lenovo ThinkPad P50](lenovo/thinkpad/p50) | `<nixos-hardware/lenovo/thinkpad/p50>` | `lenovo-thinkpad-p50` | | [Lenovo ThinkPad P14s AMD Gen 4](lenovo/thinkpad/p14s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen4>` | `lenovo-thinkpad-p14s-amd-gen4` |
| [Lenovo ThinkPad P51](lenovo/thinkpad/p51) | `<nixos-hardware/lenovo/thinkpad/p51>` | `lenovo-thinkpad-p51` | | [Lenovo ThinkPad P14s AMD Gen 5](lenovo/thinkpad/p14s/amd/gen5) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen5>` | `lenovo-thinkpad-p14s-amd-gen5` |
| [Lenovo ThinkPad P52](lenovo/thinkpad/p52) | `<nixos-hardware/lenovo/thinkpad/p52>` | `lenovo-thinkpad-p52` | | [Lenovo ThinkPad P14s Intel Gen 2](lenovo/thinkpad/p14s/intel/gen2) | `<nixos-hardware/lenovo/thinkpad/p14s/intel/gen2>` | `lenovo-thinkpad-p14s-intel-gen2` |
| [Lenovo ThinkPad P53](lenovo/thinkpad/p53) | `<nixos-hardware/lenovo/thinkpad/p53>` | `lenovo-thinkpad-p53` | | [Lenovo ThinkPad P14s Intel Gen 3](lenovo/thinkpad/p14s/intel/gen3) | `<nixos-hardware/lenovo/thinkpad/p14s/intel/gen3>` | `lenovo-thinkpad-p14s-intel-gen3` |
| [Lenovo ThinkPad T14 AMD Gen 1](lenovo/thinkpad/t14/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen1>` | `lenovo-thinkpad-t14-amd-gen1` | | [Lenovo ThinkPad P14s Intel Gen 5](lenovo/thinkpad/p14s/intel/gen5) | `<nixos-hardware/lenovo/thinkpad/p14s/intel/gen5>` | `lenovo-thinkpad-p14s-intel-gen5` |
| [Lenovo ThinkPad T14 AMD Gen 2](lenovo/thinkpad/t14/amd/gen2) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen2>` | `lenovo-thinkpad-t14-amd-gen2` | | [Lenovo ThinkPad P16s AMD Gen 1](lenovo/thinkpad/p16s/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/p16s/amd/gen1>` | `lenovo-thinkpad-p16s-amd-gen1` |
| [Lenovo ThinkPad T14 AMD Gen 3](lenovo/thinkpad/t14/amd/gen3) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen3>` | `lenovo-thinkpad-t14-amd-gen3` | | [Lenovo ThinkPad P16s AMD Gen 2](lenovo/thinkpad/p16s/amd/gen2) | `<nixos-hardware/lenovo/thinkpad/p16s/amd/gen2>` | `lenovo-thinkpad-p16s-amd-gen2` |
| [Lenovo ThinkPad T14 AMD Gen 4](lenovo/thinkpad/t14/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen4>` | `lenovo-thinkpad-t14-amd-gen4` | | [Lenovo ThinkPad P16s AMD Gen 4](lenovo/thinkpad/p16s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/p16s/amd/gen4>` | `lenovo-thinkpad-p16s-amd-gen4` |
| [Lenovo ThinkPad T14 AMD Gen 5](lenovo/thinkpad/t14/amd/gen5) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen5>` | `lenovo-thinkpad-t14-amd-gen5` | | [Lenovo ThinkPad P16s Intel Gen 2](lenovo/thinkpad/p16s/intel/gen2) | `<nixos-hardware/lenovo/thinkpad/p16s/intel/gen2>` | `lenovo-thinkpad-p16s-intel-gen2` |
| [Lenovo ThinkPad T14](lenovo/thinkpad/t14) | `<nixos-hardware/lenovo/thinkpad/t14>` | `lenovo-thinkpad-t14` | | [Lenovo ThinkPad P1](lenovo/thinkpad/p1) | `<nixos-hardware/lenovo/thinkpad/p1>` | `lenovo-thinkpad-p1` |
| [Lenovo ThinkPad T14s AMD Gen 1](lenovo/thinkpad/t14s/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/t14s/amd/gen1>` | `lenovo-thinkpad-t14s-amd-gen1` | | [Lenovo ThinkPad P43s](lenovo/thinkpad/p43s) | `<nixos-hardware/lenovo/thinkpad/p43s>` | `lenovo-thinkpad-p43s` |
| [Lenovo ThinkPad T14s AMD Gen 4](lenovo/thinkpad/t14s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/t14s/amd/gen4>` | `lenovo-thinkpad-t14s-amd-gen4` | | [Lenovo ThinkPad P50](lenovo/thinkpad/p50) | `<nixos-hardware/lenovo/thinkpad/p50>` | `lenovo-thinkpad-p50` |
| [Lenovo ThinkPad T14s](lenovo/thinkpad/t14s) | `<nixos-hardware/lenovo/thinkpad/t14s>` | `lenovo-thinkpad-t14s` | | [Lenovo ThinkPad P51](lenovo/thinkpad/p51) | `<nixos-hardware/lenovo/thinkpad/p51>` | `lenovo-thinkpad-p51` |
| [Lenovo ThinkPad T410](lenovo/thinkpad/t410) | `<nixos-hardware/lenovo/thinkpad/t410>` | `lenovo-thinkpad-t410` | | [Lenovo ThinkPad P52](lenovo/thinkpad/p52) | `<nixos-hardware/lenovo/thinkpad/p52>` | `lenovo-thinkpad-p52` |
| [Lenovo ThinkPad T420](lenovo/thinkpad/t420) | `<nixos-hardware/lenovo/thinkpad/t420>` | `lenovo-thinkpad-t420` | | [Lenovo ThinkPad P53](lenovo/thinkpad/p53) | `<nixos-hardware/lenovo/thinkpad/p53>` | `lenovo-thinkpad-p53` |
| [Lenovo ThinkPad T430](lenovo/thinkpad/t430) | `<nixos-hardware/lenovo/thinkpad/t430>` | `lenovo-thinkpad-t430` | | [Lenovo ThinkPad T14 AMD Gen 1](lenovo/thinkpad/t14/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen1>` | `lenovo-thinkpad-t14-amd-gen1` |
| [Lenovo ThinkPad T440p](lenovo/thinkpad/t440p) | `<nixos-hardware/lenovo/thinkpad/t440p>` | `lenovo-thinkpad-t440p` | | [Lenovo ThinkPad T14 AMD Gen 2](lenovo/thinkpad/t14/amd/gen2) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen2>` | `lenovo-thinkpad-t14-amd-gen2` |
| [Lenovo ThinkPad T440s](lenovo/thinkpad/t440s) | `<nixos-hardware/lenovo/thinkpad/t440s>` | `lenovo-thinkpad-t440s` | | [Lenovo ThinkPad T14 AMD Gen 3](lenovo/thinkpad/t14/amd/gen3) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen3>` | `lenovo-thinkpad-t14-amd-gen3` |
| [Lenovo ThinkPad T450s](lenovo/thinkpad/t450s) | `<nixos-hardware/lenovo/thinkpad/t450s>` | `lenovo-thinkpad-t450s` | | [Lenovo ThinkPad T14 AMD Gen 4](lenovo/thinkpad/t14/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen4>` | `lenovo-thinkpad-t14-amd-gen4` |
| [Lenovo ThinkPad T460](lenovo/thinkpad/t460) | `<nixos-hardware/lenovo/thinkpad/t460>` | `lenovo-thinkpad-t460` | | [Lenovo ThinkPad T14 AMD Gen 5](lenovo/thinkpad/t14/amd/gen5) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen5>` | `lenovo-thinkpad-t14-amd-gen5` |
| [Lenovo ThinkPad T460p](lenovo/thinkpad/t460p) | `<nixos-hardware/lenovo/thinkpad/t460p>` | `lenovo-thinkpad-t460p` | | [Lenovo ThinkPad T14](lenovo/thinkpad/t14) | `<nixos-hardware/lenovo/thinkpad/t14>` | `lenovo-thinkpad-t14` |
| [Lenovo ThinkPad T460s](lenovo/thinkpad/t460s) | `<nixos-hardware/lenovo/thinkpad/t460s>` | `lenovo-thinkpad-t460s` | | [Lenovo ThinkPad T14 Intel Gen 1](lenovo/thinkpad/t14/intel/gen1) | `<nixos-hardware/lenovo/thinkpad/t14/intel/gen1>` | `lenovo-thinkpad-t14-intel-gen1` |
| [Lenovo ThinkPad T470s](lenovo/thinkpad/t470s) | `<nixos-hardware/lenovo/thinkpad/t470s>` | `lenovo-thinkpad-t470s` | | [Lenovo ThinkPad T14 Intel Gen 1 (Nvidia)](lenovo/thinkpad/t14/intel/gen1/nvidia) | `<nixos-hardware/lenovo/thinkpad/t14/intel/gen1/nvidia>`| `lenovo-thinkpad-t14-intel-gen1-nvidia`|
| [Lenovo ThinkPad T480](lenovo/thinkpad/t480) | `<nixos-hardware/lenovo/thinkpad/t480>` | `lenovo-thinkpad-t480` | | [Lenovo ThinkPad T14 Intel Gen 6](lenovo/thinkpad/t14/intel/gen6) | `<nixos-hardware/lenovo/thinkpad/t14/intel/gen6>` | `lenovo-thinkpad-t14-intel-gen6` |
| [Lenovo ThinkPad T480s](lenovo/thinkpad/t480s) | `<nixos-hardware/lenovo/thinkpad/t480s>` | `lenovo-thinkpad-t480s` | | [Lenovo ThinkPad T14s AMD Gen 1](lenovo/thinkpad/t14s/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/t14s/amd/gen1>` | `lenovo-thinkpad-t14s-amd-gen1` |
| [Lenovo ThinkPad T490](lenovo/thinkpad/t490) | `<nixos-hardware/lenovo/thinkpad/t490>` | `lenovo-thinkpad-t490` | | [Lenovo ThinkPad T14s AMD Gen 4](lenovo/thinkpad/t14s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/t14s/amd/gen4>` | `lenovo-thinkpad-t14s-amd-gen4` |
| [Lenovo ThinkPad T490s](lenovo/thinkpad/t490s) | `<nixos-hardware/lenovo/thinkpad/t490s>` | `lenovo-thinkpad-t490s` | | [Lenovo ThinkPad T14s](lenovo/thinkpad/t14s) | `<nixos-hardware/lenovo/thinkpad/t14s>` | `lenovo-thinkpad-t14s` |
| [Lenovo ThinkPad T495](lenovo/thinkpad/t495) | `<nixos-hardware/lenovo/thinkpad/t495>` | `lenovo-thinkpad-t495` | | [Lenovo ThinkPad T410](lenovo/thinkpad/t410) | `<nixos-hardware/lenovo/thinkpad/t410>` | `lenovo-thinkpad-t410` |
| [Lenovo ThinkPad T520](lenovo/thinkpad/t520) | `<nixos-hardware/lenovo/thinkpad/t520>` | `lenovo-thinkpad-t520` | | [Lenovo ThinkPad T420](lenovo/thinkpad/t420) | `<nixos-hardware/lenovo/thinkpad/t420>` | `lenovo-thinkpad-t420` |
| [Lenovo ThinkPad T550](lenovo/thinkpad/t550) | `<nixos-hardware/lenovo/thinkpad/t550>` | `lenovo-thinkpad-t550` | | [Lenovo ThinkPad T430](lenovo/thinkpad/t430) | `<nixos-hardware/lenovo/thinkpad/t430>` | `lenovo-thinkpad-t430` |
| [Lenovo ThinkPad T590](lenovo/thinkpad/t590) | `<nixos-hardware/lenovo/thinkpad/t590>` | `lenovo-thinkpad-t590` | | [Lenovo ThinkPad T440p](lenovo/thinkpad/t440p) | `<nixos-hardware/lenovo/thinkpad/t440p>` | `lenovo-thinkpad-t440p` |
| [Lenovo ThinkPad W520](lenovo/thinkpad/w520) | `<nixos-hardware/lenovo/thinkpad/w520>` | `lenovo-thinkpad-w520` | | [Lenovo ThinkPad T440s](lenovo/thinkpad/t440s) | `<nixos-hardware/lenovo/thinkpad/t440s>` | `lenovo-thinkpad-t440s` |
| [Lenovo ThinkPad X1 Yoga](lenovo/thinkpad/x1/yoga) | `<nixos-hardware/lenovo/thinkpad/x1/yoga>` | `lenovo-thinkpad-x1-yoga` | | [Lenovo ThinkPad T450s](lenovo/thinkpad/t450s) | `<nixos-hardware/lenovo/thinkpad/t450s>` | `lenovo-thinkpad-t450s` |
| [Lenovo ThinkPad X1 Yoga Gen 7](lenovo/thinkpad/x1/yoga/7th-gen/) | `<nixos-hardware/lenovo/thinkpad/x1/yoga/7th-gen>` | `lenovo-thinkpad-x1-yoga-7th-gen` | | [Lenovo ThinkPad T460](lenovo/thinkpad/t460) | `<nixos-hardware/lenovo/thinkpad/t460>` | `lenovo-thinkpad-t460` |
| [Lenovo ThinkPad X1 Yoga Gen 8](lenovo/thinkpad/x1/yoga/8th-gen/) | `<nixos-hardware/lenovo/thinkpad/x1/yoga/8th-gen>` | `lenovo-thinkpad-x1-yoga-8th-gen` | | [Lenovo ThinkPad T460p](lenovo/thinkpad/t460p) | `<nixos-hardware/lenovo/thinkpad/t460p>` | `lenovo-thinkpad-t460p` |
| [Lenovo ThinkPad X1 (2nd Gen)](lenovo/thinkpad/x1/2nd-gen) | `<nixos-hardware/lenovo/thinkpad/x1/2nd-gen>` | `lenovo-thinkpad-x1-2nd-gen` | | [Lenovo ThinkPad T460s](lenovo/thinkpad/t460s) | `<nixos-hardware/lenovo/thinkpad/t460s>` | `lenovo-thinkpad-t460s` |
| [Lenovo ThinkPad X1 (6th Gen)](lenovo/thinkpad/x1/6th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/6th-gen>` | `lenovo-thinkpad-x1-6th-gen` | | [Lenovo ThinkPad T470s](lenovo/thinkpad/t470s) | `<nixos-hardware/lenovo/thinkpad/t470s>` | `lenovo-thinkpad-t470s` |
| [Lenovo ThinkPad X1 (7th Gen)](lenovo/thinkpad/x1/7th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/7th-gen>` | `lenovo-thinkpad-x1-7th-gen` | | [Lenovo ThinkPad T480](lenovo/thinkpad/t480) | `<nixos-hardware/lenovo/thinkpad/t480>` | `lenovo-thinkpad-t480` |
| [Lenovo ThinkPad X1 (9th Gen)](lenovo/thinkpad/x1/9th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/9th-gen>` | `lenovo-thinkpad-x1-9th-gen` | | [Lenovo ThinkPad T480s](lenovo/thinkpad/t480s) | `<nixos-hardware/lenovo/thinkpad/t480s>` | `lenovo-thinkpad-t480s` |
| [Lenovo ThinkPad X1 (10th Gen)](lenovo/thinkpad/x1/10th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/10th-gen>` | `lenovo-thinkpad-x1-10th-gen` | | [Lenovo ThinkPad T490](lenovo/thinkpad/t490) | `<nixos-hardware/lenovo/thinkpad/t490>` | `lenovo-thinkpad-t490` |
| [Lenovo ThinkPad X1 (11th Gen)](lenovo/thinkpad/x1/11th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/11th-gen>` | `lenovo-thinkpad-x1-11th-gen` | | [Lenovo ThinkPad T490s](lenovo/thinkpad/t490s) | `<nixos-hardware/lenovo/thinkpad/t490s>` | `lenovo-thinkpad-t490s` |
| [Lenovo ThinkPad X1 (12th Gen)](lenovo/thinkpad/x1/12th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/12th-gen>` | `lenovo-thinkpad-x1-12th-gen` | | [Lenovo ThinkPad T495](lenovo/thinkpad/t495) | `<nixos-hardware/lenovo/thinkpad/t495>` | `lenovo-thinkpad-t495` |
| [Lenovo ThinkPad X1 (13th Gen)](lenovo/thinkpad/x1/13th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/13th-gen>` | `lenovo-thinkpad-x1-13th-gen` | | [Lenovo ThinkPad T520](lenovo/thinkpad/t520) | `<nixos-hardware/lenovo/thinkpad/t520>` | `lenovo-thinkpad-t520` |
| [Lenovo ThinkPad X1 Extreme Gen 2](lenovo/thinkpad/x1-extreme/gen2) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen2>` | `lenovo-thinkpad-x1-extreme-gen2` | | [Lenovo ThinkPad T550](lenovo/thinkpad/t550) | `<nixos-hardware/lenovo/thinkpad/t550>` | `lenovo-thinkpad-t550` |
| [Lenovo ThinkPad X1 Extreme Gen 3](lenovo/thinkpad/x1-extreme/gen3) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen3>` | `lenovo-thinkpad-x1-extreme-gen3` | | [Lenovo ThinkPad T590](lenovo/thinkpad/t590) | `<nixos-hardware/lenovo/thinkpad/t590>` | `lenovo-thinkpad-t590` |
| [Lenovo ThinkPad X1 Extreme Gen 4](lenovo/thinkpad/x1-extreme/gen4) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen4>` | `lenovo-thinkpad-x1-extreme-gen4` | | [Lenovo ThinkPad W520](lenovo/thinkpad/w520) | `<nixos-hardware/lenovo/thinkpad/w520>` | `lenovo-thinkpad-w520` |
| [Lenovo ThinkPad X1 Nano Gen 1](lenovo/thinkpad/x1-nano/gen1) | `<nixos-hardware/lenovo/thinkpad/x1-nano/gen1>` | `lenovo-thinkpad-x1-nano-gen1` | | [Lenovo ThinkPad X1 Yoga](lenovo/thinkpad/x1/yoga) | `<nixos-hardware/lenovo/thinkpad/x1/yoga>` | `lenovo-thinkpad-x1-yoga` |
| [Lenovo ThinkPad X13s](lenovo/thinkpad/x13s) | `<nixos-hardware/lenovo/thinkpad/x13s>` | `lenovo-thinkpad-x13s` | | [Lenovo ThinkPad X1 Yoga Gen 7](lenovo/thinkpad/x1/yoga/7th-gen/) | `<nixos-hardware/lenovo/thinkpad/x1/yoga/7th-gen>` | `lenovo-thinkpad-x1-yoga-7th-gen` |
| [Lenovo ThinkPad X13 Yoga](lenovo/thinkpad/x13/yoga) | `<nixos-hardware/lenovo/thinkpad/x13/yoga>` | `lenovo-thinkpad-x13-yoga` | | [Lenovo ThinkPad X1 Yoga Gen 8](lenovo/thinkpad/x1/yoga/8th-gen/) | `<nixos-hardware/lenovo/thinkpad/x1/yoga/8th-gen>` | `lenovo-thinkpad-x1-yoga-8th-gen` |
| [Lenovo ThinkPad X13 Yoga (3th Gen)](lenovo/thinkpad/x13/yoga/3th-gen) | `<nixos-hardware/lenovo/thinkpad/x13/yoga/3th-gen>` | `lenovo-thinkpad-x13-yoga-3th-gen` | | [Lenovo ThinkPad X1 (2nd Gen)](lenovo/thinkpad/x1/2nd-gen) | `<nixos-hardware/lenovo/thinkpad/x1/2nd-gen>` | `lenovo-thinkpad-x1-2nd-gen` |
| [Lenovo ThinkPad X13 (Intel)](lenovo/thinkpad/x13/intel) | `<nixos-hardware/lenovo/thinkpad/x13/intel>` | `lenovo-thinkpad-x13-intel` | | [Lenovo ThinkPad X1 (6th Gen)](lenovo/thinkpad/x1/6th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/6th-gen>` | `lenovo-thinkpad-x1-6th-gen` |
| [Lenovo ThinkPad X13 (AMD)](lenovo/thinkpad/x13/amd) | `<nixos-hardware/lenovo/thinkpad/x13/amd>` | `lenovo-thinkpad-x13-amd` | | [Lenovo ThinkPad X1 (7th Gen)](lenovo/thinkpad/x1/7th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/7th-gen>` | `lenovo-thinkpad-x1-7th-gen` |
| [Lenovo ThinkPad X140e](lenovo/thinkpad/x140e) | `<nixos-hardware/lenovo/thinkpad/x140e>` | `lenovo-thinkpad-x140e` | | [Lenovo ThinkPad X1 (9th Gen)](lenovo/thinkpad/x1/9th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/9th-gen>` | `lenovo-thinkpad-x1-9th-gen` |
| [Lenovo ThinkPad X200s](lenovo/thinkpad/x200s) | `<nixos-hardware/lenovo/thinkpad/x200s>` | `lenovo-thinkpad-x200s` | | [Lenovo ThinkPad X1 (10th Gen)](lenovo/thinkpad/x1/10th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/10th-gen>` | `lenovo-thinkpad-x1-10th-gen` |
| [Lenovo ThinkPad X220](lenovo/thinkpad/x220) | `<nixos-hardware/lenovo/thinkpad/x220>` | `lenovo-thinkpad-x220` | | [Lenovo ThinkPad X1 (11th Gen)](lenovo/thinkpad/x1/11th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/11th-gen>` | `lenovo-thinkpad-x1-11th-gen` |
| [Lenovo ThinkPad X230](lenovo/thinkpad/x230) | `<nixos-hardware/lenovo/thinkpad/x230>` | `lenovo-thinkpad-x230` | | [Lenovo ThinkPad X1 (12th Gen)](lenovo/thinkpad/x1/12th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/12th-gen>` | `lenovo-thinkpad-x1-12th-gen` |
| [Lenovo ThinkPad X250](lenovo/thinkpad/x250) | `<nixos-hardware/lenovo/thinkpad/x250>` | `lenovo-thinkpad-x250` | | [Lenovo ThinkPad X1 (13th Gen)](lenovo/thinkpad/x1/13th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/13th-gen>` | `lenovo-thinkpad-x1-13th-gen` |
| [Lenovo ThinkPad X260](lenovo/thinkpad/x260) | `<nixos-hardware/lenovo/thinkpad/x260>` | `lenovo-thinkpad-x260` | | [Lenovo ThinkPad X1 Extreme Gen 2](lenovo/thinkpad/x1-extreme/gen2) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen2>` | `lenovo-thinkpad-x1-extreme-gen2` |
| [Lenovo ThinkPad X270](lenovo/thinkpad/x270) | `<nixos-hardware/lenovo/thinkpad/x270>` | `lenovo-thinkpad-x270` | | [Lenovo ThinkPad X1 Extreme Gen 3](lenovo/thinkpad/x1-extreme/gen3) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen3>` | `lenovo-thinkpad-x1-extreme-gen3` |
| [Lenovo ThinkPad X280](lenovo/thinkpad/x280) | `<nixos-hardware/lenovo/thinkpad/x280>` | `lenovo-thinkpad-x280` | | [Lenovo ThinkPad X1 Extreme Gen 4](lenovo/thinkpad/x1-extreme/gen4) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen4>` | `lenovo-thinkpad-x1-extreme-gen4` |
| [Lenovo ThinkPad X390](lenovo/thinkpad/x390) | `<nixos-hardware/lenovo/thinkpad/x390>` | `lenovo-thinkpad-x390` | | [Lenovo ThinkPad X1 Nano Gen 1](lenovo/thinkpad/x1-nano/gen1) | `<nixos-hardware/lenovo/thinkpad/x1-nano/gen1>` | `lenovo-thinkpad-x1-nano-gen1` |
| [Lenovo ThinkPad Z Series](lenovo/thinkpad/z) | `<nixos-hardware/lenovo/thinkpad/z>` | `lenovo-thinkpad-z` | | [Lenovo ThinkPad X13s](lenovo/thinkpad/x13s) | `<nixos-hardware/lenovo/thinkpad/x13s>` | `lenovo-thinkpad-x13s` |
| [Lenovo ThinkPad Z13 Gen 1](lenovo/thinkpad/z/gen1/z13) | `<nixos-hardware/lenovo/thinkpad/z/gen1/z13>` | `lenovo-thinkpad-z-gen1-z13` | | [Lenovo ThinkPad X13 Yoga](lenovo/thinkpad/x13/yoga) | `<nixos-hardware/lenovo/thinkpad/x13/yoga>` | `lenovo-thinkpad-x13-yoga` |
| [Lenovo ThinkPad Z13 Gen 2](lenovo/thinkpad/z/gen2/z13) | `<nixos-hardware/lenovo/thinkpad/z/gen2/z13>` | `lenovo-thinkpad-z-gen2-z13` | | [Lenovo ThinkPad X13 Yoga (3th Gen)](lenovo/thinkpad/x13/yoga/3th-gen) | `<nixos-hardware/lenovo/thinkpad/x13/yoga/3th-gen>` | `lenovo-thinkpad-x13-yoga-3th-gen` |
| [Lenovo XiaoXin Pro 14imh9 2024](lenovo/ideapad/14imh9) | `<nixos-hardware/lenovo/ideapad/14imh9>` | `lenovo-ideapad-14imh9` | | [Lenovo ThinkPad X13 (Intel)](lenovo/thinkpad/x13/intel) | `<nixos-hardware/lenovo/thinkpad/x13/intel>` | `lenovo-thinkpad-x13-intel` |
| [LENOVO Yoga 6 13ALC6 82ND](lenovo/yoga/6/13ALC6) | `<nixos-hardware/lenovo/yoga/6/13ALC6>` | `lenovo-yoga-6-13ALC6` | | [Lenovo ThinkPad X13 (AMD)](lenovo/thinkpad/x13/amd) | `<nixos-hardware/lenovo/thinkpad/x13/amd>` | `lenovo-thinkpad-x13-amd` |
| [LENOVO Yoga Slim 7 Pro-X 14ARH7 82ND](lenovo/yoga/7/14ARH7/amdgpu) | `<nixos-hardware/lenovo/yoga/7/14ARH7/amdgpu>` | `lenovo-yoga-7-14ARH7-amdgpu` | | [Lenovo ThinkPad X140e](lenovo/thinkpad/x140e) | `<nixos-hardware/lenovo/thinkpad/x140e>` | `lenovo-thinkpad-x140e` |
| [LENOVO Yoga Slim 7 Pro-X 14ARH7 82ND](lenovo/yoga/7/14ARH7/nvidia) | `<nixos-hardware/lenovo/yoga/7/14ARH7/nvidia>` | `lenovo-yoga-7-14ARH7-nvidia` | | [Lenovo ThinkPad X200s](lenovo/thinkpad/x200s) | `<nixos-hardware/lenovo/thinkpad/x200s>` | `lenovo-thinkpad-x200s` |
| [Lenovo Yoga Slim 7i Pro X 14IAH7 (Integrated)](lenovo/yoga/7/14IAH7/integrated) | `<nixos-hardware/lenovo/yoga/7/14IAH7/integrated>` | `lenovo-yoga-7-14IAH7-integrated` | | [Lenovo ThinkPad X220](lenovo/thinkpad/x220) | `<nixos-hardware/lenovo/thinkpad/x220>` | `lenovo-thinkpad-x220` |
| [Lenovo Yoga Slim 7i Pro X 14IAH7 (Hybrid)](lenovo/yoga/7/14IAH7/hybrid) | `<nixos-hardware/lenovo/yoga/7/14IAH7/hybrid>` | `lenovo-yoga-7-14IAH7-hybrid` | | [Lenovo ThinkPad X230](lenovo/thinkpad/x230) | `<nixos-hardware/lenovo/thinkpad/x230>` | `lenovo-thinkpad-x230` |
| [Lenovo Yoga Slim 7 14ILL10](lenovo/yoga/7/14ILL10) | `<nixos-hardware/lenovo/yoga/7/14ILL10>` | `lenovo-yoga-7-14ILL10` | | [Lenovo ThinkPad X250](lenovo/thinkpad/x250) | `<nixos-hardware/lenovo/thinkpad/x250>` | `lenovo-thinkpad-x250` |
| [LENOVO Yoga 7 Slim Gen8](lenovo/yoga/7/slim/gen8) | `<nixos-hardware/lenovo/yoga/7/slim/gen8>` | `lenovo-yoga-7-slim-gen8` | | [Lenovo ThinkPad X260](lenovo/thinkpad/x260) | `<nixos-hardware/lenovo/thinkpad/x260>` | `lenovo-thinkpad-x260` |
| [MSI B550-A PRO](msi/b550-a-pro) | `<nixos-hardware/msi/b550-a-pro>` | `msi-b550-a-pro` | | [Lenovo ThinkPad X270](lenovo/thinkpad/x270) | `<nixos-hardware/lenovo/thinkpad/x270>` | `lenovo-thinkpad-x270` |
| [MSI B350 TOMAHAWK](msi/b350-tomahawk) | `<nixos-hardware/msi/b350-tomahawk>` | `msi-b350-tomahawk` | | [Lenovo ThinkPad X280](lenovo/thinkpad/x280) | `<nixos-hardware/lenovo/thinkpad/x280>` | `lenovo-thinkpad-x280` |
| [MSI GS60 2QE](msi/gs60) | `<nixos-hardware/msi/gs60>` | `msi-gs60` | | [Lenovo ThinkPad X390](lenovo/thinkpad/x390) | `<nixos-hardware/lenovo/thinkpad/x390>` | `lenovo-thinkpad-x390` |
| [MSI GL62/CX62](msi/gl62) | `<nixos-hardware/msi/gl62>` | `msi-gl62` | | [Lenovo ThinkPad Z Series](lenovo/thinkpad/z) | `<nixos-hardware/lenovo/thinkpad/z>` | `lenovo-thinkpad-z` |
| [MSI GL65 10SDR-492](msi/gl65/10SDR-492) | `<nixos-hardware/msi/gl65/10SDR-492>` | `msi-gl65-10SDR-492` | | [Lenovo ThinkPad Z13 Gen 1](lenovo/thinkpad/z/gen1/z13) | `<nixos-hardware/lenovo/thinkpad/z/gen1/z13>` | `lenovo-thinkpad-z13-gen1` |
| [Microchip Icicle Kit](microchip/icicle-kit) | `<nixos-hardware/microchip/icicle-kit>` | `microchip-icicle-kit` | | [Lenovo ThinkPad Z13 Gen 2](lenovo/thinkpad/z/gen2/z13) | `<nixos-hardware/lenovo/thinkpad/z/gen2/z13>` | `lenovo-thinkpad-z13-gen2` |
| [Microsoft Surface Go](microsoft/surface/surface-go) | `<nixos-hardware/microsoft/surface/surface-go>` | `microsoft-surface-surface-go` | | [Lenovo XiaoXin Pro 14imh9 2024](lenovo/ideapad/14imh9) | `<nixos-hardware/lenovo/ideapad/14imh9>` | `lenovo-ideapad-14imh9` |
| [Microsoft Surface Pro (Intel)](microsoft/surface/surface-pro-intel) | `<nixos-hardware/microsoft/surface/surface-pro-intel>` | `microsoft-surface-surface-pro-intel` | | [LENOVO Yoga 6 13ALC6 82ND](lenovo/yoga/6/13ALC6) | `<nixos-hardware/lenovo/yoga/6/13ALC6>` | `lenovo-yoga-6-13ALC6` |
| [Microsoft Surface Laptop (AMD)](microsoft/surface/surface-laptop-amd) | `<nixos-hardware/microsoft/surface/surface-laptop-amd>` | `microsoft-surface-surface-laptop-amd` | | [LENOVO Yoga Slim 7 Pro-X 14ARH7 82ND](lenovo/yoga/7/14ARH7/amdgpu) | `<nixos-hardware/lenovo/yoga/7/14ARH7/amdgpu>` | `lenovo-yoga-7-14ARH7-amdgpu` |
| [Microsoft Surface Range (Common Modules)](microsoft/surface/common) | `<nixos-hardware/microsoft/surface/common>` | `microsoft-surface-common` | | [LENOVO Yoga Slim 7 Pro-X 14ARH7 82ND](lenovo/yoga/7/14ARH7/nvidia) | `<nixos-hardware/lenovo/yoga/7/14ARH7/nvidia>` | `lenovo-yoga-7-14ARH7-nvidia` |
| [Microsoft Surface Pro 3](microsoft/surface-pro/3) | `<nixos-hardware/microsoft/surface-pro/3>` | `microsoft-surface-pro-3` | | [Lenovo Yoga Slim 7i Pro X 14IAH7 (Integrated)](lenovo/yoga/7/14IAH7/integrated) | `<nixos-hardware/lenovo/yoga/7/14IAH7/integrated>` | `lenovo-yoga-7-14IAH7-integrated` |
| [Microsoft Surface Pro 9](microsoft/surface-pro/9) | `<nixos-hardware/microsoft/surface-pro/9>` | `microsoft-surface-pro-9` | | [Lenovo Yoga Slim 7i Pro X 14IAH7 (Hybrid)](lenovo/yoga/7/14IAH7/hybrid) | `<nixos-hardware/lenovo/yoga/7/14IAH7/hybrid>` | `lenovo-yoga-7-14IAH7-hybrid` |
| [Morefine M600](morefine/m600) | `<nixos-hardware/morefine/m600>` | `morefine-m600` | | [Lenovo Yoga Slim 7 14ILL10](lenovo/yoga/7/14ILL10) | `<nixos-hardware/lenovo/yoga/7/14ILL10>` | `lenovo-yoga-7-14ILL10` |
| [Minisforum V3](minisforum/v3) | `<nixos-hardware/minisforum/v3>` | `minisforum-v3` | | [LENOVO Yoga 7 Slim Gen8](lenovo/yoga/7/slim/gen8) | `<nixos-hardware/lenovo/yoga/7/slim/gen8>` | `lenovo-yoga-7-slim-gen8` |
| [NXP iMX8 MPlus Evaluation Kit](nxp/imx8mp-evk) | `<nixos-hardware/nxp/imx8mp-evk>` | `nxp-imx8mp-evk` | | [Linglong Nova Studio](linglong/nova-studio) | `<nixos-hardware/linglong/nova-studio>` | `linglong-nova-studio` |
| [NXP iMX8 MQuad Evaluation Kit](nxp/imx8mq-evk) | `<nixos-hardware/nxp/imx8mq-evk>` | `nxp-imx8mq-evk` | | [MSI B550-A PRO](msi/b550-a-pro) | `<nixos-hardware/msi/b550-a-pro>` | `msi-b550-a-pro` |
| [Hardkernel Odroid HC4](hardkernel/odroid-hc4/default.nix) | `<nixos-hardware/hardkernel/odroid-hc4>` | `hardkernel-odroid-hc4` | | [MSI B350 TOMAHAWK](msi/b350-tomahawk) | `<nixos-hardware/msi/b350-tomahawk>` | `msi-b350-tomahawk` |
| [Hardkernel Odroid H3](hardkernel/odroid-h3/default.nix) | `<nixos-hardware/hardkernel/odroid-h3>` | `hardkernel-odroid-h3` | | [MSI B550 TOMAHAWK](msi/b550-tomahawk) | `<nixos-hardware/msi/b550-tomahawk>` | `msi-b550-tomahawk` |
| [Hardkernel Odroid H4](hardkernel/odroid-h4/default.nix) | `<nixos-hardware/hardkernel/odroid-h4>` | `hardkernel-odroid-h4` | | [MSI GS60 2QE](msi/gs60) | `<nixos-hardware/msi/gs60>` | `msi-gs60` |
| [Omen 14-fb0798ng](omen/14-fb0798ng) | `<nixos-hardware/omen/14-fb0798ng>` | `omen-14-fb0798ng` | | [MSI GL62/CX62](msi/gl62) | `<nixos-hardware/msi/gl62>` | `msi-gl62` |
| [Omen 15-ce002ns](omen/15-ce002ns) | `<nixos-hardware/omen/15-ce002ns>` | `omen-15-ce002ns` | | [MSI GL65 10SDR-492](msi/gl65/10SDR-492) | `<nixos-hardware/msi/gl65/10SDR-492>` | `msi-gl65-10SDR-492` |
| [Omen 15-en0010ca](omen/15-en0010ca) | `<nixos-hardware/omen/15-en0010ca>` | `omen-15-en0010ca` | | [Malibal Aon S1](malibal/aon/s1) | | `<nixos-hardware/malibal/aon/s1>` | `malibal-aon-s1` |
| [Omen 16-n0005ne](omen/16-n0005ne) | `<nixos-hardware/omen/16-n0005ne>` | `omen-16-n0005ne` | | [Microchip Icicle Kit](microchip/icicle-kit) | `<nixos-hardware/microchip/icicle-kit>` | `microchip-icicle-kit` |
| [Omen 16-n0280nd](/omen/16-n0280nd) | `<nixos-hardware/omen/16-n0280nd>` | `omen-16-n0280nd` | | [Microsoft Surface Go](microsoft/surface/surface-go) | `<nixos-hardware/microsoft/surface/surface-go>` | `microsoft-surface-go` |
| [Omen 15-en1007sa](omen/15-en1007sa) | `<nixos-hardware/omen/15-en1007sa>` | `omen-15-en1007sa` | | [Microsoft Surface Pro (Intel)](microsoft/surface/surface-pro-intel) | `<nixos-hardware/microsoft/surface/surface-pro-intel>` | `microsoft-surface-pro-intel` |
| [Omen 15-en0002np](omen/15-en0002np) | `<nixos-hardware/omen/15-en0002np>` | `omen-15-en0002np` | | [Microsoft Surface Laptop (AMD)](microsoft/surface/surface-laptop-amd) | `<nixos-hardware/microsoft/surface/surface-laptop-amd>` | `microsoft-surface-laptop-amd` |
| [One-Netbook OneNetbook 4](onenetbook/4) | `<nixos-hardware/onenetbook/4>` | `onenetbook-4` | | [Microsoft Surface Range (Common Modules)](microsoft/surface/common) | `<nixos-hardware/microsoft/surface/common>` | `microsoft-surface-common` |
| [Panasonic Let's Note CF-LX4](panasonic/letsnote/cf-lx4) | `<nixos-hardware/panasonic/letsnote/cf-lx4>` | `panasonic-letsnote-cf-lx4` | | [Microsoft Surface Pro 3](microsoft/surface-pro/3) | `<nixos-hardware/microsoft/surface-pro/3>` | `microsoft-surface-pro-3` |
| [PC Engines APU](pcengines/apu) | `<nixos-hardware/pcengines/apu>` | `pcengines-apu` | | [Microsoft Surface Pro 9](microsoft/surface-pro/9) | `<nixos-hardware/microsoft/surface-pro/9>` | `microsoft-surface-pro-9` |
| [PINE64 Pinebook Pro](pine64/pinebook-pro/) | `<nixos-hardware/pine64/pinebook-pro>` | `pine64-pinebook-pro` | | [Milk-V Pioneer](milkv/pioneer) | `<nixos-hardware/milkv/pioneer>` | `milkv-pioneer` |
| [PINE64 RockPro64](pine64/rockpro64/) | `<nixos-hardware/pine64/rockpro64>` | `pine64-rockpro64` | | [Morefine M600](morefine/m600) | `<nixos-hardware/morefine/m600>` | `morefine-m600` |
| [PINE64 STAR64](pine64/star64/) | `<nixos-hardware/pine64/star64>` | `pine64-star64` | | [Minisforum V3](minisforum/v3) | `<nixos-hardware/minisforum/v3>` | `minisforum-v3` |
| [Protectli VP4670](protectli/vp4670/) | `<nixos-hardware/protectli/vp4670>` | `protectli-vp4670` | | [MNT Reform with RK3588 module](mnt/reform/rk3588) | `<nixos-hardware/mnt/reform/rk3588` | `mnt-reform-rk3588` |
| [Purism Librem 13v3](purism/librem/13v3) | `<nixos-hardware/purism/librem/13v3>` | `purism-librem-13v3` | | [MECHREVO Yilong15Pro](mechrevo/GM5HG0A) | `<nixos-hardware/mechrevo/GM5HG0A>` | `mechrevo-gm5hg0a` |
| [Purism Librem 15v3](purism/librem/15v3) | `<nixos-hardware/purism/librem/15v3>` | `purism-librem-15v3` | | [NXP iMX8 MPlus Evaluation Kit](nxp/imx8mp-evk) | `<nixos-hardware/nxp/imx8mp-evk>` | `nxp-imx8mp-evk` |
| [Purism Librem 5r4](purism/librem/5r4) | `<nixos-hardware/purism/librem/5r4>` | `purism-librem-5r4` | | [NXP iMX8 MQuad Evaluation Kit](nxp/imx8mq-evk) | `<nixos-hardware/nxp/imx8mq-evk>` | `nxp-imx8mq-evk` |
| [Radxa ROCK 4C+](radxa/rock-4c-plus) | `<nixos-hardware/radxa/rock-4c-plus>` | `rock-4c-plus` | | [Hardkernel Odroid HC4](hardkernel/odroid-hc4/default.nix) | `<nixos-hardware/hardkernel/odroid-hc4>` | `hardkernel-odroid-hc4` |
| [Radxa ROCK 5 Model B](radxa/rock-5b) | `<nixos-hardware/radxa/rock-5b>` | `rock-5b` | | [Hardkernel Odroid H3](hardkernel/odroid-h3/default.nix) | `<nixos-hardware/hardkernel/odroid-h3>` | `hardkernel-odroid-h3` |
| [Radxa ROCK Pi 4](radxa/rock-pi-4) | `<nixos-hardware/radxa/rock-pi-4>` | `rock-pi-4` | | [Hardkernel Odroid H4](hardkernel/odroid-h4/default.nix) | `<nixos-hardware/hardkernel/odroid-h4>` | `hardkernel-odroid-h4` |
| [Radxa ROCK Pi E](radxa/rock-pi-e) | `<nixos-hardware/radxa/rock-pi-e>` | `rock-pi-e`| | [Olimex TERES-I](olimex/teres_i) | `<nixos-hardware/olimex/teres_i>` | `olimex-teres_i` |
| [Raspberry Pi 2](raspberry-pi/2) | `<nixos-hardware/raspberry-pi/2>` | `raspberry-pi-2`| | [Omen 14-fb0798ng](omen/14-fb0798ng) | `<nixos-hardware/omen/14-fb0798ng>` | `omen-14-fb0798ng` |
| [Raspberry Pi 3](raspberry-pi/3) | `<nixos-hardware/raspberry-pi/3>` | `raspberry-pi-3`| | [Omen 15-ce002ns](omen/15-ce002ns) | `<nixos-hardware/omen/15-ce002ns>` | `omen-15-ce002ns` |
| [Raspberry Pi 4](raspberry-pi/4) | `<nixos-hardware/raspberry-pi/4>` | `raspberry-pi-4`| | [Omen 15-en0010ca](omen/15-en0010ca) | `<nixos-hardware/omen/15-en0010ca>` | `omen-15-en0010ca` |
| [Raspberry Pi 5](raspberry-pi/5) | `<nixos-hardware/raspberry-pi/5>` | `raspberry-pi-5`| | [Omen 16-n0005ne](omen/16-n0005ne) | `<nixos-hardware/omen/16-n0005ne>` | `omen-16-n0005ne` |
| [Samsung Series 9 NP900X3C](samsung/np900x3c) | `<nixos-hardware/samsung/np900x3c>` | `samsung-np900x3c`| | [Omen 16-n0280nd](/omen/16-n0280nd) | `<nixos-hardware/omen/16-n0280nd>` | `omen-16-n0280nd` |
| [Slimbook Hero RPL-RTX](slimbook/hero/rpl-rtx) | `<nixos-hardware/slimbook/hero/rpl-rtx>` | `slimbook-hero-rpl-rtx`| | [Omen 15-en1007sa](omen/15-en1007sa) | `<nixos-hardware/omen/15-en1007sa>` | `omen-15-en1007sa` |
| [StarFive VisionFive v1](starfive/visionfive/v1) | `<nixos-hardware/starfive/visionfive/v1>` | `starfive-visionfive-v1`| | [Omen 15-en0002np](omen/15-en0002np) | `<nixos-hardware/omen/15-en0002np>` | `omen-15-en0002np` |
| [StarFive VisionFive 2](starfive/visionfive/v2) | `<nixos-hardware/starfive/visionfive/v2>` | `starfive-visionfive-2`| | [One-Netbook OneNetbook 4](onenetbook/4) | `<nixos-hardware/onenetbook/4>` | `onenetbook-4` |
| [StarLabs StarLite 5 (I5)](starlabs/starlite/i5) | `<nixos-hardware/starlabs/starlite/i5>` | `starlabs-starlite-i5`| | [Panasonic Let's Note CF-LX3](panasonic/letsnote/cf-lx3) | `<nixos-hardware/panasonic/letsnote/cf-lx3>` | `panasonic-letsnote-cf-lx3` |
| [Supermicro A1SRi-2758F](supermicro/a1sri-2758f) | `<nixos-hardware/supermicro/a1sri-2758f>` | `supermicro-a1sri-2758f`| | [Panasonic Let's Note CF-LX4](panasonic/letsnote/cf-lx4) | `<nixos-hardware/panasonic/letsnote/cf-lx4>` | `letsnote-cf-lx4` |
| [Supermicro M11SDV-8C-LN4F](supermicro/m11sdv-8c-ln4f) | `<nixos-hardware/supermicro/m11sdv-8c-ln4f>` | `supermicro-m11sdv-8c-ln4f`| | [PC Engines APU](pcengines/apu) | `<nixos-hardware/pcengines/apu>` | `pcengines-apu` |
| [Supermicro X10SLL-F](supermicro/x10sll-f) | `<nixos-hardware/supermicro/x10sll-f>` | `supermicro-x10sll-f`| | [PINE64 Pinebook Pro](pine64/pinebook-pro/) | `<nixos-hardware/pine64/pinebook-pro>` | `pine64-pinebook-pro` |
| [Supermicro X12SCZ-TLN4F](supermicro/x12scz-tln4f) | `<nixos-hardware/supermicro/x12scz-tln4f>` | `supermicro-x12scz-tln4f`| | [PINE64 RockPro64](pine64/rockpro64/) | `<nixos-hardware/pine64/rockpro64>` | `pine64-rockpro64` |
| [System76 (generic)](system76) | `<nixos-hardware/system76>` | `system76`| | [PINE64 STAR64](pine64/star64/) | `<nixos-hardware/pine64/star64>` | `pine64-star64` |
| [System76 Darter Pro 6](system76/darp6) | `<nixos-hardware/system76/darp6>` | `system76-darp6`| | [Protectli VP4670](protectli/vp4670/) | `<nixos-hardware/protectli/vp4670>` | `protectli-vp4670` |
| [System76 Gazelle 18](system76/gaze18) | `<nixos-hardware/system76/gaze18>` | `system76-gaze18`| | [Purism Librem 13v3](purism/librem/13v3) | `<nixos-hardware/purism/librem/13v3>` | `purism-librem-13v3` |
| [System76 Galago Pro 5](system76/galp5-1650) | `<nixos-hardware/system76/galp5-1650>` | `system76-galp5-1650`| | [Purism Librem 15v3](purism/librem/15v3) | `<nixos-hardware/purism/librem/15v3>` | `purism-librem-15v3` |
| [Toshiba Chromebook 2 `swanky`](toshiba/swanky) | `<nixos-hardware/toshiba/swanky>` | `toshiba-swanky`| | [Purism Librem 5r4](purism/librem/5r4) | `<nixos-hardware/purism/librem/5r4>` | `purism-librem-5r4` |
| [Tuxedo InfinityBook v4](tuxedo/infinitybook/v4) | `<nixos-hardware/tuxedo/infinitybook/v4>` | `tuxedo-infinitybook-v4`| | [Radxa ROCK 4C+](radxa/rock-4c-plus) | `<nixos-hardware/radxa/rock-4c-plus>` | `rock-4c-plus` |
| [TUXEDO Aura 15 - Gen1](tuxedo/aura/15/gen1) | `<nixos-hardware/tuxedo/aura/15/gen1>` | `tuxedo-aura-15-gen1`| | [Radxa ROCK 5 Model B](radxa/rock-5b) | `<nixos-hardware/radxa/rock-5b>` | `rock-5b` |
| [TUXEDO InfinityBook Pro 14 - Gen7](tuxedo/infinitybook/pro14/gen7) | `<nixos-hardware/tuxedo/infinitybook/pro14/gen7>` | `tuxedo-infinitybook-pro14-gen7`| | [Radxa ROCK Pi 4](radxa/rock-pi-4) | `<nixos-hardware/radxa/rock-pi-4>` | `rock-pi-4` |
| [TUXEDO InfinityBook Pro 14 - Gen9 - AMD](tuxedo/infinitybook/pro14/gen9/amd) | `<nixos-hardware/tuxedo/infinitybook/pro14/gen9/amd>` | `tuxedo-infinitybook-pro14-gen9-amd`| | [Radxa ROCK Pi E](radxa/rock-pi-e) | `<nixos-hardware/radxa/rock-pi-e>` | `rock-pi-e` |
| [TUXEDO InfinityBook Pro 14 - Gen9 - INTEL](tuxedo/infinitybook/pro14/gen9/intel) | `<nixos-hardware/tuxedo/infinitybook/pro14/gen9/intel>` | `tuxedo-infinitybook-pro14-gen9-intel`| | [Raspberry Pi 2](raspberry-pi/2) | `<nixos-hardware/raspberry-pi/2>` | `raspberry-pi-2` |
| [TUXEDO Pulse 14 - Gen3](tuxedo/pulse/14/gen3) | `<nixos-hardware/tuxedo/pulse/14/gen3>` | `tuxedo-pulse-14-gen3`| | [Raspberry Pi 3](raspberry-pi/3) | `<nixos-hardware/raspberry-pi/3>` | `raspberry-pi-3` |
| [TUXEDO Pulse 15 - Gen2](tuxedo/pulse/15/gen2) | `<nixos-hardware/tuxedo/pulse/15/gen2>` | `tuxedo-pulse-15-gen2`| | [Raspberry Pi 4](raspberry-pi/4) | `<nixos-hardware/raspberry-pi/4>` | `raspberry-pi-4` |
| [Xiaomi Redmibook 15 Pro 2021](xiaomi/redmibook/15-pro-2021) | `<nixos-hardware/xiaomi/redmibook/15-pro-2021>` | `xiaomi-redmibook-15-pro-2021`| | [Raspberry Pi 5](raspberry-pi/5) | `<nixos-hardware/raspberry-pi/5>` | `raspberry-pi-5` |
| [Xiaomi Redmibook 16 Pro 2024](xiaomi/redmibook/16-pro-2024) | `<nixos-hardware/xiaomi/redmibook/16-pro-2024>` | `xiaomi-redmibook-16-pro-2024`| | [Samsung Series 9 NP900X3C](samsung/np900x3c) | `<nixos-hardware/samsung/np900x3c>` | `samsung-np900x3c` |
| [Slimbook Hero RPL-RTX](slimbook/hero/rpl-rtx) | `<nixos-hardware/slimbook/hero/rpl-rtx>` | `slimbook-hero-rpl-rtx` |
| [StarFive VisionFive v1](starfive/visionfive/v1) | `<nixos-hardware/starfive/visionfive/v1>` | `starfive-visionfive-v1` |
| [StarFive VisionFive 2](starfive/visionfive/v2) | `<nixos-hardware/starfive/visionfive/v2>` | `starfive-visionfive-2` |
| [StarLabs StarLite 5 (I5)](starlabs/starlite/i5) | `<nixos-hardware/starlabs/starlite/i5>` | `starlabs-starlite-i5` |
| [Supermicro A1SRi-2758F](supermicro/a1sri-2758f) | `<nixos-hardware/supermicro/a1sri-2758f>` | `supermicro-a1sri-2758f` |
| [Supermicro M11SDV-8C-LN4F](supermicro/m11sdv-8c-ln4f) | `<nixos-hardware/supermicro/m11sdv-8c-ln4f>` | `supermicro-m11sdv-8c-ln4f` |
| [Supermicro X10SLL-F](supermicro/x10sll-f) | `<nixos-hardware/supermicro/x10sll-f>` | `supermicro-x10sll-f` |
| [Supermicro X12SCZ-TLN4F](supermicro/x12scz-tln4f) | `<nixos-hardware/supermicro/x12scz-tln4f>` | `supermicro-x12scz-tln4f` |
| [System76 (generic)](system76) | `<nixos-hardware/system76>` | `system76` |
| [System76 Darter Pro 6](system76/darp6) | `<nixos-hardware/system76/darp6>` | `system76-darp6` |
| [System76 Gazelle 18](system76/gaze18) | `<nixos-hardware/system76/gaze18>` | `system76-gaze18` |
| [System76 Galago Pro 5](system76/galp5-1650) | `<nixos-hardware/system76/galp5-1650>` | `system76-galp5-1650` |
| [System76 Thelio Mega](system76/thelio-mega) | `<nixos-hardware/system76/thelio-mega>` | `system76-thelio-mega` |
| [Toshiba Chromebook 2 `swanky`](toshiba/swanky) | `<nixos-hardware/toshiba/swanky>` | `toshiba-swanky` |
| [Tuxedo InfinityBook v4](tuxedo/infinitybook/v4) | `<nixos-hardware/tuxedo/infinitybook/v4>` | `tuxedo-infinitybook-v4` |
| [TUXEDO Aura 15 - Gen1](tuxedo/aura/15/gen1) | `<nixos-hardware/tuxedo/aura/15/gen1>` | `tuxedo-aura-15-gen1` |
| [TUXEDO InfinityBook Pro 14 - Gen7](tuxedo/infinitybook/pro14/gen7) | `<nixos-hardware/tuxedo/infinitybook/pro14/gen7>` | `tuxedo-infinitybook-pro14-gen7` |
| [TUXEDO InfinityBook Pro 14 - Gen9 - AMD](tuxedo/infinitybook/pro14/gen9/amd) | `<nixos-hardware/tuxedo/infinitybook/pro14/gen9/amd>` | `tuxedo-infinitybook-pro14-gen9-amd` |
| [TUXEDO InfinityBook Pro 14 - Gen9 - INTEL](tuxedo/infinitybook/pro14/gen9/intel) | `<nixos-hardware/tuxedo/infinitybook/pro14/gen9/intel>` | `tuxedo-infinitybook-pro14-gen9-intel` |
| [TUXEDO Pulse 14 - Gen3](tuxedo/pulse/14/gen3) | `<nixos-hardware/tuxedo/pulse/14/gen3>` | `tuxedo-pulse-14-gen3` |
| [TUXEDO Pulse 15 - Gen2](tuxedo/pulse/15/gen2) | `<nixos-hardware/tuxedo/pulse/15/gen2>` | `tuxedo-pulse-15-gen2` |
| [Xiaomi Redmibook 15 Pro 2021](xiaomi/redmibook/15-pro-2021) | `<nixos-hardware/xiaomi/redmibook/15-pro-2021>` | `xiaomi-redmibook-15-pro-2021` |
| [Xiaomi Redmibook 16 Pro 2024](xiaomi/redmibook/16-pro-2024) | `<nixos-hardware/xiaomi/redmibook/16-pro-2024>` | `xiaomi-redmibook-16-pro-2024` |

View file

@ -1,10 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
boot.kernelParams = [
"hid_apple.iso_layout=0"
];
hardware.facetimehd.enable = lib.mkDefault (config.nixpkgs.config.allowUnfree or false); hardware.facetimehd.enable = lib.mkDefault (config.nixpkgs.config.allowUnfree or false);
services.mbpfan.enable = lib.mkDefault true; services.mbpfan.enable = lib.mkDefault true;

View file

@ -29,7 +29,6 @@
"bcma" "bcma"
]; ];
kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.0") pkgs.linuxPackages_latest; kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.0") pkgs.linuxPackages_latest;
extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
}; };
hardware = { hardware = {

View file

@ -0,0 +1,9 @@
{
...
}:
{
imports = [
../.
];
}

View file

@ -1,8 +1,10 @@
{ lib, ... }: { config, lib, ... }:
{ {
imports = [ ../. ]; imports = [ ../. ];
boot.blacklistedKernelModules = [ "bcma" ];
boot = { boot = {
# Divides power consumption by two. # Divides power consumption by two.
kernelParams = [ "acpi_osi=" ]; kernelParams = [ "acpi_osi=" ];

View file

@ -6,9 +6,5 @@
../../../common/cpu/intel/haswell ../../../common/cpu/intel/haswell
]; ];
# broadcom-wl
hardware.enableRedistributableFirmware = lib.mkDefault true; hardware.enableRedistributableFirmware = lib.mkDefault true;
# nixos-generate-config doesn't detect this automatically.
boot.extraModulePackages = with config.boot.kernelPackages; [ broadcom_sta ];
boot.kernelModules = [ "wl" ];
} }

View file

@ -0,0 +1,42 @@
# Apple MacBookPro11,4
[Product page](https://support.apple.com/en-us/111955)
## Tested Hardware
```console
foo@bar:~$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Crystal Well DRAM Controller [8086:0d04] (rev 08)
00:01.0 PCI bridge [0604]: Intel Corporation Crystal Well PCI Express x16 Controller [8086:0d01] (rev 08)
00:01.1 PCI bridge [0604]: Intel Corporation Crystal Well PCI Express x8 Controller [8086:0d05] (rev 08)
00:02.0 VGA compatible controller [0300]: Intel Corporation Crystal Well Integrated Graphics Controller [8086:0d26] (rev 08)
00:03.0 Audio device [0403]: Intel Corporation Crystal Well HD Audio Controller [8086:0d0c] (rev 08)
00:14.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI [8086:8c31] (rev 05)
00:16.0 Communication controller [0780]: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 [8086:8c3a] (rev 04)
00:1b.0 Audio device [0403]: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller [8086:8c20] (rev 05)
00:1c.0 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 [8086:8c10] (rev d5)
00:1c.2 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 [8086:8c14] (rev d5)
00:1c.3 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 [8086:8c16] (rev d5)
00:1f.0 ISA bridge [0601]: Intel Corporation HM87 Express LPC Controller [8086:8c4b] (rev 05)
00:1f.3 SMBus [0c05]: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller [8086:8c22] (rev 05)
00:1f.6 Signal processing controller [1180]: Intel Corporation 8 Series Chipset Family Thermal Management Controller [8086:8c24] (rev 05)
01:00.0 SATA controller [0106]: Samsung Electronics Co Ltd S4LN058A01[SSUBX] AHCI SSD Controller (Apple slot) [144d:a801] (rev 01)
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)
04:00.0 Multimedia controller [0480]: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera [14e4:1570]
05:00.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
06:00.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
06:03.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
06:04.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
06:05.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
06:06.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
07:00.0 System peripheral [0880]: Intel Corporation DSL5520 Thunderbolt 2 NHI [Falcon Ridge 4C 2013] [8086:156c]
```
## Tested Nix Configuration
- system: `"x86_64-linux"`
- host os: `Linux 6.12.36, NixOS, 25.11 (Xantusia), 25.11.20250708.9807714`
- multi-user?: `yes`
- sandbox: `yes`
- version: `nix-env (Nix) 2.28.4`
- channels(root): `"nixos"`
- nixpkgs: `/nix/store/bgl6ldj5ihbwcq8p42z3a0qzgqafgk2b-source`

View file

@ -0,0 +1,17 @@
{
lib,
config,
pkgs,
modulesPath,
...
}:
{
imports = [
../.
../../../common/cpu/intel/haswell
../../../common/pc/ssd
"${modulesPath}/hardware/network/broadcom-43xx.nix"
];
hardware.graphics.enable = lib.mkDefault true;
}

View file

@ -9,7 +9,6 @@ This means it might be required to restart your wifi deamon i.e. wpa_supplicant:
powerManagement.powerUpCommands = '' powerManagement.powerUpCommands = ''
${pkgs.systemd}/bin/systemctl restart wpa_supplicant.service ${pkgs.systemd}/bin/systemctl restart wpa_supplicant.service
''; '';
};
``` ```
You can apply this to your network management software of choice. You can apply this to your network management software of choice.

View file

@ -12,7 +12,6 @@
"b43-firmware" "b43-firmware"
]; ];
} }
``` ```
### For all packages ### For all packages

View file

@ -1,5 +1,5 @@
{ {
"base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/8ec11f3aaa314d25e18842851a2124c0031e2e3f/", "base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/6b41c3fd65913e0fa3592ad16ff4a3a5b01efc7a/",
"patches": [ "patches": [
{ {
"name": "1001-Add-apple-bce-driver.patch", "name": "1001-Add-apple-bce-driver.patch",
@ -37,29 +37,9 @@
"name": "1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bar.patch", "name": "1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bar.patch",
"hash": "sha256-dIzEOj89D2rIEc2/mjq3TkIfI3ZHzu0VRDQQOzp+Snc=" "hash": "sha256-dIzEOj89D2rIEc2/mjq3TkIfI3ZHzu0VRDQQOzp+Snc="
}, },
{
"name": "1013-lib-vsprintf-Add-support-for-generic-FourCCs-by-exte.patch",
"hash": "sha256-g8M3j1ZPND10/LtPD/txaSoJGV9Lp+g5bgn+vQc56p4="
},
{
"name": "1014-printf-add-tests-for-generic-FourCCs.patch",
"hash": "sha256-5Z4cFBMAY695OEU/CxiGQkUz68zmKdxssD+yp1DCYgs="
},
{
"name": "1015-drm-appletbdrm-use-p4cl-instead-of-p4cc.patch",
"hash": "sha256-rZej0ZbpPv+8NROuYnf4Jpu9scCsmbKWyz7yf5A3G3s="
},
{
"name": "1016-vsprintf-Use-p4chR-instead-of-p4cn-for-reading-data-.patch",
"hash": "sha256-/Ork2CmYk6SG213Owk+nGsw7KTEVDLRzQTeWcKrPZGw="
},
{
"name": "1017-checkpatch-remove-p4cn.patch",
"hash": "sha256-lnMnjnMiR9WSNf/XYsiOwFdC9xKv8zSluWiR584xFPU="
},
{ {
"name": "2008-i915-4-lane-quirk-for-mbp15-1.patch", "name": "2008-i915-4-lane-quirk-for-mbp15-1.patch",
"hash": "sha256-Ui9tK4IGSWfEscmD92emX/NfulO0m8zwLc9ivIClCFQ=" "hash": "sha256-PjMVt4u505PXnKFpojov0Uwhj0KxZas1E4NYJGI6lQ4="
}, },
{ {
"name": "2009-apple-gmux-allow-switching-to-igpu-at-probe.patch", "name": "2009-apple-gmux-allow-switching-to-igpu-at-probe.patch",
@ -103,7 +83,7 @@
}, },
{ {
"name": "4001-asahi-trackpad.patch", "name": "4001-asahi-trackpad.patch",
"hash": "sha256-QM/FtDft4N4imJBuEHg6cH3e8vEyMPLt0alDhugLPy8=" "hash": "sha256-nOpQ3t+QQXco6p7C03fM5EZ3ZfnzwC6UCFwHQd1EnGE="
}, },
{ {
"name": "4002-HID-quirks-remove-T2-devices-from-hid_mouse_ignore_l.patch", "name": "4002-HID-quirks-remove-T2-devices-from-hid_mouse_ignore_l.patch",
@ -115,7 +95,7 @@
}, },
{ {
"name": "4004-HID-magicmouse-Add-support-for-trackpads-found-on-T2.patch", "name": "4004-HID-magicmouse-Add-support-for-trackpads-found-on-T2.patch",
"hash": "sha256-HcPX7gY3hnlwM/tY06pbtXnch04AqwHgC596E8ZqGY8=" "hash": "sha256-dNrpDlIE9SaQUOntVQHMOyj7T/dsuRemN56yskKWue0="
}, },
{ {
"name": "4005-HID-apple-Add-necessary-IDs-and-support-for-replacem.patch", "name": "4005-HID-apple-Add-necessary-IDs-and-support-for-replacem.patch",
@ -123,15 +103,15 @@
}, },
{ {
"name": "4006-HID-magicmouse-Add-MacBookPro15-1-replacement-trackp.patch", "name": "4006-HID-magicmouse-Add-MacBookPro15-1-replacement-trackp.patch",
"hash": "sha256-uAlT/4ADwYyKvbuPQaGwqCjZ2/myruC63etVV6cfFLk=" "hash": "sha256-mMqHhxig+Z9eVPaa1qfcNVCRX16B6/KuEd1KnSZMLLk="
}, },
{ {
"name": "7001-drm-i915-fbdev-Discard-BIOS-framebuffers-exceeding-h.patch", "name": "7001-drm-i915-fbdev-Discard-BIOS-framebuffers-exceeding-h.patch",
"hash": "sha256-O6RHFxmKZn7aCq1D+r5z2T3jLt0r5+01EABD9rs0E5M=" "hash": "sha256-/EKN7JsAxcpAgfJFtPp2NLYaGqQ0kl8wjJEXifSzJpY="
}, },
{ {
"name": "8001-Add-APFS-driver.patch", "name": "8001-Add-APFS-driver.patch",
"hash": "sha256-io17Kk6FDscDoDshddK9TqSPuXVFTzjvRUwOGTl5cjM=" "hash": "sha256-uR5hg75SFFWzfrKyU5UnzPL4U7LkjqGs44rkxM7ur8o="
}, },
{ {
"name": "8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch", "name": "8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch",

View file

@ -1,6 +1,6 @@
{ callPackage, linux_6_15, ... }@args: { callPackage, linux_6_16, ... }@args:
callPackage ./generic.nix args { callPackage ./generic.nix args {
kernel = linux_6_15; kernel = linux_6_16;
patchesFile = ./latest.json; patchesFile = ./latest.json;
} }

View file

@ -1,5 +1,5 @@
{ {
"base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/e08a76e1f1234885b9b68be6c843bf91833e8b0a/", "base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/5eaf1261d069bbc67aba7fe2737a5fe981e05a9e/",
"patches": [ "patches": [
{ {
"name": "1001-Add-apple-bce-driver.patch", "name": "1001-Add-apple-bce-driver.patch",
@ -49,10 +49,6 @@
"name": "1013-lib-vsprintf-Add-support-for-generic-FourCCs-by-exte.patch", "name": "1013-lib-vsprintf-Add-support-for-generic-FourCCs-by-exte.patch",
"hash": "sha256-h3gxaKtvdm/GSd+AP1sPC9avWHOsceUxTmoua/3rIf4=" "hash": "sha256-h3gxaKtvdm/GSd+AP1sPC9avWHOsceUxTmoua/3rIf4="
}, },
{
"name": "1014-drm-format-helper-Add-conversion-from-XRGB8888-to-BG.patch",
"hash": "sha256-Ky19+cCiYDaHBh2o5IhZO8J1ExDT7o8K9cgPz+AL8Cg="
},
{ {
"name": "1015-drm-tiny-add-driver-for-Apple-Touch-Bars-in-x86-Macs.patch", "name": "1015-drm-tiny-add-driver-for-Apple-Touch-Bars-in-x86-Macs.patch",
"hash": "sha256-tDjK/VipVQbuNOURW38gssqeRLy3s8I+DVq0+4zGnHs=" "hash": "sha256-tDjK/VipVQbuNOURW38gssqeRLy3s8I+DVq0+4zGnHs="
@ -103,7 +99,7 @@
}, },
{ {
"name": "4001-asahi-trackpad.patch", "name": "4001-asahi-trackpad.patch",
"hash": "sha256-NOuGgUxDQEfFPlij/EnhWmgqeG3/l+j+r2T1YJG7raY=" "hash": "sha256-kfAYVovukZLD5ocHQxhoHJSa9c5XAJ1GhH1RlzGkS+k="
}, },
{ {
"name": "4002-HID-quirks-remove-T2-devices-from-hid_mouse_ignore_l.patch", "name": "4002-HID-quirks-remove-T2-devices-from-hid_mouse_ignore_l.patch",
@ -131,7 +127,7 @@
}, },
{ {
"name": "8001-Add-APFS-driver.patch", "name": "8001-Add-APFS-driver.patch",
"hash": "sha256-O3RNtpeZQENPEfyYi/0ZTLhAWBAw6pmxMS30NUxOTdk=" "hash": "sha256-QpIPsMjWNPOkw6rSKn7rW0Fmx9HUwJaiGy3pZeT5Fd0="
}, },
{ {
"name": "8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch", "name": "8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch",

View file

@ -6,7 +6,8 @@
}: }:
let let
p = pkgs.writeScriptBin "charge-upto" '' p = pkgs.writeScriptBin "charge-upto" ''
echo ''${0:-100} > /sys/class/power_supply/BAT?/charge_control_end_threshold #!${pkgs.bash}/bin/bash
echo ''${1:-100} > /sys/class/power_supply/BAT?/charge_control_end_threshold
''; '';
cfg = config.hardware.asus.battery; cfg = config.hardware.asus.battery;
in in
@ -30,10 +31,14 @@ in
wantedBy = [ wantedBy = [
"local-fs.target" "local-fs.target"
"suspend.target" "suspend.target"
"suspend-then-hibernate.target"
"hibernate.target"
]; ];
after = [ after = [
"local-fs.target" "local-fs.target"
"suspend.target" "suspend.target"
"suspend-then-hibernate.target"
"hibernate.target"
]; ];
description = "Set the battery charge threshold to ${toString cfg.chargeUpto}%"; description = "Set the battery charge threshold to ${toString cfg.chargeUpto}%";
startLimitBurst = 5; startLimitBurst = 5;

View file

@ -25,10 +25,6 @@
lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8")
[ "rtc_cmos.use_acpi_alarm=1" ]; [ "rtc_cmos.use_acpi_alarm=1" ];
# AMD has better battery life with PPD over TLP:
# https://community.frame.work/t/responded-amd-7040-sleep-states/38101/13
services.power-profiles-daemon.enable = lib.mkDefault true;
# Adds the missing asus functionality to Linux. # Adds the missing asus functionality to Linux.
# https://asus-linux.org/manual/asusctl-manual/ # https://asus-linux.org/manual/asusctl-manual/
services = { services = {
@ -39,6 +35,7 @@
}; };
hardware.nvidia = { hardware.nvidia = {
powerManagement.enable = lib.mkDefault true;
modesetting.enable = lib.mkDefault true; modesetting.enable = lib.mkDefault true;
open = lib.mkDefault false; open = lib.mkDefault false;
nvidiaSettings = lib.mkDefault true; nvidiaSettings = lib.mkDefault true;

View file

@ -0,0 +1,16 @@
{ ... }:
{
imports = [
../../common/cpu/intel/skylake
../../common/gpu/nvidia/maxwell
../../common/gpu/nvidia/prime.nix
../../common/pc/laptop
../../common/pc/ssd
];
hardware.nvidia.prime = {
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
}

View file

@ -0,0 +1,18 @@
{ ... }:
{
imports = [
../../../common/cpu/amd
../../../common/cpu/amd/pstate.nix
../../../common/gpu/nvidia/prime.nix
../../../common/gpu/nvidia/ampere
../../../common/pc/laptop
../../../common/pc/ssd
../../battery.nix
];
hardware.nvidia.prime = {
amdgpuBusId = "PCI:6:0:0";
nvidiaBusId = "PCI:1:0:0";
};
}

View file

@ -0,0 +1,36 @@
{ lib, ... }:
let
inherit (lib) mkDefault;
in
{
imports = [
../../../common/cpu/amd
../../../common/cpu/amd/pstate.nix
# iGPU
../../../common/gpu/amd
# dGPU
../../../common/gpu/nvidia/prime.nix
../../../common/gpu/nvidia/ampere
../../../common/pc/laptop
../../../common/pc/ssd
../../battery.nix
];
hardware.nvidia = {
dynamicBoost.enable = mkDefault true;
powerManagement = {
enable = mkDefault true;
finegrained = mkDefault true;
};
prime = {
amdgpuBusId = "PCI:1:0:0";
nvidiaBusId = "PCI:101:0:0";
};
};
}

View file

@ -3,6 +3,4 @@
./cpu-only.nix ./cpu-only.nix
../../../gpu/intel/comet-lake ../../../gpu/intel/comet-lake
]; ];
hardware.intelgpu.vaapiDriver = "intel-media-driver";
} }

View file

@ -1,9 +1,8 @@
{ lib, pkgs, ... }:
{ {
imports = [ ../. ]; imports = [ ../. ];
hardware.intelgpu = { hardware.intelgpu = {
computeRuntime = "legacy";
vaapiDriver = "intel-vaapi-driver"; vaapiDriver = "intel-vaapi-driver";
enableHybridCodec = true; enableHybridCodec = true;
}; };

View file

@ -7,5 +7,8 @@
"i915.enable_guc=2" "i915.enable_guc=2"
]; ];
hardware.intelgpu.vaapiDriver = "intel-media-driver"; hardware.intelgpu = {
computeRuntime = "legacy";
vaapiDriver = "intel-media-driver";
};
} }

View file

@ -3,5 +3,8 @@
boot.kernelParams = [ "i915.enable_guc=2" ]; boot.kernelParams = [ "i915.enable_guc=2" ];
hardware.intelgpu.vaapiDriver = "intel-media-driver"; hardware.intelgpu = {
computeRuntime = "legacy";
vaapiDriver = "intel-media-driver";
};
} }

View file

@ -23,6 +23,15 @@
default = true; default = true;
}; };
computeRuntime = lib.mkOption {
description = "intel-compute-runtime variant to use";
type = lib.types.enum [
"default"
"legacy"
];
default = "default";
};
vaapiDriver = lib.mkOption { vaapiDriver = lib.mkOption {
description = "Intel VAAPI driver to use (use null to use both)"; description = "Intel VAAPI driver to use (use null to use both)";
type = lib.types.nullOr ( type = lib.types.nullOr (
@ -59,7 +68,11 @@
useIntelMediaDriver = cfg.vaapiDriver == "intel-media-driver" || cfg.vaapiDriver == null; useIntelMediaDriver = cfg.vaapiDriver == "intel-media-driver" || cfg.vaapiDriver == null;
intel-media-driver = pkgs.intel-media-driver; intel-media-driver = pkgs.intel-media-driver;
intel-media-driver-32 = pkgs.driversi686Linux.intel-media-driver; intel-media-driver-32 = pkgs.driversi686Linux.intel-media-driver;
intel-compute-runtime = pkgs.intel-compute-runtime; intel-compute-runtime =
if cfg.computeRuntime == "legacy" then
pkgs.intel-compute-runtime-legacy1
else
pkgs.intel-compute-runtime;
vpl-gpu-rt = pkgs.vpl-gpu-rt or pkgs.onevpl-intel-gpu; vpl-gpu-rt = pkgs.vpl-gpu-rt or pkgs.onevpl-intel-gpu;
in in
{ {

View file

@ -3,5 +3,8 @@
boot.kernelParams = [ "i915.enable_guc=2" ]; boot.kernelParams = [ "i915.enable_guc=2" ];
hardware.intelgpu.vaapiDriver = "intel-media-driver"; hardware.intelgpu = {
computeRuntime = "legacy";
vaapiDriver = "intel-media-driver";
};
} }

View file

@ -7,5 +7,8 @@
"i915.enable_psr=2" "i915.enable_psr=2"
]; ];
hardware.intelgpu.vaapiDriver = "intel-media-driver"; hardware.intelgpu = {
computeRuntime = "legacy";
vaapiDriver = "intel-media-driver";
};
} }

View file

@ -1,5 +1,3 @@
{ pkgs, ... }:
{ {
imports = [ ../. ]; imports = [ ../. ];
@ -12,6 +10,7 @@
# NixOS Wiki recommends using the legacy intel-vaapi-driver with the hybrid codec over that one for Skylake. # NixOS Wiki recommends using the legacy intel-vaapi-driver with the hybrid codec over that one for Skylake.
# https://wiki.nixos.org/wiki/Accelerated_Video_Playback # https://wiki.nixos.org/wiki/Accelerated_Video_Playback
hardware.intelgpu = { hardware.intelgpu = {
computeRuntime = "legacy";
vaapiDriver = "intel-vaapi-driver"; vaapiDriver = "intel-vaapi-driver";
enableHybridCodec = true; enableHybridCodec = true;
}; };

View file

@ -1,13 +1,6 @@
{ config, lib, ... }: { lib, config, ... }:
{ {
imports = [ ../. ]; imports = [ ../. ];
# Gnome 40 introduced a new way of managing power, without tlp. config.services.power-profiles-daemon.enable = lib.mkDefault (!config.services.tlp.enable);
# However, these 2 services clash when enabled simultaneously.
# https://github.com/NixOS/nixos-hardware/issues/260
services.tlp.enable = lib.mkDefault (
(lib.versionOlder (lib.versions.majorMinor lib.version) "21.05")
|| !config.services.power-profiles-daemon.enable
);
} }

57
compulab/README.md Normal file
View file

@ -0,0 +1,57 @@
# UCM-iMX95 SOM support
## Supported devices
- [UCM-iMX95 System-on-Module](https://www.compulab.com/products/som-evaluation-kits/ucm-imx95-evaluation-kit/) (**ucm-imx95**) based on the NXP i.MX95 SoC (A0 silicon), with device-specific boot components(OEI, SM, ATF), U-Boot, and Linux kernel support, including a NixOS configuration example.
## How to use
This overlay provides configuration and hardware support for the **CompuLab UCM-iMX95** platform, based on the **NXP i.MX95 A0 silicon**. It enables generating NixOS images suitable for booting via U-Boot, using the CompuLab UCM-iMX95 Evaluation Kit carrier board.
### Boot flow
The boot flow for the UCM-iMX95 platform follows the standard NXP i.MX95 sequence:
Boot ROM → OEI (initially in TCM, then DDR) → System Manager (SM) → ARM Trusted Firmware (ATF) → U-Boot → Linux kernel → NixOS userspace
Boot ROM initializes the SoC and loads OEI, which runs in TCM to perform early setup, then configures DDR and loads the System Manager (SM). SM completes SoC initialization and passes control to ATF, which handles secure world setup and then transfers execution to U-Boot, eventually booting the Linux kernel and NixOS root filesystem.
### Example NixOS configuration
```nix
{ nixos-hardware, }: {
system = "aarch64-linux";
modules = [
nixos-hardware.nixosModules.ucm-imx95
];
}
```
### Building Boot Images
The boot image for flashing to SD cards can be built directly from the flake:
```bash
# Build boot image for UCM-iMX95
nix build github:NixOS/nixos-hardware#packages.aarch64-linux.ucm-imx95-boot
```
The boot image will be available at `./result/image/flash.bin`.
**Note:** These packages target `aarch64-linux`. If you're on a different architecture (e.g., x86_64-linux), you'll need remote builders configured for aarch64-linux.
### Flashing to SD Card
Once built, you can flash the boot image to an SD card:
```bash
# Write boot image to SD card at 32KB offset (adjust /dev/sdX to your SD card device)
sudo dd if=./result/image/flash.bin of=/dev/sdX bs=1k seek=32 conv=fsync
```
**Warning:** Double-check the device path to avoid overwriting the wrong disk!
### Notes
- The configuration, including device-tree, kernel, and bootloader components, is optimized for the UCM-iMX95 SoM and EVK.
- The generated NixOS image supports booting from SD card or eMMC, depending on the hardware configuration.
- The boot components (OEI in TCM/DDR, SM, ATF, U-Boot) follow the standard NXP release layout for i.MX95 platforms.
### Upstream Documentation
- [NXP i.MX95 EVK U-Boot Documentation](https://docs.u-boot.org/en/latest/board/nxp/imx95_evk.html)
- [CompuLab UCM-iMX95 Product Page](https://www.compulab.com/products/computer-on-modules/ucm-imx95-nxp-i-mx-95-som-system-on-module/)

View file

@ -0,0 +1,64 @@
{
lib,
fetchFromGitHub,
stdenv,
buildPackages,
pkgsCross,
openssl,
}:
let
target-board = "imx95";
in
stdenv.mkDerivation rec {
pname = "imx95-atf";
version = "2.13.0";
platform = target-board;
enableParallelBuilding = true;
src = fetchFromGitHub {
owner = "nxp-imx";
repo = "imx-atf";
rev = "28affcae957cb8194917b5246276630f9e6343e1";
sha256 = "sha256-a8F+Lf8pwML+tCwawS0N/mrSXWPmFhlUeOg0MCRK3VE=";
};
# Compiler dependencies
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [
pkgsCross.aarch64-embedded.stdenv.cc
openssl
];
makeFlags = [
"HOSTCC=$(CC_FOR_BUILD)"
"CROSS_COMPILE=${pkgsCross.aarch64-embedded.stdenv.cc.targetPrefix}"
"PLAT=${platform}"
"SPD=opteed"
"bl31"
"LDFLAGS=-no-warn-rwx-segments"
];
installPhase = ''
runHook preInstall
mkdir -p $out
cp build/${target-board}/release/bl31.bin $out
runHook postInstall
'';
hardeningDisable = [ "all" ];
dontStrip = true;
meta = with lib; {
homepage = "https://github.com/nxp-imx/imx-atf";
description = "Reference implementation of secure world software for ARMv8-A";
license = licenses.bsd3;
maintainers = [
{
name = "Govind Singh";
email = "govind.singh@tii.ae";
}
];
platforms = [ "aarch64-linux" ];
};
}

View file

@ -0,0 +1,94 @@
{
callPackage,
fetchFromGitHub,
stdenv,
clang,
git,
dtc,
glibc,
zlib,
vim,
}:
let
imx95-atf = callPackage ./ucm-imx95-atf.nix { };
imx95-firmware = callPackage ./ucm-imx95-firmware.nix { };
imx95-uboot = callPackage ./ucm-imx95-uboot.nix { };
imx95-optee-os = callPackage ./ucm-imx95-optee-os.nix { };
imx95-sm-fw = callPackage ./ucm-imx95-sm-fw.nix { };
imx95-oei-ddr = callPackage ./ucm-imx95-oei-ddr.nix { };
imx95-oei-tcm = callPackage ./ucm-imx95-oei-tcm.nix { };
src = fetchFromGitHub {
owner = "nxp-imx";
repo = "imx-mkimage";
#tag: lf-6.6.52-2.2.1
rev = "f620fb8ef7a04c8dbed8119880f5eeffe3e69746";
sha256 = "sha256-JZlX122uZntCIISI1H3Hw+tnk+N/gBJpFFDaZoY8W3c=";
};
shortRev = builtins.substring 0 8 src.rev;
in
{
imx95-boot = stdenv.mkDerivation rec {
inherit src;
name = "imx95-mkimage";
version = "lf-6.6.52-2.2.1";
postPatch = ''
substituteInPlace Makefile \
--replace-fail 'git rev-parse --short=8 HEAD' 'echo ${shortRev}'
substituteInPlace Makefile \
--replace-fail 'CC = gcc' 'CC = clang'
substituteInPlace iMX95/soc.mak \
--replace-fail 'xxd' "${vim.xxd}/bin/xxd"
substituteInPlace scripts/fspi_fcb_gen.sh \
--replace-fail 'xxd' "${vim.xxd}/bin/xxd"
substituteInPlace scripts/fspi_packer.sh \
--replace-fail 'xxd' "${vim.xxd}/bin/xxd"
patchShebangs scripts
'';
nativeBuildInputs = [
clang
git
dtc
];
buildInputs = [
glibc.static
zlib
zlib.static
];
buildPhase = ''
runHook preBuild
if [ -f ${imx95-uboot}/u-boot.bin ]; then
install -m 0644 ${imx95-uboot}/u-boot.bin ./iMX95/u-boot.bin
else
cat ${imx95-uboot}/u-boot-nodtb.bin ${imx95-uboot}/ucm-imx95.dtb > ./iMX95/u-boot.bin
fi
install -m 0644 ${imx95-uboot}/u-boot-spl.bin ./iMX95/u-boot-spl.bin
install -m 0644 ${imx95-uboot}/u-boot-nodtb.bin ./iMX95/u-boot-nodtb.bin
install -m 0644 ${imx95-uboot}/ucm-imx95.dtb ./iMX95/ucm-imx95.dtb
install -m 0644 ${imx95-optee-os}/tee.bin ./iMX95/tee.bin
install -m 0644 ${imx95-atf}/bl31.bin ./iMX95/bl31.bin
install -m 0644 ${imx95-sm-fw}/m33_image.bin ./iMX95/m33_image.bin
install -m 0644 ${imx95-oei-ddr}/oei-m33-ddr.bin ./iMX95/oei-m33-ddr.bin
install -m 0644 ${imx95-oei-tcm}/oei-m33-tcm.bin ./iMX95/oei-m33-tcm.bin
install -m 0644 ${imx95-firmware}/ddr/lpddr5* ./iMX95/
install -m 0644 ${imx95-firmware}/ahab/mx95a0-ahab-container.img ./iMX95/
install -m 0644 ${imx95-firmware}/m7_image.bin ./iMX95/
make SOC=iMX95 REV=A0 OEI=YES LPDDR_TYPE=lpddr5 flash_all
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/image
install -m 0644 ./iMX95/flash.bin $out/image
runHook postInstall
'';
};
}

View file

@ -0,0 +1,74 @@
{
stdenv,
fetchurl,
coreutils,
bash,
siliconRev ? "A0",
...
}:
stdenv.mkDerivation rec {
pname = "nxp-firmware-imx95";
version = "nxp-firmware-8.28-994fa14";
m7Firmware = fetchurl {
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx95-m7-demo-25.09.00.bin";
sha256 = "sha256-3nA6uka6WPtXH5aZhaaKHKRM0tJ0pxHQdPEupNic1Ks=";
};
ddrFirmware = fetchurl {
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.28-994fa14.bin";
sha256 = "sha256-VZlvNA6HglaFoAzTCZARiQZuyVRe5gdzT5QsPN5Nadw=";
};
ahabFirmware = fetchurl {
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-2.0.2-89161a8.bin";
sha256 = "sha256-LSnwpN42YroV9qfZBpcC1OrtQV2WoX8p1bEn8sb91jQ=";
};
nativeBuildInputs = [
coreutils
bash
];
dontUnpack = true;
dontStrip = true;
installPhase = ''
mkdir -p $out
export SILICON=${siliconRev}
# M7 firmware
echo "Copying M7 firmware..."
cp ${m7Firmware} $out/m7_image.bin
# DDR firmware
cp ${ddrFirmware} ./firmware-imx-8.28-994fa14.bin
chmod +x firmware-imx-8.28-994fa14.bin
./firmware-imx-8.28-994fa14.bin --auto-accept
mkdir -p $out/ddr
# Resolve wildcard and verify at least one file matches
lpddr5_files=(firmware-imx-8.28-994fa14/firmware/ddr/synopsys/lpddr5*v202409.bin)
if [ ''${#lpddr5_files[@]} -eq 0 ]; then
echo "ERROR: No lpddr5*v202409.bin file found in firmware/ddr/synopsys/" >&2
exit 1
fi
cp "''${lpddr5_files[@]}" $out/ddr/
# AHAB container
cp ${ahabFirmware} ./firmware-ele-imx-2.0.2-89161a8.bin
chmod +x firmware-ele-imx-2.0.2-89161a8.bin
./firmware-ele-imx-2.0.2-89161a8.bin --auto-accept
mkdir -p $out/ahab
if [ "$SILICON" = "A0" ]; then
cp firmware-ele-imx-2.0.2-89161a8/mx95a0-ahab-container.img $out/ahab/
elif [ "$SILICON" = "B0" ]; then
cp firmware-ele-imx-2.0.2-89161a8/mx95b0-ahab-container.img $out/ahab/
else
echo "ERROR: Invalid SILICON value '$SILICON'. Must be 'A0' or 'B0'." >&2
exit 1
fi
'';
}

View file

@ -0,0 +1,71 @@
{
lib,
buildLinux,
fetchFromGitHub,
...
}@args:
buildLinux (
args
// rec {
version = "6.6.36";
name = "imx95-linux";
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
modDirVersion = version;
defconfig = "compulab-mx95_defconfig";
# https://github.com/NixOS/nixpkgs/pull/366004
# introduced a breaking change that if a module is declared but it is not being used it will fail.
ignoreConfigErrors = true;
kernelPatches = [
];
autoModules = false;
extraConfig = ''
CRYPTO_TLS m
TLS y
MD_RAID0 m
MD_RAID1 m
MD_RAID10 m
MD_RAID456 m
DM_VERITY m
LOGO y
FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER n
FB_EFI n
EFI_STUB y
EFI y
VIRTIO y
VIRTIO_PCI y
VIRTIO_BLK y
DRM_VIRTIO_GPU y
EXT4_FS y
USBIP_CORE m
USBIP_VHCI_HCD m
USBIP_HOST m
USBIP_VUDC m
'';
src = fetchFromGitHub {
owner = "compulab-yokneam";
repo = "linux-compulab";
# tag: linux-compulab_6.6.36
rev = "b93daaad0807fb15d4f3f1a6e5be843ac7532ef7";
sha256 = "sha256-wCeuGXBTz3H6OFWBA1M1/t/9WgxBVjQ8FU/wvAUVW2w=";
};
meta = with lib; {
homepage = "https://github.com/compulab-yokneam/linux-compulab";
license = licenses.gpl2Only;
maintainers = [
{
name = "Govind Singh";
email = "govind.singh@tii.ae";
}
];
platforms = [ "aarch64-linux" ];
};
}
// (args.argsOverride or { })
)

View file

@ -0,0 +1,76 @@
{
lib,
stdenv,
buildPackages,
gcc-arm-embedded,
fetchFromGitHub,
fetchpatch,
}:
let
metaBspImx95Rev = "5f4c7b5db846fa3a75055054e32215089d15a7b7"; # scarthgap
in
stdenv.mkDerivation rec {
pname = "imx95-imx-oei";
version = "lf-6.6.36-2.1.0";
nativeBuildInputs = [
buildPackages.python3
gcc-arm-embedded
];
src = fetchFromGitHub {
owner = "nxp-imx";
repo = "imx-oei";
rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925";
sha256 = "sha256-Sb6u1NlhJpDCOKBu3HqUb4BLEy0F8LYVnJE0tRSvzWc=";
};
patches = [
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0001-Add-CompuLab-lpddr5_timing.c.patch";
sha256 = "sha256-6ZpBOXw2aIhD2i9Wx368xfHq6NvdZghWHU9u8+gRTj8=";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0002-board-mx95lp5-Fix-default-DDR_CONFIG-timing-name.patch";
sha256 = "sha256-WZ/vYaTC2iKIC+jnHtnPriCxK9gjRsOv2Uy13Ye4698=";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0003-Add-CompuLab-lpddr5_timing_4g.c.patch";
sha256 = "sha256-yyierv2USZlM8Cuxf4FDj4+UtILvJQH9BJSj+fmayL8=";
})
];
postPatch = ''
substituteInPlace oei/makefiles/build_info.mak \
--replace-fail "/bin/echo" "echo"
substituteInPlace Makefile \
--replace-fail "/bin/echo" "echo"
'';
makeFlags = [
"board=mx95lp5"
"CROSS_COMPILE=${gcc-arm-embedded}/bin/arm-none-eabi-"
"OEI_CROSS_COMPILE=${gcc-arm-embedded}/bin/arm-none-eabi-"
"ARCH=arm"
"DDR_CONFIG=lpddr5_timing"
"oei=ddr"
];
installPhase = ''
mkdir -p $out
cp build/mx95lp5/ddr/oei-m33-ddr.bin $out/
'';
meta = with lib; {
homepage = "https://github.com/nxp-imx/imx-oei";
description = "Optional Executable Image assembler for i.MX95 processors";
license = licenses.bsd3;
maintainers = [
{
name = "Govind Singh";
email = "govind.singh@tii.ae";
}
];
platforms = [ "aarch64-linux" ];
};
}

View file

@ -0,0 +1,76 @@
{
lib,
stdenv,
buildPackages,
gcc-arm-embedded,
fetchFromGitHub,
fetchpatch,
}:
let
metaBspImx95Rev = "5f4c7b5db846fa3a75055054e32215089d15a7b7"; # scarthgap
in
stdenv.mkDerivation rec {
pname = "imx95-imx-oei-tcm";
version = "lf-6.6.36-2.1.0";
nativeBuildInputs = [
buildPackages.python3
gcc-arm-embedded
];
src = fetchFromGitHub {
owner = "nxp-imx";
repo = "imx-oei";
rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925";
sha256 = "sha256-Sb6u1NlhJpDCOKBu3HqUb4BLEy0F8LYVnJE0tRSvzWc=";
};
patches = [
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0001-Add-CompuLab-lpddr5_timing.c.patch";
sha256 = "sha256-6ZpBOXw2aIhD2i9Wx368xfHq6NvdZghWHU9u8+gRTj8=";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0002-board-mx95lp5-Fix-default-DDR_CONFIG-timing-name.patch";
sha256 = "sha256-WZ/vYaTC2iKIC+jnHtnPriCxK9gjRsOv2Uy13Ye4698=";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0003-Add-CompuLab-lpddr5_timing_4g.c.patch";
sha256 = "sha256-yyierv2USZlM8Cuxf4FDj4+UtILvJQH9BJSj+fmayL8=";
})
];
postPatch = ''
substituteInPlace oei/makefiles/build_info.mak \
--replace-fail "/bin/echo" "echo"
substituteInPlace Makefile \
--replace-fail "/bin/echo" "echo"
'';
makeFlags = [
"board=mx95lp5"
"CROSS_COMPILE=${gcc-arm-embedded}/bin/arm-none-eabi-"
"OEI_CROSS_COMPILE=${gcc-arm-embedded}/bin/arm-none-eabi-"
"ARCH=arm"
"DDR_CONFIG=lpddr5_timing"
"oei=tcm"
];
installPhase = ''
mkdir -p $out
cp build/mx95lp5/tcm/oei-m33-tcm.bin $out/
'';
meta = with lib; {
homepage = "https://github.com/nxp-imx/imx-oei";
description = "Optional Executable Image assembler for i.MX95 processors";
license = licenses.bsd3;
maintainers = [
{
name = "Govind Singh";
email = "govind.singh@tii.ae";
}
];
platforms = [ "aarch64-linux" ];
};
}

View file

@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchFromGitHub,
buildPackages,
bash,
}:
let
inherit (buildPackages) python3;
toolchain = stdenv.cc;
binutils = stdenv.cc.bintools.bintools_bin;
cpp = stdenv.cc;
in
stdenv.mkDerivation {
pname = "imx95-optee-os";
version = "lf-6.6.36_2.1.0";
nativeBuildInputs = [
python3
];
enableParallelBuilding = true;
propagatedBuildInputs = with python3.pkgs; [
pycryptodomex
pyelftools
cryptography
];
src = fetchFromGitHub {
owner = "nxp-imx";
repo = "imx-optee-os";
rev = "612bc5a642a4608d282abeee2349d86de996d7ee";
sha256 = "sha256-l8GKkrlBs5kgw6jrzGLT9WAeTSDqo8XWZDFT2+Fisv4=";
};
meta = with lib; {
homepage = "https://github.com/nxp-imx/imx-optee-os";
license = licenses.bsd2;
maintainers = [
{
name = "Govind Singh";
email = "govind.singh@tii.ae";
}
];
platforms = [ "aarch64-linux" ];
};
postPatch = ''
substituteInPlace scripts/arm32_sysreg.py \
--replace-fail '/usr/bin/env python3' '${python3}/bin/python'
substituteInPlace scripts/gen_tee_bin.py \
--replace-fail '/usr/bin/env python3' '${python3}/bin/python'
substituteInPlace scripts/pem_to_pub_c.py \
--replace-fail '/usr/bin/env python3' '${python3}/bin/python'
substituteInPlace ta/pkcs11/scripts/verify-helpers.sh \
--replace-fail '/bin/bash' '${bash}/bin/bash'
substituteInPlace mk/gcc.mk \
--replace-fail "\$(CROSS_COMPILE_\$(sm))objcopy" ${binutils}/bin/${toolchain.targetPrefix}objcopy
substituteInPlace mk/gcc.mk \
--replace-fail "\$(CROSS_COMPILE_\$(sm))objdump" ${binutils}/bin/${toolchain.targetPrefix}objdump
substituteInPlace mk/gcc.mk \
--replace-fail "\$(CROSS_COMPILE_\$(sm))nm" ${binutils}/bin/${toolchain.targetPrefix}nm
substituteInPlace mk/gcc.mk \
--replace-fail "\$(CROSS_COMPILE_\$(sm))readelf" ${binutils}/bin/${toolchain.targetPrefix}readelf
substituteInPlace mk/gcc.mk \
--replace-fail "\$(CROSS_COMPILE_\$(sm))ar" ${binutils}/bin/${toolchain.targetPrefix}ar
substituteInPlace mk/gcc.mk \
--replace-fail "\$(CROSS_COMPILE_\$(sm))cpp" ${cpp}/bin/${toolchain.targetPrefix}cpp
'';
makeFlags = [
"PLATFORM=imx-mx95evk"
"CFG_ARM64_core=y"
"CFG_TEE_TA_LOG_LEVEL=0"
"CFG_TEE_CORE_LOG_LEVEL=0"
"CROSS_COMPILE=${toolchain}/bin/${toolchain.targetPrefix}"
"CROSS_COMPILE64=${toolchain}/bin/${toolchain.targetPrefix}"
];
installPhase = ''
mkdir -p $out
cp ./out/arm-plat-imx/core/tee-raw.bin $out/tee.bin
'';
}

View file

@ -0,0 +1,92 @@
{
lib,
stdenv,
buildPackages,
gcc-arm-embedded,
fetchFromGitHub,
fetchpatch,
}:
let
metaBspImx95Rev = "224eed17cddc573061150e9d2ce6f9acb39ea50e"; # scarthgap-6.6.36-EVAL-UCM-iMX95-1.0
in
stdenv.mkDerivation rec {
pname = "imx95-sm-fw";
version = "lf-6.6.36-2.1.0";
nativeBuildInputs = [
buildPackages.python3
gcc-arm-embedded
];
propagatedBuildInputs = with buildPackages.python3.pkgs; [
pycryptodomex
pyelftools
cryptography
];
src = fetchFromGitHub {
owner = "nxp-imx";
repo = "imx-sm";
rev = "709deccd9338399eb39b5cf99a60eab4fa60d539";
sha256 = "sha256-02Cl+XhWGSFswspdBJ/4B/mBm4XTs/qKotx0BXMQpJk=";
};
patches = [
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-system-manager/imx-system-manager/0001-Add-mcimx95cust-board.patch";
sha256 = "sha256-zvZ4bNew+yRPmaZQMrAH087KpCLRqz6zdElfe72Dtuc=";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-system-manager/imx-system-manager/0002-Fix-null-pionter-except.patch";
sha256 = "sha256-q72VEvJqm2CmOxdWMqGibgXS5lY08mC4srEcy00QdrE=";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-system-manager/imx-system-manager/0001-update-for-yocto-6.6.36-compatibility.patch";
sha256 = "sha256-JzHqDiD/ZOu6VQQI0JxY17RQ3bA2t1aP3O1sjLPguWs=";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-system-manager/imx-system-manager/0003-sm-Disable-GPIO1-10-interrupt.patch";
sha256 = "sha256-dhcDv7Uq856+MBonczMPznk+tuqUFxTcHiKLX+myCVA=";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-system-manager/imx-system-manager/0004-configs-mx95cust-change-LPTPM1-ownership.patch";
sha256 = "sha256-NcLu6+zXpiSz1bHKW14Zuf6F/4pzKsekb+zaRtKjSTY=";
})
];
postPatch = ''
substituteInPlace sm/makefiles/gcc_cross.mak \
--replace-fail "\$(SM_CROSS_COMPILE)objcopy" ${gcc-arm-embedded}/bin/arm-none-eabi-objcopy
substituteInPlace sm/makefiles/build_info.mak \
--replace-fail "/bin/echo" "echo"
substituteInPlace sm/makefiles/gcc_cross.mak \
--replace-fail 'SM_CROSS_COMPILE ?= $(TOOLS)/arm-gnu-toolchain-*-none-eabi/bin/arm-none-eabi-' \
'SM_CROSS_COMPILE ?= $(CROSS_COMPILE)'
'';
makeFlags = [
"config=mx95cust"
"M=2"
"CROSS_COMPILE=${gcc-arm-embedded}/bin/arm-none-eabi-"
"CROSS_COMPILE64=${gcc-arm-embedded}/bin/arm-none-eabi-"
"ARCH=arm"
];
installPhase = ''
mkdir -p $out
cp build/mx95cust/m33_image.bin $out/
'';
meta = with lib; {
homepage = "https://github.com/nxp-imx/imx-sm";
description = "System Manager firmware for i.MX processors";
license = licenses.bsd3;
maintainers = [
{
name = "Govind Singh";
email = "govind.singh@tii.ae";
}
];
platforms = [ "aarch64-linux" ];
};
}

View file

@ -0,0 +1,95 @@
{
stdenv,
lib,
bison,
dtc,
fetchFromGitHub,
flex,
gnutls,
libuuid,
ncurses,
openssl,
which,
perl,
buildPackages,
efitools,
}:
let
ubsrc = fetchFromGitHub {
owner = "compulab-yokneam";
repo = "u-boot-compulab";
# tag: lf_v2024.04
rev = "824401fe487d7d3cbcf251bd60270bd7fe8d21d0";
sha256 = "sha256-m+YW7+XF/jcNKfyb5533LXGyOWvStqY+MCczAdcNGZI=";
};
in
stdenv.mkDerivation {
pname = "imx95-uboot";
version = "2024.04";
src = ubsrc;
postPatch = ''
patchShebangs tools
patchShebangs scripts
'';
nativeBuildInputs = [
bison
flex
openssl
which
ncurses
libuuid
gnutls
openssl
perl
efitools
];
depsBuildBuild = [ buildPackages.stdenv.cc ];
hardeningDisable = [ "all" ];
enableParallelBuilding = true;
makeFlags = [
"DTC=${lib.getExe buildPackages.dtc}"
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
];
extraConfig = ''
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="setenv ramdisk_addr_r 0x97000000; setenv fdt_addr_r 0x96000000; run distro_bootcmd; "
CONFIG_CMD_BOOTEFI_SELFTEST=y
CONFIG_CMD_BOOTEFI=y
CONFIG_EFI_LOADER=y
CONFIG_BLK=y
CONFIG_PARTITIONS=y
CONFIG_DM_DEVICE_REMOVE=n
CONFIG_CMD_CACHE=y
'';
passAsFile = [ "extraConfig" ];
configurePhase = ''
runHook preConfigure
make ucm-imx95_defconfig
cat $extraConfigPath >> .config
make olddefconfig
runHook postConfigure
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp ./u-boot-nodtb.bin $out
cp ./spl/u-boot-spl.bin $out
cp ./arch/arm/dts/ucm-imx95.dtb $out
cp .config $out
runHook postInstall
'';
dontStrip = true;
}

View file

@ -0,0 +1,19 @@
{ pkgs, ... }:
{
nixpkgs.overlays = [
(import ./overlay.nix)
];
imports = [
./modules.nix
];
boot.loader.grub.extraFiles = {
"ucm-imx95.dtb" = "${pkgs.callPackage ./bsp/ucm-imx95-linux.nix { }}/dtbs/compulab/ucm-imx95.dtb";
};
hardware.deviceTree = {
filter = "ucm-imx95.dtb";
name = "ucm-imx95.dtb";
};
}

View file

@ -0,0 +1,17 @@
{
pkgs,
lib,
...
}:
{
nixpkgs.hostPlatform.system = "aarch64-linux";
boot = {
kernelPackages = pkgs.linuxPackagesFor (pkgs.callPackage ./bsp/ucm-imx95-linux.nix { });
initrd.includeDefaultModules = lib.mkForce false;
};
disabledModules = [ "profiles/all-hardware.nix" ];
hardware.deviceTree.enable = true;
}

View file

@ -0,0 +1,3 @@
final: _prev: {
inherit (final.callPackage ./bsp/ucm-imx95-boot.nix { }) imx95-boot;
}

View file

@ -8,6 +8,3 @@
`fwupd` is used to receive firmware updates from vendors. This device is in its [supported devices list](https://fwupd.org/lvfs/devices/) `fwupd` is used to receive firmware updates from vendors. This device is in its [supported devices list](https://fwupd.org/lvfs/devices/)
`thermald` is used to achieve better thermal behaviour `thermald` is used to achieve better thermal behaviour
##### TLP
TLP is a battery power optimizer for laptops. It is enabled by default, however, since it conflicts with power-profiles-daemon which is GNOME's power management system, TLP will not be installed with if power-profiles-daemon or a recent version of GNOME is present.

View file

@ -6,16 +6,8 @@
../../../common/pc/laptop ../../../common/pc/laptop
]; ];
hardware.enableAllFirmware = lib.mkDefault true;
services = { services = {
fwupd.enable = lib.mkDefault true; fwupd.enable = lib.mkDefault true;
thermald.enable = lib.mkDefault true; thermald.enable = lib.mkDefault true;
}; };
boot = {
# needs to be explicitly loaded or else bluetooth/wifi won't work.
kernelModules = [ "wl" ];
extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
};
} }

View file

@ -0,0 +1,32 @@
# Dell Precision 5570
## Tested Hardware
```bash
lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 12th Gen Core Processor Host Bridge/DRAM Registers [8086:4641] (rev 02)
00:01.0 PCI bridge [0604]: Intel Corporation 12th Gen Core Processor PCI Express x16 Controller #1 [8086:460d] (rev 02)
00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] [8086:46a6] (rev 0c)
00:04.0 Signal processing controller [1180]: Intel Corporation Alder Lake Innovation Platform Framework Processor Participant [8086:461d] (rev 02)
00:06.0 PCI bridge [0604]: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 [8086:464d] (rev 02)
00:07.0 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #0 [8086:466e] (rev 02)
00:07.1 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #1 [8086:463f] (rev 02)
00:08.0 System peripheral [0880]: Intel Corporation 12th Gen Core Processor Gaussian & Neural Accelerator [8086:464f] (rev 02)
00:0d.0 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 USB Controller [8086:461e] (rev 02)
00:0d.2 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 NHI #0 [8086:463e] (rev 02)
00:12.0 Serial controller [0700]: Intel Corporation Alder Lake-P Integrated Sensor Hub [8086:51fc] (rev 01)
00:14.0 USB controller [0c03]: Intel Corporation Alder Lake PCH USB 3.2 xHCI Host Controller [8086:51ed] (rev 01)
00:14.2 RAM memory [0500]: Intel Corporation Alder Lake PCH Shared SRAM [8086:51ef] (rev 01)
00:14.3 Network controller [0280]: Intel Corporation Alder Lake-P PCH CNVi WiFi [8086:51f0] (rev 01)
00:15.0 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #0 [8086:51e8] (rev 01)
00:15.1 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #1 [8086:51e9] (rev 01)
00:16.0 Communication controller [0780]: Intel Corporation Alder Lake PCH HECI Controller [8086:51e0] (rev 01)
00:1c.0 PCI bridge [0604]: Intel Corporation Alder Lake-P PCH PCIe Root Port #4 [8086:51bb] (rev 01)
00:1f.0 ISA bridge [0601]: Intel Corporation Alder Lake PCH eSPI Controller [8086:5182] (rev 01)
00:1f.3 Audio device [0403]: Intel Corporation Alder Lake PCH-P High Definition Audio Controller [8086:51c8] (rev 01)
00:1f.4 SMBus [0c05]: Intel Corporation Alder Lake PCH-P SMBus Host Controller [8086:51a3] (rev 01)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Alder Lake-P PCH SPI Controller [8086:51a4] (rev 01)
01:00.0 3D controller [0302]: NVIDIA Corporation GA107GLM [RTX A1000 Laptop GPU] [10de:25b9] (rev a1)
02:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO [144d:a80a]
a5:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5260 PCI Express Card Reader [10ec:5260] (rev 01)
```

View file

@ -0,0 +1,37 @@
{
config,
lib,
...
}:
{
imports = [
../../../common/cpu/intel/alder-lake
../../../common/pc/laptop
../../../common/pc/ssd
../../../common/gpu/nvidia/prime.nix
];
hardware.intelgpu.driver = lib.mkIf (lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.8") "xe";
boot.kernelParams = lib.mkIf (config.hardware.intelgpu.driver == "xe") [
"i915.force_probe=!46a6"
"xe.force_probe=46a6"
];
hardware.nvidia = {
nvidiaSettings = lib.mkDefault true;
modesetting.enable = lib.mkDefault true;
open = lib.mkDefault false;
prime = {
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
};
# Override the Intel gpu driver setting imported above
environment.variables = {
VDPAU_DRIVER = lib.mkIf config.hardware.opengl.enable (lib.mkOverride 990 "nvidia");
};
services.thermald.enable = lib.mkDefault true;
}

View file

@ -61,7 +61,10 @@ Then use `fwupdmgr` to perform updates
## Nvidia Driver ## Nvidia Driver
The choice of the `legacy_390` driver is based on looking for PCI Device ID `10de:1436`. On the [nvidia driver site](https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/) which should indicate the The choice of the `stable` driver is based on looking at the family of the card on [nouveau wiki's code names page](https://nouveau.freedesktop.org/CodeNames.html) obtained with:
driver, the exact device isn't listed. However, we can see
[here](https://linux-hardware.org/?id=pci:10de-1436-103c-1909) has nvidia driver "375.82 and newer" listed. Since the ```bash
newest nvidia drivers don't support legacy devices, the closest version newer than 375.82 was chosen. $ lspci -k -d ::03xx
```
Both `Quadro M2200 Mobile (GM206GLM)` and `Quadro M1200 Mobile (GM107GLM)` belong to the **Maxwell** family which is still supported by the stable driver.

View file

@ -32,7 +32,7 @@
enable32Bit = lib.mkDefault true; enable32Bit = lib.mkDefault true;
}; };
nvidia = { nvidia = {
package = config.boot.kernelPackages.nvidiaPackages.legacy_390; package = config.boot.kernelPackages.nvidiaPackages.stable;
nvidiaSettings = lib.mkDefault true; nvidiaSettings = lib.mkDefault true;
modesetting.enable = lib.mkDefault true; modesetting.enable = lib.mkDefault true;
open = lib.mkDefault false; open = lib.mkDefault false;

View file

@ -13,11 +13,8 @@
}; };
boot = { boot = {
# needs to be explicitly loaded or else bluetooth/wifi won't work
kernelModules = [ kernelModules = [
"kvm-intel" "kvm-intel"
"wl"
]; ];
extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
}; };
} }

22
flake.lock generated
View file

@ -1,26 +1,6 @@
{ {
"nodes": { "nodes": {
"nixpkgs": { "root": {}
"locked": {
"lastModified": 1751290770,
"narHash": "sha256-u4s8yKAqTzPGY3vTcDyAIet11uXaNCM//93/0O0NlbA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0620a50e9a847851bf802c59a4202552ed79b821",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05-small",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
}, },
"root": "root", "root": "root",
"version": 7 "version": 7

110
flake.nix
View file

@ -2,7 +2,39 @@
description = "nixos-hardware"; description = "nixos-hardware";
outputs = outputs =
{ ... }: { self, ... }:
let
# Import private inputs (for development)
privateInputs =
(import ./tests/flake-compat.nix {
src = ./tests;
}).defaultNix;
systems = [
"aarch64-linux"
"riscv64-linux"
"x86_64-linux"
];
formatSystems = [
"aarch64-linux"
"x86_64-linux"
"aarch64-darwin"
];
# Helper to iterate over systems
eachSystem =
f:
privateInputs.nixos-unstable-small.lib.genAttrs systems (
system: f privateInputs.nixos-unstable-small.legacyPackages.${system} system
);
eachSystemFormat =
f:
privateInputs.nixos-unstable-small.lib.genAttrs formatSystems (
system: f privateInputs.nixos-unstable-small.legacyPackages.${system} system
);
in
{ {
nixosModules = nixosModules =
@ -20,12 +52,14 @@
apple-imac-18-2 = import ./apple/imac/18-2; apple-imac-18-2 = import ./apple/imac/18-2;
apple-macbook-air-3 = import ./apple/macbook-air/3; apple-macbook-air-3 = import ./apple/macbook-air/3;
apple-macbook-air-4 = import ./apple/macbook-air/4; apple-macbook-air-4 = import ./apple/macbook-air/4;
apple-macbook-air-5 = import ./apple/macbook-air/5;
apple-macbook-air-6 = import ./apple/macbook-air/6; apple-macbook-air-6 = import ./apple/macbook-air/6;
apple-macbook-air-7 = import ./apple/macbook-air/7; apple-macbook-air-7 = import ./apple/macbook-air/7;
apple-macbook-pro = import ./apple/macbook-pro; apple-macbook-pro = import ./apple/macbook-pro;
apple-macbook-pro-8-1 = import ./apple/macbook-pro/8-1; apple-macbook-pro-8-1 = import ./apple/macbook-pro/8-1;
apple-macbook-pro-10-1 = import ./apple/macbook-pro/10-1; apple-macbook-pro-10-1 = import ./apple/macbook-pro/10-1;
apple-macbook-pro-11-1 = import ./apple/macbook-pro/11-1; apple-macbook-pro-11-1 = import ./apple/macbook-pro/11-1;
apple-macbook-pro-11-4 = import ./apple/macbook-pro/11-4;
apple-macbook-pro-11-5 = import ./apple/macbook-pro/11-5; apple-macbook-pro-11-5 = import ./apple/macbook-pro/11-5;
apple-macbook-pro-12-1 = import ./apple/macbook-pro/12-1; apple-macbook-pro-12-1 = import ./apple/macbook-pro/12-1;
apple-macbook-pro-14-1 = import ./apple/macbook-pro/14-1; apple-macbook-pro-14-1 = import ./apple/macbook-pro/14-1;
@ -41,11 +75,14 @@
asus-flow-gv302x-amdgpu = import ./asus/flow/gv302x/amdgpu; asus-flow-gv302x-amdgpu = import ./asus/flow/gv302x/amdgpu;
asus-flow-gv302x-nvidia = import ./asus/flow/gv302x/nvidia; asus-flow-gv302x-nvidia = import ./asus/flow/gv302x/nvidia;
asus-pro-ws-x570-ace = import ./asus/pro-ws-x570-ace; asus-pro-ws-x570-ace = import ./asus/pro-ws-x570-ace;
asus-rog-gl552vw = import ./asus/rog-gl552vw;
asus-rog-strix-g513im = import ./asus/rog-strix/g513im; asus-rog-strix-g513im = import ./asus/rog-strix/g513im;
asus-rog-strix-g533zw = import ./asus/rog-strix/g533zw; asus-rog-strix-g533zw = import ./asus/rog-strix/g533zw;
asus-rog-strix-g533q = import ./asus/rog-strix/g533q;
asus-rog-strix-g713ie = import ./asus/rog-strix/g713ie; asus-rog-strix-g713ie = import ./asus/rog-strix/g713ie;
asus-rog-strix-g733qs = import ./asus/rog-strix/g733qs; asus-rog-strix-g733qs = import ./asus/rog-strix/g733qs;
asus-rog-strix-x570e = import ./asus/rog-strix/x570e; asus-rog-strix-x570e = import ./asus/rog-strix/x570e;
asus-zenbook-um6702 = import ./asus/zenbook/um6702;
asus-zenbook-ux371 = import ./asus/zenbook/ux371; asus-zenbook-ux371 = import ./asus/zenbook/ux371;
asus-zenbook-ux535 = import ./asus/zenbook/ux535; asus-zenbook-ux535 = import ./asus/zenbook/ux535;
asus-zenbook-ux481-intelgpu = import ./asus/zenbook/ux481/intelgpu; asus-zenbook-ux481-intelgpu = import ./asus/zenbook/ux481/intelgpu;
@ -65,6 +102,7 @@
dell-e7240 = deprecated "1326" "dell-e7240" (import ./dell/e7240); dell-e7240 = deprecated "1326" "dell-e7240" (import ./dell/e7240);
dell-g3-3779 = import ./dell/g3/3779; dell-g3-3779 = import ./dell/g3/3779;
dell-g3-3579 = import ./dell/g3/3579; dell-g3-3579 = import ./dell/g3/3579;
dell-inspiron-3442 = import ./dell/inspiron/3442;
dell-inspiron-14-5420 = import ./dell/inspiron/14-5420; dell-inspiron-14-5420 = import ./dell/inspiron/14-5420;
dell-inspiron-5509 = import ./dell/inspiron/5509; dell-inspiron-5509 = import ./dell/inspiron/5509;
dell-inspiron-5515 = import ./dell/inspiron/5515; dell-inspiron-5515 = import ./dell/inspiron/5515;
@ -91,6 +129,7 @@
dell-precision-5490 = import ./dell/precision/5490; dell-precision-5490 = import ./dell/precision/5490;
dell-precision-5530 = import ./dell/precision/5530; dell-precision-5530 = import ./dell/precision/5530;
dell-precision-5560 = import ./dell/precision/5560; dell-precision-5560 = import ./dell/precision/5560;
dell-precision-5570 = import ./dell/precision/5570;
dell-precision-7520 = import ./dell/precision/7520; dell-precision-7520 = import ./dell/precision/7520;
dell-xps-13-7390 = import ./dell/xps/13-7390; dell-xps-13-7390 = import ./dell/xps/13-7390;
dell-xps-13-9300 = import ./dell/xps/13-9300; dell-xps-13-9300 = import ./dell/xps/13-9300;
@ -132,9 +171,12 @@
framework-13-7040-amd = import ./framework/13-inch/7040-amd; framework-13-7040-amd = import ./framework/13-inch/7040-amd;
framework-amd-ai-300-series = import ./framework/13-inch/amd-ai-300-series; framework-amd-ai-300-series = import ./framework/13-inch/amd-ai-300-series;
framework-16-7040-amd = import ./framework/16-inch/7040-amd; framework-16-7040-amd = import ./framework/16-inch/7040-amd;
framework-16-amd-ai-300-series = import ./framework/16-inch/amd-ai-300-series;
framework-desktop-amd-ai-max-300-series = import ./framework/desktop/amd-ai-max-300-series;
friendlyarm-nanopc-t4 = import ./friendlyarm/nanopc-t4; friendlyarm-nanopc-t4 = import ./friendlyarm/nanopc-t4;
friendlyarm-nanopi-r5s = import ./friendlyarm/nanopi-r5s; friendlyarm-nanopi-r5s = import ./friendlyarm/nanopi-r5s;
focus-m2-gen1 = import ./focus/m2/gen1; focus-m2-gen1 = import ./focus/m2/gen1;
fydetab-duo = import ./fydetab/duo;
gigabyte-b550 = import ./gigabyte/b550; gigabyte-b550 = import ./gigabyte/b550;
gigabyte-b650 = import ./gigabyte/b650; gigabyte-b650 = import ./gigabyte/b650;
gmktec-nucbox-g3-plus = import ./gmktec/nucbox/g3-plus; gmktec-nucbox-g3-plus = import ./gmktec/nucbox/g3-plus;
@ -152,9 +194,11 @@
hp-elitebook-845g8 = import ./hp/elitebook/845/g8; hp-elitebook-845g8 = import ./hp/elitebook/845/g8;
hp-elitebook-845g9 = import ./hp/elitebook/845/g9; hp-elitebook-845g9 = import ./hp/elitebook/845/g9;
hp-probook-440G5 = import ./hp/probook/440G5; hp-probook-440G5 = import ./hp/probook/440G5;
hp-probook-460G11 = import ./hp/probook/460G11;
hp-laptop-14s-dq2024nf = import ./hp/laptop/14s-dq2024nf; hp-laptop-14s-dq2024nf = import ./hp/laptop/14s-dq2024nf;
huawei-machc-wa = import ./huawei/machc-wa; huawei-machc-wa = import ./huawei/machc-wa;
hp-notebook-14-df0023 = import ./hp/notebook/14-df0023; hp-notebook-14-df0023 = import ./hp/notebook/14-df0023;
intel-nuc-5i5ryb = import ./intel/nuc/5i5ryb;
intel-nuc-8i7beh = import ./intel/nuc/8i7beh; intel-nuc-8i7beh = import ./intel/nuc/8i7beh;
lenovo-ideacentre-k330 = import ./lenovo/ideacentre/k330; lenovo-ideacentre-k330 = import ./lenovo/ideacentre/k330;
lenovo-ideapad-14imh9 = import ./lenovo/ideapad/14imh9; lenovo-ideapad-14imh9 = import ./lenovo/ideapad/14imh9;
@ -163,11 +207,14 @@
lenovo-ideapad-15ach6 = import ./lenovo/ideapad/15ach6; lenovo-ideapad-15ach6 = import ./lenovo/ideapad/15ach6;
lenovo-ideapad-16ach6 = import ./lenovo/ideapad/16ach6; lenovo-ideapad-16ach6 = import ./lenovo/ideapad/16ach6;
lenovo-ideapad-16ahp9 = import ./lenovo/ideapad/16ahp9; lenovo-ideapad-16ahp9 = import ./lenovo/ideapad/16ahp9;
lenovo-ideapad-s5-16iah8 = import ./lenovo/ideapad/16iah8;
lenovo-ideapad-z510 = import ./lenovo/ideapad/z510; lenovo-ideapad-z510 = import ./lenovo/ideapad/z510;
lenovo-ideapad-slim-5 = import ./lenovo/ideapad/slim-5; lenovo-ideapad-slim-5 = import ./lenovo/ideapad/slim-5;
lenovo-ideapad-s145-15api = import ./lenovo/ideapad/s145-15api; lenovo-ideapad-s145-15api = import ./lenovo/ideapad/s145-15api;
lenovo-legion-15ach6 = import ./lenovo/legion/15ach6; lenovo-legion-15ach6 = import ./lenovo/legion/15ach6;
lenovo-legion-15ach6h = import ./lenovo/legion/15ach6h; lenovo-legion-15ach6h = import ./lenovo/legion/15ach6h;
lenovo-legion-15ach6h-hybrid = import ./lenovo/legion/15ach6h/hybrid;
lenovo-legion-15ach6h-nvidia = import ./lenovo/legion/15ach6h/nvidia;
lenovo-legion-15arh05h = import ./lenovo/legion/15arh05h; lenovo-legion-15arh05h = import ./lenovo/legion/15arh05h;
lenovo-legion-16ach6h = import ./lenovo/legion/16ach6h; lenovo-legion-16ach6h = import ./lenovo/legion/16ach6h;
lenovo-legion-16ach6h-hybrid = import ./lenovo/legion/16ach6h/hybrid; lenovo-legion-16ach6h-hybrid = import ./lenovo/legion/16ach6h/hybrid;
@ -178,6 +225,7 @@
lenovo-legion-16achg6-nvidia = import ./lenovo/legion/16achg6/nvidia; lenovo-legion-16achg6-nvidia = import ./lenovo/legion/16achg6/nvidia;
lenovo-legion-16aph8 = import ./lenovo/legion/16aph8; lenovo-legion-16aph8 = import ./lenovo/legion/16aph8;
lenovo-legion-16arha7 = import ./lenovo/legion/16arha7; lenovo-legion-16arha7 = import ./lenovo/legion/16arha7;
lenovo-legion-16iah7h = import ./lenovo/legion/16iah7h;
lenovo-legion-16ithg6 = import ./lenovo/legion/16ithg6; lenovo-legion-16ithg6 = import ./lenovo/legion/16ithg6;
lenovo-legion-16irx8h = import ./lenovo/legion/16irx8h; lenovo-legion-16irx8h = import ./lenovo/legion/16irx8h;
lenovo-legion-16irx9h = import ./lenovo/legion/16irx9h; lenovo-legion-16irx9h = import ./lenovo/legion/16irx9h;
@ -204,10 +252,12 @@
lenovo-thinkpad-p14s-amd-gen3 = import ./lenovo/thinkpad/p14s/amd/gen3; lenovo-thinkpad-p14s-amd-gen3 = import ./lenovo/thinkpad/p14s/amd/gen3;
lenovo-thinkpad-p14s-amd-gen4 = import ./lenovo/thinkpad/p14s/amd/gen4; lenovo-thinkpad-p14s-amd-gen4 = import ./lenovo/thinkpad/p14s/amd/gen4;
lenovo-thinkpad-p14s-amd-gen5 = import ./lenovo/thinkpad/p14s/amd/gen5; lenovo-thinkpad-p14s-amd-gen5 = import ./lenovo/thinkpad/p14s/amd/gen5;
lenovo-thinkpad-p14s-intel-gen2 = import ./lenovo/thinkpad/p14s/intel/gen2;
lenovo-thinkpad-p14s-intel-gen3 = import ./lenovo/thinkpad/p14s/intel/gen3; lenovo-thinkpad-p14s-intel-gen3 = import ./lenovo/thinkpad/p14s/intel/gen3;
lenovo-thinkpad-p14s-intel-gen5 = import ./lenovo/thinkpad/p14s/intel/gen5; lenovo-thinkpad-p14s-intel-gen5 = import ./lenovo/thinkpad/p14s/intel/gen5;
lenovo-thinkpad-p16s-amd-gen1 = import ./lenovo/thinkpad/p16s/amd/gen1; lenovo-thinkpad-p16s-amd-gen1 = import ./lenovo/thinkpad/p16s/amd/gen1;
lenovo-thinkpad-p16s-amd-gen2 = import ./lenovo/thinkpad/p16s/amd/gen2; lenovo-thinkpad-p16s-amd-gen2 = import ./lenovo/thinkpad/p16s/amd/gen2;
lenovo-thinkpad-p16s-amd-gen4 = import ./lenovo/thinkpad/p16s/amd/gen4;
lenovo-thinkpad-p16s-intel-gen2 = import ./lenovo/thinkpad/p16s/intel/gen2; lenovo-thinkpad-p16s-intel-gen2 = import ./lenovo/thinkpad/p16s/intel/gen2;
lenovo-thinkpad-p43s = import ./lenovo/thinkpad/p43s; lenovo-thinkpad-p43s = import ./lenovo/thinkpad/p43s;
lenovo-thinkpad-p50 = import ./lenovo/thinkpad/p50; lenovo-thinkpad-p50 = import ./lenovo/thinkpad/p50;
@ -220,6 +270,9 @@
lenovo-thinkpad-t14-amd-gen3 = import ./lenovo/thinkpad/t14/amd/gen3; lenovo-thinkpad-t14-amd-gen3 = import ./lenovo/thinkpad/t14/amd/gen3;
lenovo-thinkpad-t14-amd-gen4 = import ./lenovo/thinkpad/t14/amd/gen4; lenovo-thinkpad-t14-amd-gen4 = import ./lenovo/thinkpad/t14/amd/gen4;
lenovo-thinkpad-t14-amd-gen5 = import ./lenovo/thinkpad/t14/amd/gen5; lenovo-thinkpad-t14-amd-gen5 = import ./lenovo/thinkpad/t14/amd/gen5;
lenovo-thinkpad-t14-intel-gen1 = import ./lenovo/thinkpad/t14/intel/gen1;
lenovo-thinkpad-t14-intel-gen1-nvidia = import ./lenovo/thinkpad/t14/intel/gen1/nvidia;
lenovo-thinkpad-t14-intel-gen6 = import ./lenovo/thinkpad/t14/intel/gen6;
lenovo-thinkpad-t14s = import ./lenovo/thinkpad/t14s; lenovo-thinkpad-t14s = import ./lenovo/thinkpad/t14s;
lenovo-thinkpad-t14s-amd-gen1 = import ./lenovo/thinkpad/t14s/amd/gen1; lenovo-thinkpad-t14s-amd-gen1 = import ./lenovo/thinkpad/t14s/amd/gen1;
lenovo-thinkpad-t14s-amd-gen4 = import ./lenovo/thinkpad/t14s/amd/gen4; lenovo-thinkpad-t14s-amd-gen4 = import ./lenovo/thinkpad/t14s/amd/gen4;
@ -260,8 +313,8 @@
lenovo-thinkpad-x1-extreme-gen4 = import ./lenovo/thinkpad/x1-extreme/gen4; lenovo-thinkpad-x1-extreme-gen4 = import ./lenovo/thinkpad/x1-extreme/gen4;
lenovo-thinkpad-x1-nano = import ./lenovo/thinkpad/x1-nano; lenovo-thinkpad-x1-nano = import ./lenovo/thinkpad/x1-nano;
lenovo-thinkpad-x1-nano-gen1 = import ./lenovo/thinkpad/x1-nano/gen1; lenovo-thinkpad-x1-nano-gen1 = import ./lenovo/thinkpad/x1-nano/gen1;
lenovo-thinkpad-x13 = import ./lenovo/thinkpad/x13/intel;
lenovo-thinkpad-x13-amd = import ./lenovo/thinkpad/x13/amd; lenovo-thinkpad-x13-amd = import ./lenovo/thinkpad/x13/amd;
lenovo-thinkpad-x13-intel = import ./lenovo/thinkpad/x13/intel;
lenovo-thinkpad-x13-yoga = import ./lenovo/thinkpad/x13/yoga; lenovo-thinkpad-x13-yoga = import ./lenovo/thinkpad/x13/yoga;
lenovo-thinkpad-x13-yoga-3th-gen = import ./lenovo/thinkpad/x13/yoga/3th-gen; lenovo-thinkpad-x13-yoga-3th-gen = import ./lenovo/thinkpad/x13/yoga/3th-gen;
lenovo-thinkpad-x13s = import ./lenovo/thinkpad/x13s; lenovo-thinkpad-x13s = import ./lenovo/thinkpad/x13s;
@ -285,8 +338,11 @@
lenovo-yoga-7-14IAH7-hybrid = import ./lenovo/yoga/7/14IAH7/hybrid; lenovo-yoga-7-14IAH7-hybrid = import ./lenovo/yoga/7/14IAH7/hybrid;
lenovo-yoga-7-14ILL10 = import ./lenovo/yoga/7/14ILL10; lenovo-yoga-7-14ILL10 = import ./lenovo/yoga/7/14ILL10;
lenovo-yoga-7-slim-gen8 = import ./lenovo/yoga/7/slim/gen8; lenovo-yoga-7-slim-gen8 = import ./lenovo/yoga/7/slim/gen8;
letsnote-cf-lx3 = import ./panasonic/letsnote/cf-lx3;
letsnote-cf-lx4 = import ./panasonic/letsnote/cf-lx4; letsnote-cf-lx4 = import ./panasonic/letsnote/cf-lx4;
linglong-nova-studio = import ./linglong/nova-studio;
malibal-aon-s1-intel = import ./malibal/aon/s1; malibal-aon-s1-intel = import ./malibal/aon/s1;
mechrevo-gm5hg0a = import ./mechrevo/GM5HG0A;
microchip-icicle-kit = import ./microchip/icicle-kit; microchip-icicle-kit = import ./microchip/icicle-kit;
microsoft-surface-go = import ./microsoft/surface/surface-go; microsoft-surface-go = import ./microsoft/surface/surface-go;
microsoft-surface-pro-intel = import ./microsoft/surface/surface-pro-intel; microsoft-surface-pro-intel = import ./microsoft/surface/surface-pro-intel;
@ -296,15 +352,19 @@
microsoft-surface-pro-9 = import ./microsoft/surface-pro/9; microsoft-surface-pro-9 = import ./microsoft/surface-pro/9;
milkv-pioneer = import ./milkv/pioneer; milkv-pioneer = import ./milkv/pioneer;
minisforum-v3 = import ./minisforum/v3; minisforum-v3 = import ./minisforum/v3;
mnt-reform-rk3588 = import ./mnt/reform/rk3588;
morefine-m600 = import ./morefine/m600; morefine-m600 = import ./morefine/m600;
msi-b350-tomahawk = import ./msi/b350-tomahawk; msi-b350-tomahawk = import ./msi/b350-tomahawk;
msi-b550-a-pro = import ./msi/b550-a-pro; msi-b550-a-pro = import ./msi/b550-a-pro;
msi-b550-tomahawk = import ./msi/b550-tomahawk;
msi-gs60 = import ./msi/gs60; msi-gs60 = import ./msi/gs60;
msi-gl62 = import ./msi/gl62; msi-gl62 = import ./msi/gl62;
msi-gl65-10SDR-492 = import ./msi/gl65/10SDR-492; msi-gl65-10SDR-492 = import ./msi/gl65/10SDR-492;
nxp-imx8mp-evk = import ./nxp/imx8mp-evk; nxp-imx8mp-evk = import ./nxp/imx8mp-evk;
nxp-imx8mq-evk = import ./nxp/imx8mq-evk; nxp-imx8mq-evk = import ./nxp/imx8mq-evk;
nxp-imx8qm-mek = import ./nxp/imx8qm-mek; nxp-imx8qm-mek = import ./nxp/imx8qm-mek;
nxp-imx93-evk = import ./nxp/imx93-evk;
ucm-imx95 = import ./compulab/ucm-imx95;
hardkernel-odroid-hc4 = import ./hardkernel/odroid-hc4; hardkernel-odroid-hc4 = import ./hardkernel/odroid-hc4;
hardkernel-odroid-h3 = import ./hardkernel/odroid-h3; hardkernel-odroid-h3 = import ./hardkernel/odroid-h3;
hardkernel-odroid-h4 = import ./hardkernel/odroid-h4; hardkernel-odroid-h4 = import ./hardkernel/odroid-h4;
@ -348,13 +408,16 @@
system76-gaze18 = import ./system76/gaze18; system76-gaze18 = import ./system76/gaze18;
system76-galp5-1650 = import ./system76/galp5-1650; system76-galp5-1650 = import ./system76/galp5-1650;
system76-darp6 = import ./system76/darp6; system76-darp6 = import ./system76/darp6;
system76-thelio-mega = import ./system76/thelio-mega;
toshiba-swanky = import ./toshiba/swanky; toshiba-swanky = import ./toshiba/swanky;
tuxedo-aura-15-gen1 = import ./tuxedo/aura/15/gen1; tuxedo-aura-15-gen1 = import ./tuxedo/aura/15/gen1;
tuxedo-infinitybook-v4 = import ./tuxedo/infinitybook/v4; tuxedo-infinitybook-v4 = import ./tuxedo/infinitybook/v4;
tuxedo-infinitybook-pro14-gen7 = import ./tuxedo/infinitybook/pro14/gen7; tuxedo-infinitybook-pro14-gen7 = import ./tuxedo/infinitybook/pro14/gen7;
tuxedo-infinitybook-pro14-gen9-amd = import ./tuxedo/infinitybook/pro14/gen9/amd;
tuxedo-infinitybook-pro14-gen9-intel = import ./tuxedo/infinitybook/pro14/gen9/intel; tuxedo-infinitybook-pro14-gen9-intel = import ./tuxedo/infinitybook/pro14/gen9/intel;
tuxedo-pulse-14-gen3 = import ./tuxedo/pulse/14/gen3; tuxedo-pulse-14-gen3 = import ./tuxedo/pulse/14/gen3;
tuxedo-pulse-15-gen2 = import ./tuxedo/pulse/15/gen2; tuxedo-pulse-15-gen2 = import ./tuxedo/pulse/15/gen2;
xiaomi-redmibook-15-pro-2021 = import ./xiaomi/redmibook/15-pro-2021;
xiaomi-redmibook-16-pro-2024 = import ./xiaomi/redmibook/16-pro-2024; xiaomi-redmibook-16-pro-2024 = import ./xiaomi/redmibook/16-pro-2024;
common-cpu-amd = import ./common/cpu/amd; common-cpu-amd = import ./common/cpu/amd;
@ -390,5 +453,48 @@
common-pc-laptop-ssd = import ./common/pc/ssd; common-pc-laptop-ssd = import ./common/pc/ssd;
common-pc-ssd = import ./common/pc/ssd; common-pc-ssd = import ./common/pc/ssd;
}; };
# Add formatter for `nix fmt`
formatter = eachSystemFormat (
pkgs: _system:
(privateInputs.treefmt-nix.lib.evalModule pkgs ./tests/treefmt.nix).config.build.wrapper
);
# Add packages
packages = eachSystem (
pkgs: system:
{
run-tests = pkgs.callPackage ./tests/run-tests.nix {
inherit self;
};
}
// pkgs.lib.optionalAttrs (system == "aarch64-linux") {
# Boot images for NXP i.MX boards (aarch64-linux only)
ucm-imx95-boot = (pkgs.callPackage ./compulab/ucm-imx95/bsp/ucm-imx95-boot.nix { }).imx95-boot;
imx93-boot = (pkgs.callPackage ./nxp/imx93-evk/bsp/imx93-boot.nix { }).imx93-boot;
imx8mp-boot = (pkgs.callPackage ./nxp/imx8mp-evk/bsp/imx8mp-boot.nix { }).imx8m-boot;
imx8mq-boot = (pkgs.callPackage ./nxp/imx8mq-evk/bsp/imx8mq-boot.nix { }).imx8m-boot;
}
);
# Add checks for `nix run .#run-tests`
checks = eachSystem (
pkgs: system:
let
treefmtEval = privateInputs.treefmt-nix.lib.evalModule pkgs ./tests/treefmt.nix;
nixosTests = import ./tests/nixos-tests.nix {
inherit
self
privateInputs
system
pkgs
;
};
in
pkgs.lib.optionalAttrs (self.formatter ? ${system}) {
formatting = treefmtEval.config.build.check self;
}
// nixosTests
);
}; };
} }

View file

@ -2,16 +2,13 @@
## Updating Firmware ## Updating Firmware
First put enable `fwupd` Everything is updateable through fwupd, so it's enabled by default.
```nix To get the latest firmware, run:
services.fwupd.enable = true;
```
Then run
```sh ```sh
$ fwupdmgr update $ fwupdmgr refresh
$ fwupdmgr update
``` ```
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop12.RPL.BIOS.firmware) - [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop12.RPL.BIOS.firmware)

View file

@ -4,4 +4,10 @@
../common ../common
../../../common/cpu/intel ../../../common/cpu/intel
]; ];
# If this module isn't built into the kernel, we need to make sure it loads
# before soc_button_array. Otherwise the tablet mode gpio doesn't work.
# If correctly loaded, dmesg should show
# input: gpio-keys as /devices/platform/INT33D3:00
boot.initrd.kernelModules = [ "pinctrl_tigerlake" ];
} }

View file

@ -16,4 +16,7 @@
# Needed for desktop environments to detect display orientation # Needed for desktop environments to detect display orientation
hardware.sensor.iio.enable = lib.mkDefault true; hardware.sensor.iio.enable = lib.mkDefault true;
# Everything is updateable through fwupd
services.fwupd.enable = true;
} }

View file

@ -2,16 +2,13 @@
## Updating Firmware ## Updating Firmware
First put enable `fwupd` Everything is updateable through fwupd, so it's enabled by default.
```nix To get the latest firmware, run:
services.fwupd.enable = true;
```
Then run
```sh ```sh
$ fwupdmgr update $ fwupdmgr refresh
$ fwupdmgr update
``` ```
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop.Ryzen7040.BIOS.firmware) - [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop.Ryzen7040.BIOS.firmware)

View file

@ -14,7 +14,6 @@ in
../common/amd.nix ../common/amd.nix
../../../common/cpu/amd/raphael/igpu.nix ../../../common/cpu/amd/raphael/igpu.nix
]; ];
options = { options = {
hardware.framework.amd-7040.preventWakeOnAC = lib.mkOption { hardware.framework.amd-7040.preventWakeOnAC = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
@ -30,6 +29,8 @@ in
}; };
config = { config = {
services.fwupd.enable = true;
# Workaround applied upstream in Linux >=6.7 (on BIOS 03.03) # Workaround applied upstream in Linux >=6.7 (on BIOS 03.03)
# https://github.com/torvalds/linux/commit/a55bdad5dfd1efd4ed9ffe518897a21ca8e4e193 # https://github.com/torvalds/linux/commit/a55bdad5dfd1efd4ed9ffe518897a21ca8e4e193
services.udev.extraRules = services.udev.extraRules =

View file

@ -2,14 +2,13 @@
## Updating Firmware ## Updating Firmware
First put enable `fwupd` Everything is updateable through fwupd, so it's enabled by default.
```nix To get the latest firmware, run:
services.fwupd.enable = true;
```
Then run
```sh ```sh
$ fwupdmgr update $ fwupdmgr refresh
$ fwupdmgr update
``` ```
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop.RyzenAI300.BIOS.firmware)

View file

@ -10,6 +10,17 @@
../common ../common
../common/amd.nix ../common/amd.nix
]; ];
config.hardware.framework.laptop13.audioEnhancement.rawDeviceName =
lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo"; config = {
# Everything is updateable through fwupd
services.fwupd.enable = true;
hardware.framework.laptop13.audioEnhancement.rawDeviceName =
lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo";
# suspend works with 6.15
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.15") (
lib.mkDefault pkgs.linuxPackages_latest
);
};
} }

View file

@ -6,21 +6,16 @@
../../../common/gpu/amd ../../../common/gpu/amd
]; ];
boot.kernelParams = boot.kernelParams = [
[ # There seems to be an issue with panel self-refresh (PSR) that
# There seems to be an issue with panel self-refresh (PSR) that # causes hangs for users.
# causes hangs for users. #
# # https://community.frame.work/t/fedora-kde-becomes-suddenly-slow/58459
# https://community.frame.work/t/fedora-kde-becomes-suddenly-slow/58459 # https://gitlab.freedesktop.org/drm/amd/-/issues/3647
# https://gitlab.freedesktop.org/drm/amd/-/issues/3647 "amdgpu.dcdebugmask=0x10"
"amdgpu.dcdebugmask=0x10" ]
] # Workaround for SuspendThenHibernate: https://lore.kernel.org/linux-kernel/20231106162310.85711-1-mario.limonciello@amd.com/
# Workaround for SuspendThenHibernate: https://lore.kernel.org/linux-kernel/20231106162310.85711-1-mario.limonciello@amd.com/ ++ lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") [
++ lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") [ "rtc_cmos.use_acpi_alarm=1"
"rtc_cmos.use_acpi_alarm=1" ];
];
# AMD has better battery life with PPD over TLP:
# https://community.frame.work/t/responded-amd-7040-sleep-states/38101/13
services.power-profiles-daemon.enable = lib.mkDefault true;
} }

View file

@ -9,16 +9,15 @@
../../../common/cpu/intel ../../../common/cpu/intel
]; ];
boot.kernelParams = boot.kernelParams = [
[ # For Power consumption
# For Power consumption # https://community.frame.work/t/linux-battery-life-tuning/6665/156
# https://community.frame.work/t/linux-battery-life-tuning/6665/156 "nvme.noacpi=1"
"nvme.noacpi=1" ]
] # Fixes a regression in s2idle, making it more power efficient than deep sleep
# Fixes a regression in s2idle, making it more power efficient than deep sleep # Update 04/2024: It appears that s2idle-regression got fixed in newer kernel-versions (SebTM)
# Update 04/2024: It appears that s2idle-regression got fixed in newer kernel-versions (SebTM) # (see: https://github.com/NixOS/nixos-hardware/pull/903#discussion_r1556096657)
# (see: https://github.com/NixOS/nixos-hardware/pull/903#discussion_r1556096657) ++ lib.lists.optional (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") "acpi_osi=\"!Windows 2020\"";
++ lib.lists.optional (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") "acpi_osi=\"!Windows 2020\"";
# Requires at least 5.16 for working wi-fi and bluetooth. # Requires at least 5.16 for working wi-fi and bluetooth.
# https://community.frame.work/t/using-the-ax210-with-linux-on-the-framework-laptop/1844/89 # https://community.frame.work/t/using-the-ax210-with-linux-on-the-framework-laptop/1844/89

View file

@ -2,14 +2,13 @@
## Updating Firmware ## Updating Firmware
First put enable `fwupd` Everything is updateable through fwupd, so it's enabled by default.
```nix To get the latest firmware, run:
services.fwupd.enable = true;
```
Then run
```sh ```sh
$ fwupdmgr update $ fwupdmgr refresh
$ fwupdmgr update
``` ```
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop.MTL.BIOS.firmware)

View file

@ -11,34 +11,15 @@
../common/intel.nix ../common/intel.nix
]; ];
# Everything is updateable through fwupd
services.fwupd.enable = true;
# Need at least 6.9 to make suspend properly # Need at least 6.9 to make suspend properly
# Specifically this patch: https://github.com/torvalds/linux/commit/073237281a508ac80ec025872ad7de50cfb5a28a # Specifically this patch: https://github.com/torvalds/linux/commit/073237281a508ac80ec025872ad7de50cfb5a28a
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.9") ( boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.9") (
lib.mkDefault pkgs.linuxPackages_latest lib.mkDefault pkgs.linuxPackages_latest
); );
# Intel NPU Driver hardware.framework.laptop13.audioEnhancement.rawDeviceName =
# https://discourse.nixos.org/t/new-installation-on-asus-zenbook-ux5406-intel-vpu-firmware-error-2/58732/2 lib.mkDefault "alsa_output.pci-0000_00_1f.3.analog-stereo";
hardware.firmware = lib.optionals (config.hardware.enableRedistributableFirmware) [
(
let
model = "37xx";
version = "0.0";
firmware = pkgs.fetchurl {
url = "https://github.com/intel/linux-npu-driver/raw/v1.13.0/firmware/bin/vpu_${model}_v${version}.bin";
hash = "sha256-Mpoeq8HrwChjtHALsss/7QsFtDYAoFNsnhllU0xp3os=";
};
in
pkgs.runCommand "intel-vpu-firmware-${model}-${version}" { } ''
mkdir -p "$out/lib/firmware/intel/vpu"
cp '${firmware}' "$out/lib/firmware/intel/vpu/vpu_${model}_v${version}.bin"
''
)
];
warnings = lib.mkIf (!config.hardware.enableRedistributableFirmware) [
''For Intel NPU support, set the option: hardware.enableRedistributableFirmware = true;''
];
} }

View file

@ -1,4 +1,14 @@
# [Framework Laptop 16](https://frame.work/) # [Framework Laptop 16](https://frame.work/)
## Updating Firmware ## Updating Firmware
The Framework Laptop 16 uses LVFS, so it can be updated via fwupd; see https://wiki.nixos.org/wiki/Fwupd for details
Everything is updateable through fwupd, so it's enabled by default.
To get the latest firmware, run:
```sh
$ fwupdmgr refresh
$ fwupdmgr update
```
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop16.Ryzen7040.BIOS.firmware)

View file

@ -12,4 +12,6 @@
../../../common/cpu/amd/raphael/igpu.nix ../../../common/cpu/amd/raphael/igpu.nix
]; ];
# Everything is updateable through fwupd
services.fwupd.enable = true;
} }

View file

@ -0,0 +1,25 @@
# [Framework Laptop 16 AMD AI 300 Series](https://frame.work/)
## nvidia
If you have an nvidia dGPU module, you can enable it via the nvidia open drivers:
```
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia.open = true; # see the note above
```
See also [NVIDIA](https://wiki.nixos.org/wiki/NVIDIA) on the NixOS Wiki.
## Updating Firmware
Everything is updateable through fwupd, so it's enabled by default.
To get the latest firmware, run:
```sh
$ fwupdmgr refresh
$ fwupdmgr update
```
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop16.RyzenAI300.BIOS.firmware)

View file

@ -0,0 +1,21 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
../common
../common/amd.nix
];
# 6.14 is the minimum recommended kernel, 6.15 has many useful changes, too
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.15") (
lib.mkDefault pkgs.linuxPackages_latest
);
# Everything is updateable through fwupd
services.fwupd.enable = true;
}

View file

@ -6,21 +6,16 @@
../../../common/gpu/amd ../../../common/gpu/amd
]; ];
boot.kernelParams = boot.kernelParams = [
[ # There seems to be an issue with panel self-refresh (PSR) that
# There seems to be an issue with panel self-refresh (PSR) that # causes hangs for users.
# causes hangs for users. #
# # https://community.frame.work/t/fedora-kde-becomes-suddenly-slow/58459
# https://community.frame.work/t/fedora-kde-becomes-suddenly-slow/58459 # https://gitlab.freedesktop.org/drm/amd/-/issues/3647
# https://gitlab.freedesktop.org/drm/amd/-/issues/3647 "amdgpu.dcdebugmask=0x10"
"amdgpu.dcdebugmask=0x10" ]
] # Workaround for SuspendThenHibernate: https://lore.kernel.org/linux-kernel/20231106162310.85711-1-mario.limonciello@amd.com/
# Workaround for SuspendThenHibernate: https://lore.kernel.org/linux-kernel/20231106162310.85711-1-mario.limonciello@amd.com/ ++ lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") [
++ lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") [ "rtc_cmos.use_acpi_alarm=1"
"rtc_cmos.use_acpi_alarm=1" ];
];
# AMD has better battery life with PPD over TLP:
# https://community.frame.work/t/responded-amd-7040-sleep-states/38101/13
services.power-profiles-daemon.enable = lib.mkDefault true;
} }

View file

@ -8,12 +8,6 @@
../../framework-tool.nix ../../framework-tool.nix
]; ];
# Fix TRRS headphones missing a mic
# https://community.frame.work/t/headset-microphone-on-linux/12387/3
boot.extraModprobeConfig = lib.mkIf (lib.versionOlder config.boot.kernelPackages.kernel.version "6.6.8") ''
options snd-hda-intel model=dell-headset-multi
'';
# For fingerprint support # For fingerprint support
services.fprintd.enable = lib.mkDefault true; services.fprintd.enable = lib.mkDefault true;
@ -50,4 +44,7 @@
MatchDMIModalias=dmi:*svnFramework:pnLaptop16* MatchDMIModalias=dmi:*svnFramework:pnLaptop16*
AttrKeyboardIntegration=internal AttrKeyboardIntegration=internal
''; '';
# Everything is updateable through fwupd
services.fwupd.enable = true;
} }

View file

@ -0,0 +1,23 @@
# [Framework Desktop](https://frame.work/desktop)
## Kernel version
The recommended version is 6.15 or newer, it has good GPU and also EC firmware support (for sensors and ARGB).
The lowest recommended version is 6.14. It has good GPU support already.
The absolute lowest that runs okay on headless systems is 6.11, but the GPU is not fully supported yet.
## Updating Firmware
First put enable `fwupd`
```nix
services.fwupd.enable = true;
```
Then run
```sh
$ fwupdmgr update
```
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Desktop.RyzenAIMax300.BIOS.firmware)

View file

@ -0,0 +1,20 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
../../../common/cpu/amd
../../../common/cpu/amd/pstate.nix
../../../common/gpu/amd
../../../common/pc/ssd
../../framework-tool.nix
];
# 6.14 and above have good GPU support
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.14") (
lib.mkDefault pkgs.linuxPackages_latest
);
}

View file

@ -1,56 +1,35 @@
{ {
config, config,
lib, lib,
pkgs,
... ...
}: }:
let
kernel_version_compatible = lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.10";
in
{ {
options.hardware.framework.enableKmod = options.hardware.framework.enableKmod =
(lib.mkEnableOption "Enable the community created Framework kernel module that allows interacting with the embedded controller from sysfs.") (lib.mkEnableOption "the community-created Framework kernel module that allows interacting with the embedded controller from sysfs.")
// { // {
# enable by default on NixOS >= 24.05 and kernel >= 6.10 # enable by default on NixOS >= 24.05 and kernel >= 6.10
default = lib.and (lib.versionAtLeast (lib.versions.majorMinor lib.version) "24.05") kernel_version_compatible; default = lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.10";
defaultText = "enabled by default on NixOS >= 24.05 and kernel >= 6.10"; defaultText = "enabled by default if kernel >= 6.10";
}; };
config.boot = lib.mkIf config.hardware.framework.enableKmod { config = lib.mkIf config.hardware.framework.enableKmod {
extraModulePackages = with config.boot.kernelPackages; [ assertions = [
framework-laptop-kmod {
]; assertion = lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.10";
message = "The framework laptop kernel module requires Linux 6.10 or above";
# https://github.com/DHowett/framework-laptop-kmod?tab=readme-ov-file#usage
kernelModules = [
"cros_ec"
"cros_ec_lpcs"
];
# add required patch if enabled on kernel <6.10
kernelPatches = lib.mkIf (!kernel_version_compatible) [
rec {
name = "platform/chrome: cros_ec_lpc: add support for AMD Framework Laptops";
msgid = "20240403004713.130365-1-dustin@howett.net";
version = "3";
hash = "sha256-aQSyys8CMzlj9EdNhg8vtp76fg1qEwUVeJL0E+8w5HU=";
patch =
pkgs.runCommandLocal "patch-${msgid}"
{
nativeBuildInputs = with pkgs; [
b4
git
cacert
];
SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
outputHash = hash;
}
''
export HOME="$TMP"
PYTHONHASHSEED=0 ${pkgs.b4}/bin/b4 -n am -C -T -v ${version} -o- "${msgid}" > "$out"
'';
} }
]; ];
boot = {
extraModulePackages = with config.boot.kernelPackages; [
framework-laptop-kmod
];
# https://github.com/DHowett/framework-laptop-kmod?tab=readme-ov-file#usage
kernelModules = [
"cros_ec"
"cros_ec_lpcs"
];
};
}; };
} }

19
fydetab/duo/README.md Normal file
View file

@ -0,0 +1,19 @@
# Fydetab Duo
The Fydetab Duo is an open source and hackable tablet by FydeOS.
## Features
- Display: **works**
- X11: **untested**
- Wayland: **not working** (niri, sway, COSMIC)
- GPU driver: **not working**
- WiFi: **working**
- Cellular: **untested**
- SD card: **untested**
- Sound: **untested**
- Fingerprint: **untested**
## Flashing
Flashing requires `rkdeveloptool` and using it to write the new bootloader and eMMC image. To flash, press and hold the mask rom button on the board. Ensure a USB C cable is already plugged into the host computer. Run `nix build .#nixosConfigurations.<hostname>.config.hardware.rockchip.platformFirmware` and then use `rkdeveloptool ul result/rk3588_spl_loader_v1.18.113.bin`. The NixOS image can then be downloaded using `rkdeveloptool wl 0`, it is recommended to use the disko image configuration which is provided.

43
fydetab/duo/ap6275p.nix Normal file
View file

@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation (_finalAttrs: {
pname = "ap6275p-firmware";
version = "2023-11-05";
src = fetchFromGitHub {
owner = "Joshua-Riek";
repo = "firmware";
rev = "621ac45f5d931522bc08b51b995b938778973d2a";
hash = "sha256-ksAOxZTnEka9SirHYxroLMbKi+99FY72X2z1pJhgYnY=";
};
compressFirmware = false;
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/lib/firmware/ap6275p
install -m644 ap6275p/BCM4362A2.hcd $out/lib/firmware/ap6275p/
install -m644 ap6275p/clm_bcm43752a2_pcie_ag.blob $out/lib/firmware/ap6275p/
install -m644 ap6275p/fw_bcm43752a2_pcie_ag.bin $out/lib/firmware/ap6275p/
install -m644 ap6275p/nvram_AP6275P.txt $out/lib/firmware/ap6275p/
install -m644 ap6275p/config.txt $out/lib/firmware/ap6275p/
mv $out/lib/firmware/ap6275p/nvram_AP6275P.txt $out/lib/firmware/ap6275p/nvram_ap6275p.txt
mv $out/lib/firmware/ap6275p/config.txt $out/lib/firmware/ap6275p/config_bcm43752a2_pcie_ag.txt
runHook postInstall
'';
meta = {
description = "Firmware for the AP6275P WiFi/Bluetooth module";
homepage = "https://github.com/Joshua-Riek/firmware";
license = lib.licenses.unfree;
};
})

View file

@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchurl,
autoPatchelfHook,
}:
stdenv.mkDerivation (_finalAttrs: {
pname = "brcm-patchram-plus";
version = "2024-08-23";
src = fetchurl {
url = "https://github.com/Linux-for-Fydetab-Duo/pkgbuilds/raw/fd5ebe4914f32c5a1c4fc15b4fb5a62bad2da1ea/fydetabduo-post-install/brcm_patchram_plus";
hash = "sha256-fZ1ximZcosZDYbveEkyMnasLWpcifaZ5CKz7QKtqKZQ=";
};
nativeBuildInputs = [
autoPatchelfHook
];
unpackPhase = ''
runHook preUnpack
cp --no-preserve=ownership,mode $src brcm_patchram_plus
chmod +x brcm_patchram_plus
runHook postUnpack
'';
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp brcm_patchram_plus $out/bin
autoPatchelf $out/bin/brcm_patchram_plus
runHook postInstall
'';
meta = {
license = lib.licenses.unfree;
mainProgram = "brcm_patchram_plus";
};
})

9549
fydetab/duo/config Normal file

File diff suppressed because it is too large Load diff

28
fydetab/duo/config.nix Normal file
View file

@ -0,0 +1,28 @@
{
CONFIG_DEVTMPFS = "y";
CONFIG_CGROUPS = "y";
CONFIG_INOTIFY_USER = "y";
CONFIG_SIGNALFD = "y";
CONFIG_TIMERFD = "y";
CONFIG_EPOLL = "y";
CONFIG_SYSFS = "y";
CONFIG_PROC_FS = "y";
CONFIG_FHANDLE = "y";
CONFIG_CRYPTO_USER_API_HASH = "y";
CONFIG_CRYPTO_HMAC = "y";
CONFIG_CRYPTO_SHA256 = "y";
CONFIG_DMIID = "y";
CONFIG_AUTOFS_FS = "y";
CONFIG_TMPFS_POSIX_ACL = "y";
CONFIG_TMPFS_XATTR = "y";
CONFIG_SECCOMP = "y";
CONFIG_TMPFS = "y";
CONFIG_BLK_DEV_INITRD = "y";
CONFIG_EFI_STUB = "y";
CONFIG_MODULES = "y";
CONFIG_BINFMT_ELF = "y";
CONFIG_UNIX = "y";
CONFIG_NET = "y";
CONFIG_IP_NF_MATCH_RPFILTER = "m";
CONFIG_ATA_PIIX = "m";
}

141
fydetab/duo/default.nix Normal file
View file

@ -0,0 +1,141 @@
{
config,
pkgs,
lib,
...
}:
let
ap6275pFirmware = pkgs.callPackage ./ap6275p.nix { };
in
{
imports = [
../../rockchip
];
options.hardware.fydetab.duo = {
enablePanthor = lib.mkEnableOption "Panthor GPU driver";
};
config = {
boot = lib.mkMerge [
{
initrd.includeDefaultModules = false;
kernelPackages = pkgs.callPackage ./kernel.nix { };
extraModprobeConfig = ''
options bcmdhd firmware_path=${ap6275pFirmware}/lib/firmware/ap6275p/fw_bcm43752a2_pcie_ag.bin nvram_path=${ap6275pFirmware}/lib/firmware/ap6275p/nvram_AP6275P.txt conf_path=${ap6275pFirmware}/lib/firmware/ap6275p/config.txt
'';
kernelParams = [
"console=ttyFIQ0"
"console=tty1"
"console=both"
"earlycon=uart8250,mmio32,0xfeb50000"
];
kernelModules = [
"himax_tp"
"mh248-fyde"
"hci_uart"
];
}
(lib.mkIf config.hardware.bluetooth.enable {
kernelModules = [
"bluetooth"
];
})
];
hardware = lib.mkMerge [
{
deviceTree = lib.mkMerge [
{
name = "rockchip/rk3588s-fydetab-duo.dtb";
}
(lib.mkIf config.hardware.fydetab.duo.enablePanthor {
overlays = [
{
name = "fydetab-panthor-gpu";
dtsText = ''
/dts-v1/;
/plugin/;
#include <dt-bindings/clock/rk3588-cru.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/power/rk3588-power.h>
/ {
compatible = "rockchip,rk3588s-tablet-12c-linux";
fragment@0 {
target = <&gpu>;
__overlay__ {
status = "disabled";
};
};
fragment@1 {
target = <&gpu_panthor>;
__overlay__ {
status = "okay";
mali-supply = <&vdd_gpu_s0>;
};
};
};
'';
}
];
})
];
rockchip = {
rk3588.enable = true;
platformFirmware = pkgs.callPackage ./u-boot.nix { };
};
}
(lib.mkIf config.networking.wireless.iwd.enable {
firmware = [
# Only iwd is supported by the interface
ap6275pFirmware
];
})
(lib.mkIf config.hardware.graphics.enable {
firmware = [
(pkgs.callPackage ./mali-g610.nix { })
];
})
(lib.mkIf config.hardware.sensor.iio.enable {
firmware = [
(pkgs.callPackage ./himax.nix { })
];
})
];
systemd.services.bluetooth-fydetab = lib.mkIf config.hardware.bluetooth.enable {
description = "FydeTab Duo Bluetooth fix";
wantedBy = [ "multi-user.target" ];
serviceConfig.Type = "simple";
script = ''
${lib.getExe' pkgs.util-linux "rfkill"} block 0
${lib.getExe' pkgs.util-linux "rfkill"} block bluetooth
sleep 2
${lib.getExe' pkgs.util-linux "rfkill"} unblock 0
${lib.getExe' pkgs.util-linux "rfkill"} unblock bluetooth
sleep 1
${
lib.getExe (pkgs.callPackage ./brcm-patchram.nix { })
} --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram ${ap6275pFirmware}/lib/firmware/ap6275p/BCM4362A2.hcd /dev/ttyS9
'';
};
services.udev = {
extraHwdb = ''
# Fydetab
evdev:input:b0018v0000p0000e0000*
EVDEV_ABS_00=::265
EVDEV_ABS_01=::166
'';
extraRules = ''
SUBSYSTEM=="iio" ATTR{name}=="lis2dw12" ENV{ACCEL_MOUNT_MATRIX}="1,0,0;0,-1,0;0,0,1"
SUBSYSTEM=="input", ENV{ID_INPUT_TABLET}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1 0 0 1"
'';
};
};
}

35
fydetab/duo/himax.nix Normal file
View file

@ -0,0 +1,35 @@
{
stdenv,
fetchurl,
lib,
}:
stdenv.mkDerivation (_finalAttrs: {
pname = "himax-firmware";
version = "2024-11-09";
src = fetchurl {
url = "https://github.com/Linux-for-Fydetab-Duo/pkgbuilds/raw/f4c012bd42d87f677370f987f703982d53cd233d/fydetabduo-post-install/Himax_firmware.bin";
hash = "sha256-z0p/zXcNTBdhKCV6GmM2C8C02lu4Wkb2HP+Ir/nQJTc=";
};
compressFirmware = false;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/lib/firmware
cp --no-preserve=ownership,mode $src $out/lib/firmware/Himax_firmware.bin
ls -ahl $out/lib/firmware
runHook postInstall
'';
meta = {
description = "Himax sensor firmware";
license = lib.licenses.unfree;
};
})

18
fydetab/duo/kernel.nix Normal file
View file

@ -0,0 +1,18 @@
{
linuxPackagesFor,
linuxManualConfig,
fetchFromGitHub,
}:
linuxPackagesFor (linuxManualConfig rec {
version = "6.1.75";
modDirVersion = version;
src = fetchFromGitHub {
owner = "Linux-for-Fydetab-Duo";
repo = "linux-rockchip";
rev = "74a1657bc526e336ff66add2fa83a0522957c4cb";
hash = "sha256-Q0uCxebYw3c5Z/ZxCmTNyEfuYQQcPaw5qpvRTSWdtVo=";
};
configfile = ./config;
config = import ./config.nix;
features.netfilterRPFilter = true;
})

35
fydetab/duo/mali-g610.nix Normal file
View file

@ -0,0 +1,35 @@
{
stdenv,
fetchurl,
lib,
}:
stdenv.mkDerivation (_finalAttrs: {
pname = "mali-g610-firmware";
version = "2024-08-23";
src = fetchurl {
url = "https://github.com/Linux-for-Fydetab-Duo/pkgbuilds/raw/f4c012bd42d87f677370f987f703982d53cd233d/mali-G610-firmware-rkr4/mali_csffw.bin";
hash = "sha256-Ei8ezBTS3g/pP8Al+Md+RTGr0AT6Fy/+aeQM19FdXGY=";
};
compressFirmware = false;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/lib/firmware
cp --no-preserve=ownership,mode $src $out/lib/firmware/mali_csffw.bin
ls -ahl $out/lib/firmware
runHook postInstall
'';
meta = {
description = "Mali G610 firmware for Rockchip RK3588(S) using the rkr4 kernel or later";
license = lib.licenses.unfree;
};
})

99
fydetab/duo/u-boot.nix Normal file
View file

@ -0,0 +1,99 @@
{
lib,
stdenv,
buildUBoot,
armTrustedFirmwareRK3588,
rkbin,
fetchpatch,
fetchurl,
fetchFromGitHub,
}:
buildUBoot {
defconfig = "rk3588s_fydetab_duo_defconfig";
extraMeta.platforms = [ "aarch64-linux" ];
BL31 = "${armTrustedFirmwareRK3588}/bl31.elf";
ROCKCHIP_TPL = rkbin.TPL_RK3588;
CROSS_COMPILE_ARM64 = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}";
INI_LOADER = fetchurl {
url = "https://github.com/rockchip-linux/rkbin/raw/${rkbin.src.rev}/RKBOOT/RK3588MINIALL.ini";
hash = "sha256-87Vt6nXVt+jRrRatOlwGJXYqSj9nJz1LUfQnviIVb7I=";
};
version = "5.10.0";
filesToInstall = [
"idbloader.img"
"u-boot.itb"
"rk3588_spl_loader_v1.18.113.bin"
"tools/resource_tool"
];
NIX_CFLAGS_COMPILE = "-Wno-error=enum-int-mismatch -Wno-error=maybe-uninitialized";
extraMakeFlags = [
"CROSS_COMPILE_ARM64=${stdenv.cc.targetPrefix}"
];
extraPatches =
lib.attrValues (
lib.mapAttrs
(
name: hash:
fetchpatch {
url = "https://github.com/openFyde/overlay-fydetab_duo-openfyde/raw/fd84c5302908dea6a819c2dcd025a2bf93b5d4e8/sys-boot/rk-uboot/files/rk8/${name}";
inherit hash;
}
)
{
"001-add-avdd-avee-in-rockchip_panel.patch" = "sha256-qmBdmSejcDn4ulvOTLjfBsNh6nl12sbobtX4mhTMMKY=";
"002-add-fydetab-support.patch" = "sha256-QlnhdkoOQcGxRiIOx1jNqDLb/abB/+l+hAQ8vKCpwOw=";
"003-match-display-config-with-kernel.patch" =
"sha256-hmICiAgYjjBryJIuNXOffiYTssKSaV1cDeSgRTdq51k=";
"004-enable-sdcard-for-fydetab.patch" = "sha256-xrZ1kuije6X+huvarDIGFhMy2Puq0XvlKa1ZfgGcwlQ=";
"005-display-logo-on-loader-mode.patch" = "sha256-NMQHJMl8s1NUrDSnUX8gAmSNaurBU+m0xKd4TtEPmz4=";
"006-update-deconfig.patch" = "sha256-ZukJEZjEFaN6F4+3VnHfkfdaOTQmkw3fdClk8OeOYRw=";
"007-add-deinit-after-show-bmp-add-ums-mode.patch" =
"sha256-4pHV+qiXMNHcIlC1ciFQsejVZvdnEhfs7QBbge9kHoM=";
"008-add-charging-mode.patch" = "sha256-AToALdx5mwyQ875ZnrpqbuUE9oGonH76RaUq6757U1E=";
"009-set-lowpower-to-3.patch" = "sha256-CYYmY8vQcOIiA3QPvZt+AgI/BbkykoKGqLECim7kAyw=";
"010-fix-compiling-issue.patch" = "sha256-hmiFFe0JuxXMPgeQFWI8qZop+VPmldxgs0Wowchswbs=";
"011-fix-battery-temp.patch" = "sha256-MXe5FGzGETZ3wpW7ur5rBLysdNlDMwiq7/LNxdDpA0E=";
"012-fix-make.patch" = "sha256-/8ZfhB04R4zIddOXJEx8GcnYoljYsGolbt/oQYsm/Xk=";
"013-change-exit-charge-level.patch" = "sha256-84zy5yzoHyAutVmbCvvB5t4uJFQGsMt3jTUgVs5SIog=";
"014-fix-spl-sdcard-issue.patch" = "sha256-jIHybAm9XKDbWF3xG4E9K8x2j5nfpHOp6/2gWDlQ6aU=";
}
)
++ [
./uboot-remove-sig-req.patch
];
src = fetchFromGitHub {
owner = "rockchip-linux";
repo = "u-boot";
rev = "63c55618fbdc36333db4cf12f7d6a28f0a178017";
hash = "sha256-OZmR6BLwCMK6lq9qmetIdrjSJJWcx7Po1OE9dBWL+Ew=";
};
extraConfig = ''
CONFIG_FIT_SIGNATURE=n
CONFIG_TPL_BUILD=y
CONFIG_SPL_FIT_SIGNATURE=n
CONFIG_SPL_FIT_ROLLBACK_PROTECT=n
CONFIG_CMD_FDT=y
CONFIG_DEFAULT_FDT_FILE="rk3588s-fydetab-duo.dtb"
CONFIG_CMD_PXE=y
'';
preBuild = ''
patchShebangs arch/arm/mach-rockchip/make_fit_atf.sh
patchShebangs arch/arm/mach-rockchip/decode_bl31.py
# Needs write access to generate the spl
cp -r ${rkbin.src} rkbin
chmod -R u+rw rkbin
export RKBIN_TOOLS=$(readlink -e rkbin/tools)
ln -s ${rkbin}/bin bin
cp ${rkbin.src}/tools/boot_merger tools/
cp ${rkbin.src}/tools/mkimage tools/
'';
postBuild = ''
sh ./make.sh --spl
sh ./make.sh --idblock
sh ./make.sh itb
mv idblock.bin idbloader.img
'';
}

View file

@ -0,0 +1,11 @@
--- a/tools/Makefile 2025-08-17 22:31:27.653078358 -0700
+++ b/tools/Makefile 2025-08-17 22:30:09.551827481 -0700
@@ -54,7 +54,7 @@
hostprogs-y += mkenvimage
mkenvimage-objs := mkenvimage.o os_support.o lib/crc32.o
-hostprogs-y += dumpimage mkimage
+hostprogs-$(CONFIG_FIT_SIGNATURE) += dumpimage mkimage
hostprogs-$(CONFIG_FIT_SIGNATURE) += fit_info fit_check_sign
# Rockchip pack tools

View file

@ -10,11 +10,6 @@
"video=eDP-1:panel_orientation=right_side_up" "video=eDP-1:panel_orientation=right_side_up"
]; ];
services.tlp.enable = lib.mkDefault (
(lib.versionOlder (lib.versions.majorMinor lib.version) "21.05")
|| !config.services.power-profiles-daemon.enable
);
# Required for grub to properly display the boot menu. # Required for grub to properly display the boot menu.
boot.loader.grub.gfxmodeEfi = lib.mkDefault "720x1280x32"; boot.loader.grub.gfxmodeEfi = lib.mkDefault "720x1280x32";

View file

@ -0,0 +1,14 @@
{ config, lib, ... }:
{
imports = [
../../../common/cpu/intel/meteor-lake
../../../common/pc
../../../common/pc/laptop
../../../common/pc/ssd
];
config = {
services.thermald.enable = lib.mkDefault true;
};
}

View file

@ -0,0 +1,11 @@
{ lib, ... }:
{
imports = [
../../../common/cpu/intel/broadwell
../../../common/pc
../../../common/pc/ssd
];
services.thermald.enable = lib.mkDefault true;
}

View file

@ -36,7 +36,7 @@ in
nixpkgs.overlays = [ (import ./overlay.nix) ]; nixpkgs.overlays = [ (import ./overlay.nix) ];
nixpkgs.hostPlatform = "armv7l-linux"; nixpkgs.hostPlatform.system = "armv7l-linux";
boot.initrd.availableKernelModules = [ "ahci_mvebu" ]; boot.initrd.availableKernelModules = [ "ahci_mvebu" ];

View file

@ -26,6 +26,10 @@
# See https://wiki.archlinux.org/title/Dell_XPS_16_(9640)#Random_freezes # See https://wiki.archlinux.org/title/Dell_XPS_16_(9640)#Random_freezes
"iommu.strict=1" "iommu.strict=1"
"iommu.passthrough=1" "iommu.passthrough=1"
# Workaround: i915 0000:00:02.0: [drm] *ERROR* [CRTC:82:pipe A] flip_done timed out
# See https://github.com/pop-os/pop/issues/3130
"i915.dmc_firmware_path=\"\""
]; ];
}; };

View file

@ -17,9 +17,4 @@
# Cooling management # Cooling management
services.thermald.enable = lib.mkDefault true; services.thermald.enable = lib.mkDefault true;
# tlp defaults to "powersave", which doesn't exist on this laptop
services.tlp.settings = {
CPU_SCALING_GOVERNOR_ON_BAT = "schedutil";
};
} }

View file

@ -10,12 +10,11 @@
# remove all packages for amd igpu. I only removed amdgpu from # remove all packages for amd igpu. I only removed amdgpu from
# services.xserver.videoDrivers by overriding. This is because the specialization # services.xserver.videoDrivers by overriding. This is because the specialization
# of nix cannot implement such an operation as canceling an import. # of nix cannot implement such an operation as canceling an import.
hardware = hardware = {
{ nvidia.prime.offload.enable = false;
nvidia.prime.offload.enable = false; }
} // lib.optionalAttrs (options ? amdgpu.opencl.enable) {
// lib.optionalAttrs (options ? amdgpu.opencl.enable) { # introduced in https://github.com/NixOS/nixpkgs/pull/319865
# introduced in https://github.com/NixOS/nixpkgs/pull/319865 amdgpu.opencl.enable = lib.mkDefault false;
amdgpu.opencl.enable = lib.mkDefault false; };
};
} }

View file

@ -7,7 +7,7 @@
let let
# This file was obtained from the display while "DDG" mode was enabled. # This file was obtained from the display while "DDG" mode was enabled.
chip_edid = pkgs.runCommandNoCC "chip_edid" { } '' chip_edid = pkgs.runCommand "chip_edid" { } ''
mkdir -p $out/lib/firmware/edid mkdir -p $out/lib/firmware/edid
cp ${./16ach6h.bin} $out/lib/firmware/edid/16ach6h.bin cp ${./16ach6h.bin} $out/lib/firmware/edid/16ach6h.bin
''; '';

View file

@ -10,12 +10,11 @@
# remove all packages for amd igpu. I only removed amdgpu from # remove all packages for amd igpu. I only removed amdgpu from
# services.xserver.videoDrivers by overriding. This is because the specialization # services.xserver.videoDrivers by overriding. This is because the specialization
# of nix cannot implement such an operation as canceling an import. # of nix cannot implement such an operation as canceling an import.
hardware = hardware = {
{ nvidia.prime.offload.enable = false;
nvidia.prime.offload.enable = false; }
} // lib.optionalAttrs (options ? amdgpu.opencl.enable) {
// lib.optionalAttrs (options ? amdgpu.opencl.enable) { # introduced in https://github.com/NixOS/nixpkgs/pull/319865
# introduced in https://github.com/NixOS/nixpkgs/pull/319865 amdgpu.opencl.enable = lib.mkDefault false;
amdgpu.opencl.enable = lib.mkDefault false; };
};
} }

View file

@ -3,12 +3,11 @@
{ {
imports = [ ../hybrid ]; imports = [ ../hybrid ];
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];
hardware = hardware = {
{ nvidia.prime.offload.enable = false;
nvidia.prime.offload.enable = false; }
} // lib.optionalAttrs (options ? amdgpu.opencl.enable) {
// lib.optionalAttrs (options ? amdgpu.opencl.enable) { # introduced in https://github.com/NixOS/nixpkgs/pull/319865
# introduced in https://github.com/NixOS/nixpkgs/pull/319865 amdgpu.opencl.enable = lib.mkDefault false;
amdgpu.opencl.enable = lib.mkDefault false; };
};
} }

View file

@ -32,8 +32,4 @@
# Avoid issues with modesetting causing blank screen # Avoid issues with modesetting causing blank screen
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];
# AMD has better battery life with PPD over TLP:
# https://community.frame.work/t/responded-amd-7040-sleep-states/38101/13
services.power-profiles-daemon.enable = lib.mkDefault true;
} }

View file

@ -14,9 +14,10 @@
# amdgpu.backlight=0 makes the backlight work # amdgpu.backlight=0 makes the backlight work
# acpi_backlight=none allows the backlight save/load systemd service to work on older kernel versions # acpi_backlight=none allows the backlight save/load systemd service to work on older kernel versions
boot.kernelParams = boot.kernelParams = [
[ "amdgpu.backlight=0" ] "amdgpu.backlight=0"
++ lib.optional (lib.versionOlder config.boot.kernelPackages.kernel.version "6.1.6") "acpi_backlight=none"; ]
++ lib.optional (lib.versionOlder config.boot.kernelPackages.kernel.version "6.1.6") "acpi_backlight=none";
# For mainline support of rtw89 wireless networking # For mainline support of rtw89 wireless networking
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "5.16") pkgs.linuxPackages_latest; boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "5.16") pkgs.linuxPackages_latest;

View file

@ -0,0 +1,7 @@
# Lenovo ThinkPad P14s Intel Gen 2
Much of the extraneous settings are filled out using the [wiki](https://wiki.nixos.org/wiki/NVIDIA#Hybrid_graphics_with_PRIME), which gives guidance on how to determine the correct PCI bus IDs to assign, aswell as the note to include the `modesetting` driver in `services.xserver.videoDrivers`.
## BIOS Settings to adjust
For suspending to RAM to work, set Config -> Power -> Sleep State to "Linux S3" in EFI.

View file

@ -0,0 +1,18 @@
{
imports = [
../../../../../common/gpu/nvidia/prime.nix
../../../../../common/gpu/nvidia/turing
../../../../../common/cpu/intel/tiger-lake
../../../../../common/pc/laptop
../../../../../common/pc/ssd
../../../../../common/pc
../.
];
hardware.nvidia.prime = {
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
services.xserver.videoDrivers = [ "modesetting" ];
}

View file

@ -0,0 +1,5 @@
{
imports = [
../.
];
}

View file

@ -0,0 +1,9 @@
{ lib, pkgs, ... }:
{
imports = [
../.
../../../../common/cpu/intel
../../../../common/gpu/intel
];
}

View file

@ -0,0 +1,8 @@
{ lib, config, ... }:
{
imports = [
../../../../../common/cpu/intel/comet-lake
../.
];
}

Some files were not shown because too many files have changed in this diff Show more