mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-08 19:46:10 +01:00
Compare commits
198 commits
d2c87a8e19
...
e60c66bd0b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e60c66bd0b | ||
|
|
e4c6ee69e7 | ||
|
|
ae91411396 | ||
|
|
d48e8f0e16 | ||
|
|
eea20ba3b0 | ||
|
|
2e85ae1b70 | ||
|
|
8b72f74d80 | ||
|
|
655a6da8a8 | ||
|
|
bffe23e699 | ||
|
|
5ad68c5dff | ||
|
|
fad92f5f57 | ||
|
|
f2e49f279c | ||
|
|
e598a4ca2f | ||
|
|
2567706185 | ||
|
|
7467f155fc | ||
|
|
ddb27b7bba | ||
|
|
13cc234e37 | ||
|
|
a2bc09823a | ||
|
|
86d9291cc3 | ||
|
|
8650454db6 | ||
|
|
11ea8b8477 | ||
|
|
a3576f0f3c | ||
|
|
fe21eda733 | ||
|
|
43ffe9ac82 | ||
|
|
3beac2438b | ||
|
|
b09586b101 | ||
|
|
e07b1618c3 | ||
|
|
e214e292a6 | ||
|
|
779c16f604 | ||
|
|
6ec1e82182 | ||
|
|
4bafcc2454 | ||
|
|
46ab381a8c | ||
|
|
ec7bf039ca | ||
|
|
e11482075d | ||
|
|
2379bc4099 | ||
|
|
688ee555de | ||
|
|
8b405e9c6d | ||
|
|
34b7229b95 | ||
|
|
46f9982c9b | ||
|
|
9c0ee5dfa1 | ||
|
|
7667e19678 | ||
|
|
b27995044c | ||
|
|
d6645c340e | ||
|
|
c4fe135227 | ||
|
|
9ed85f8afe | ||
|
|
c816590dca | ||
|
|
eb9e8e10ac | ||
|
|
156fbb62a9 | ||
|
|
c52ea60901 | ||
|
|
d232c6f9cc | ||
|
|
a8bbda8911 | ||
|
|
d0955d227d | ||
|
|
3441b5242a | ||
|
|
0257a0aa58 | ||
|
|
e087756cf4 | ||
|
|
a74f5ce8c6 | ||
|
|
dd4227bb1b | ||
|
|
30bf4efeda | ||
|
|
081542ae22 | ||
|
|
ba70d20716 | ||
|
|
28c41d0a5d | ||
|
|
c8b6a49ebf | ||
|
|
895e314e4b | ||
|
|
0582a93516 | ||
|
|
1243f78ca9 | ||
|
|
5e57f28e6a | ||
|
|
095a445675 | ||
|
|
0e9dc7cf61 | ||
|
|
27581273c2 | ||
|
|
170ff93c86 | ||
|
|
76a314765d | ||
|
|
4ba28b48c8 | ||
|
|
3caaf86f9d | ||
|
|
67a709cfe5 | ||
|
|
0632a5e10f | ||
|
|
4c38a024fa | ||
|
|
82e5fcb58c | ||
|
|
f89c620d3d | ||
|
|
e049c10c3e | ||
|
|
4100cffdbe | ||
|
|
a98f1a2b75 | ||
|
|
536ac3ab4b | ||
|
|
40dffd02e3 | ||
|
|
0c55f0f776 | ||
|
|
11b2a10c7b | ||
|
|
7e40faf569 | ||
|
|
295e0f92ff | ||
|
|
410a17733a | ||
|
|
a6cc50d994 | ||
|
|
af3dd1cb20 | ||
|
|
e9db02252a | ||
|
|
7e56e39db4 | ||
|
|
d9b0f10475 | ||
|
|
ba6fab2976 | ||
|
|
da1b459c17 | ||
|
|
003318603f | ||
|
|
ad6d270a9a | ||
|
|
c362a52136 | ||
|
|
4091b501aa | ||
|
|
4a39585546 | ||
|
|
71841ee366 | ||
|
|
7d524775bf | ||
|
|
2dbfb943a0 | ||
|
|
2f7f1dc6ec | ||
|
|
47eb4856cf | ||
|
|
b403970fdf | ||
|
|
81129e6f19 | ||
|
|
72d5560fb7 | ||
|
|
321cb2173b | ||
|
|
ea1e368e75 | ||
|
|
6f97793214 | ||
|
|
6b7941884f | ||
|
|
f4a07aa370 | ||
|
|
7fe67c44d1 | ||
|
|
c69cdbed34 | ||
|
|
31b333f6e7 | ||
|
|
7c75c09ab6 | ||
|
|
c5231106d4 | ||
|
|
bfce4a25eb | ||
|
|
232f44c2d5 | ||
|
|
c38b907bd4 | ||
|
|
65b725a43e | ||
|
|
fe8baa10f9 | ||
|
|
74dc6125d0 | ||
|
|
e903fd796d | ||
|
|
682c8615f1 | ||
|
|
f08ec094d3 | ||
|
|
21030ae98d | ||
|
|
3e10646c9b | ||
|
|
a57aded40e | ||
|
|
f3444245a7 | ||
|
|
9691e6ee8a | ||
|
|
bfda6f34d3 | ||
|
|
59e2d82cc2 | ||
|
|
6439a46c7c | ||
|
|
cfb36e4feb | ||
|
|
a65b650d69 | ||
|
|
048c7bbca5 | ||
|
|
3a4da5f8c1 | ||
|
|
cd3d24b038 | ||
|
|
c13241f1c0 | ||
|
|
cc896f1f7e | ||
|
|
8137ca755e | ||
|
|
ebd8f57cd9 | ||
|
|
5e741b56dc | ||
|
|
17113fc124 | ||
|
|
0413405b45 | ||
|
|
e3e3717d85 | ||
|
|
2d512d0f4e | ||
|
|
6287c9e15f | ||
|
|
3dac8a8725 | ||
|
|
c006c5a59b | ||
|
|
7dd36b62fc | ||
|
|
292aeb6fd6 | ||
|
|
c4af46bb6a | ||
|
|
79649965c5 | ||
|
|
680761f019 | ||
|
|
139a6586ed | ||
|
|
aaecdd8d3b | ||
|
|
26ed7a0d4b | ||
|
|
cd88704818 | ||
|
|
df02f4f16a | ||
|
|
659b41d59c | ||
|
|
9157552825 | ||
|
|
8972e6538b | ||
|
|
9368056b73 | ||
|
|
547c96d797 | ||
|
|
a872d98539 | ||
|
|
d99ca4e5f4 | ||
|
|
26c9d90663 | ||
|
|
f30fc54b0e | ||
|
|
c92f8fc536 | ||
|
|
28fc41508c | ||
|
|
85070738e9 | ||
|
|
1f7ed6211f | ||
|
|
37d0301b3c | ||
|
|
c46bd952e9 | ||
|
|
25fdfb36a7 | ||
|
|
19b899ead6 | ||
|
|
b90855f92a | ||
|
|
cc66fddc6c | ||
|
|
e792f2f4ac | ||
|
|
5efc6e9418 | ||
|
|
2b75e96d0d | ||
|
|
d1bfa8f6cc | ||
|
|
95ee2804d7 | ||
|
|
8ea54c025e | ||
|
|
9410081079 | ||
|
|
7ced9122cf | ||
|
|
323366c51c | ||
|
|
6015af43f3 | ||
|
|
41f2cad3f9 | ||
|
|
1828627b08 | ||
|
|
497ae1357f | ||
|
|
d2a1b158ac | ||
|
|
3b622ae6e6 | ||
|
|
a724614b86 | ||
|
|
66e88bdcaa |
182 changed files with 14941 additions and 1430 deletions
8
.github/workflows/test.yml
vendored
8
.github/workflows/test.yml
vendored
|
|
@ -9,13 +9,13 @@ jobs:
|
|||
nixfmt:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: cachix/install-nix-action@v31
|
||||
- run: cd tests && nix fmt .. -- --fail-on-change
|
||||
- run: nix build .#checks.x86_64-linux.formatting
|
||||
tests:
|
||||
needs: nixfmt
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: cachix/install-nix-action@v31
|
||||
- run: nix run ./tests#run .
|
||||
- run: nix run .#run-tests
|
||||
|
|
|
|||
|
|
@ -11,4 +11,4 @@ purism/librem/13v3 @yegortimoshenko
|
|||
system76/darp6 @khumba
|
||||
framework @emiller88
|
||||
tuxedo/pulse/15/gen2 @trueNAHO
|
||||
tuxedo/pulse/14/gen3 @gabyx @britter @trueNAHO
|
||||
tuxedo/pulse/14/gen3 @gabyx @britter
|
||||
|
|
|
|||
|
|
@ -14,8 +14,9 @@ For example:
|
|||
|
||||
```nix
|
||||
{ lib }: {
|
||||
# Using mkDefault, because the user might want to disable tlp
|
||||
services.tlp.enable = lib.mkDefault true;
|
||||
# Using mkDefault, because the user might want to disable power-profiles-daemon
|
||||
services.power-profiles-daemon.enable = lib.mkDefault true;
|
||||
|
||||
# No need to use mkDefault, because the setting will merge with the user's setting
|
||||
boot.kernelModules = [ "tmp_smapi" ];
|
||||
}
|
||||
|
|
@ -42,7 +43,7 @@ Link the profile in the table in README.md and in flake.nix.
|
|||
|
||||
## 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
|
||||
assurance is up to *you*.
|
||||
|
||||
|
|
|
|||
112
README.md
112
README.md
|
|
@ -85,18 +85,20 @@ All contributors and users are welcome to join!
|
|||
See code for all available configurations.
|
||||
|
||||
| Model | Path | Flake Module |
|
||||
| --------------------------------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------- |
|
||||
| --------------------------------------------------------------------------------- | ------------------------------------------------------- | -------------------------------------- |
|
||||
| [Acer Aspire 4810T](acer/aspire/4810t) | `<nixos-hardware/acer/aspire/4810t>` | `acer-aspire-4810t` |
|
||||
| [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 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 4,X](apple/macbook-air/4) | `<nixos-hardware/apple/macbook-air/4>` | `apple-macbook-air-4` |
|
||||
| [Apple MacBook Air 5,X](apple/macbook-air/5) | `<nixos-hardware/apple/macbook-air/5>` | `apple-macbook-air-5` |
|
||||
| [Apple MacBook Air 6,X](apple/macbook-air/6) | `<nixos-hardware/apple/macbook-air/6>` | `apple-macbook-air-6` |
|
||||
| [Apple MacBook Air 7,X](apple/macbook-air/7) | `<nixos-hardware/apple/macbook-air/7>` | `apple-macbook-air-7` |
|
||||
| [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 10,1](apple/macbook-pro/10-1) | `<nixos-hardware/apple/macbook-pro/10-1>` | `apple-macbook-pro-10-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 11,4](apple/macbook-pro/11-4) | `<nixos-hardware/apple/macbook-pro/11-4>` | `apple-macbook-pro-11-4` |
|
||||
| [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 12,1](apple/macbook-pro/12-1) | `<nixos-hardware/apple/macbook-pro/12-1>` | `apple-macbook-pro-12-1` |
|
||||
| [Apple MacBook Pro 14,1](apple/macbook-pro/14-1) | `<nixos-hardware/apple/macbook-pro/14-1>` | `apple-macbook-pro-14-1` |
|
||||
|
|
@ -107,8 +109,10 @@ See code for all available configurations.
|
|||
| [Asus ROG Ally RC71L (2023)](asus/ally/rc71l) | `<nixos-hardware/asus/ally/rc71l>` | `asus-ally-rc71l` |
|
||||
| [Asus ROG Flow X13 GV302X\* (2023)](asus/flow/gv302x/amdgpu) | `<nixos-hardware/asus/flow/gv302x/amdgpu>` | `asus-flow-gv302x-amdgpu` |
|
||||
| [Asus ROG Flow X13 GV302X\* (2023)](asus/flow/gv302x/nvidia) | `<nixos-hardware/asus/flow/gv302x/nvidia>` | `asus-flow-gv302x-nvidia` |
|
||||
| [Asus ROG GL552VW](asus/rog-gl552vw) | `<nixos-hardware/asus/rog-gl552vw>` | `asus-rog-gl552vw` |
|
||||
| [Asus ROG Strix G513IM](asus/rog-strix/g513im) | `<nixos-hardware/asus/rog-strix/g513im>` | `asus-rog-strix-g513im` |
|
||||
| [Asus ROG Strix G533ZW](asus/rog-strix/g533zw) | `<nixos-hardware/asus/rog-strix/g533zw>` | `asus-rog-strix-g533zw` |
|
||||
| [Asus ROG Strix G533Q](asus/rog-strix/g533q) | `<nixos-hardware/asus/rog-strix/g533q>` | `asus-rog-strix-g533zw` |
|
||||
| [Asus ROG Strix G713IE](asus/rog-strix/g713ie) | `<nixos-hardware/asus/rog-strix/g713ie>` | `asus-rog-strix-g713ie` |
|
||||
| [Asus ROG Strix G733QS](asus/rog-strix/g733qs) | `<nixos-hardware/asus/rog-strix/g733qs>` | `asus-rog-strix-g733qs` |
|
||||
| [Asus ROG Strix X570-E GAMING](asus/rog-strix/x570e) | `<nixos-hardware/asus/rog-strix/x570e>` | `asus-rog-strix-x570e` |
|
||||
|
|
@ -129,6 +133,7 @@ See code for all available configurations.
|
|||
| [Asus Zenbook Duo 14 UX481](asus/zenbook/ux481/nvidia/) | `<nixos-hardware/asus/zenbook/ux481/nvidia>` | `asus-zenbook-ux481-nvidia` |
|
||||
| [Asus Zenbook Flip S13 UX371](asus/zenbook/ux371/) | `<nixos-hardware/asus/zenbook/ux371>` | `asus-zenbook-ux371` |
|
||||
| [Asus Zenbook Pro 15 UX535](asus/zenbook/ux535/) | `<nixos-hardware/asus/zenbook/ux535>` | `asus-zenbook-ux535` |
|
||||
| [Asus Zenbook Pro 17 UM6702](asus/zenbook/um6702/) | `<nixos-hardware/asus/zenbook/um6702>` | `asus-zenbook-um6702` |
|
||||
| [BeagleBoard PocketBeagle](beagleboard/pocketbeagle) | `<nixos-hardware/beagleboard/pocketbeagle>` | `beagleboard-pocketbeagle` |
|
||||
| [Chuwi MiniBook X](chuwi/minibook-x) | `<nixos-hardware/chuwi/minibook-x>` | `chuwi-minibook-x` |
|
||||
| [Deciso DEC series](deciso/dec) | `<nixos-hardware/deciso/dec>` | `deciso-dec` |
|
||||
|
|
@ -159,6 +164,8 @@ See code for all available configurations.
|
|||
| [Dell Precision 3541](dell/precision/3541) | `<nixos-hardware/dell/precision/3541>` | `dell-precision-3541` |
|
||||
| [Dell Precision 5490](dell/precision/5490) | `<nixos-hardware/dell/precision/5490>` | `dell-precision-5490` |
|
||||
| [Dell Precision 5530](dell/precision/5530) | `<nixos-hardware/dell/precision/5530>` | `dell-precision-5530` |
|
||||
| [Dell Precision 5560](dell/precision/5560) | `<nixos-hardware/dell/precision/5560>` | `dell-precision-5560` |
|
||||
| [Dell Precision 5570](dell/precision/5570) | `<nixos-hardware/dell/precision/5570>` | `dell-precision-5570` |
|
||||
| [Dell Precision 7520](dell/precision/7520) | `<nixos-hardware/dell/precision/7520>` | `dell-precision-7520` |
|
||||
| [Dell XPS 13 7390](dell/xps/13-7390) | `<nixos-hardware/dell/xps/13-7390>` | `dell-xps-13-7390` |
|
||||
| [Dell XPS 13 9300](dell/xps/13-9300) | `<nixos-hardware/dell/xps/13-9300>` | `dell-xps-13-9300` |
|
||||
|
|
@ -192,16 +199,18 @@ See code for all available configurations.
|
|||
| [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/12-inch/13th-gen-intel) | `<nixos-hardware/framework/12-inch/13th-gen-intel>` | `framework-12th-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 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 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 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 NanoPC-T4](friendlyarm/nanopc-t4) | `<nixos-hardware/friendlyarm/nanopc-t4>` | `friendlyarm-nanopc-t4` |
|
||||
| [FriendlyARM NanoPi R5s](friendlyarm/nanopi-r5s) | `<nixos-hardware/friendlyarm/nanopi-r5s>` | `friendlyarm-nanopi-r5s` |
|
||||
| [Focus M2 Gen 1](focus/m2/gen1) | `<nixos-hardware/focus/m2/gen1>` | `focus-m2-gen1` |
|
||||
| [Fydetab Duo](fydetab/duo) | `<nixos-hardware/fydetab/duo>` | `fydetab-duo` |
|
||||
| [Gigabyte B550](gigabyte/b550) | `<nixos-hardware/gigabyte/b550>` | `gigabyte-b550` |
|
||||
| [Gigabyte B650](gigabyte/b650) | `<nixos-hardware/gigabyte/b650>` | `gigabyte-b650` |
|
||||
| [GMKtec NucBox G3 Plus](gmktec/nucbox/g3-plus) | `<nixos-hardware/gmktec/nucbox/g3-plus>` | `gmktec-nucbox-g3-plus` |
|
||||
|
|
@ -220,10 +229,14 @@ See code for all available configurations.
|
|||
| [HP Elitebook 845g9](hp/elitebook/845/g9) | `<nixos-hardware/hp/elitebook/845/g9>` | `hp-elitebook-845g9` |
|
||||
| [HP Laptop 14s-dq2024nf](hp/laptop/14s-dq2024nf) | `<nixos-hardware/hp/laptop/14s-dq2024nf>` | `hp-laptop-14s-dq2024nf` |
|
||||
| [HP Notebook 14-df0023](hp/notebook/14-df0023) | `<nixos-hardware/hp/notebook/14-df0023>` | `hp-notebook-14-df0023` |
|
||||
| [HP Probook 440G5](hp/probook/440g5) | `<nixos-hardware/hp/probook/440g5>` | `hp-probook-440G5` |
|
||||
| [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` |
|
||||
| [HP Probook 460G11](hp/probook/460g11) | `<nixos-hardware/hp/probook/460g11>` | `hp-probook-46011` |
|
||||
| [Huawei Matebook X Pro (2020)](huawei/machc-wa) | `<nixos-hardware/huawei/machc-wa>` | `huawei-machc-wa` |
|
||||
| [i.MX8QuadMax Multisensory Enablement Kit](nxp/imx8qm-mek/) | `<nixos-hardware/nxp/imx8qm-mek>` | `nxp-imx8qm-mek` |
|
||||
| [Intel NUC 5i5RYB](intel/nuc/5i5ryb/) | `<nixos-hardware/intel/nuc/5i5ryb>` | `intel-nuc-5i5ryb` |
|
||||
| [Intel NUC 8i7BEH](intel/nuc/8i7beh/) | `<nixos-hardware/intel/nuc/8i7beh>` | `intel-nuc-8i7beh` |
|
||||
| [Kobol Helios4](kobol/helios4) | `<nixos-hardware/kobol/helios4>` | `kobol-helios-4` |
|
||||
| [Lenovo IdeaCentre K330](lenovo/ideacentre/k330) | `<nixos-hardware/lenovo/ideacentre/k330>` | `lenovo-ideacentre-k330` |
|
||||
| [Lenovo IdeaPad 3 15alc6](lenovo/ideapad/15alc6) | `<nixos-hardware/lenovo/ideapad/15alc6>` | `lenovo-ideapad-15alc6` |
|
||||
| [Lenovo IdeaPad Gaming 3 15arh05](lenovo/ideapad/15arh05) | `<nixos-hardware/lenovo/ideapad/15arh05>` | `lenovo-ideapad-15arh05` |
|
||||
|
|
@ -236,6 +249,8 @@ See code for all available configurations.
|
|||
| [Lenovo IdeaPad 2-in-1 16ahp9](lenovo/ideapad/16ahp9) | `<nixos-hardware/lenovo/ideapad/16ahp9>` | `lenovo-ideapad-16ahp9` |
|
||||
| [Lenovo IdeaPad S145 15api](lenovo/ideapad/s145-15api) | `<nixos-hardware/lenovo/ideapad/s145-15api>` | `lenovo-ideapad-s145-15api` |
|
||||
| [Lenovo Legion 5 15ach6h](lenovo/legion/15ach6h) | `<nixos-hardware/lenovo/legion/15ach6h>` | `lenovo-legion-15ach6h` |
|
||||
| [Lenovo Legion 5 15ach6h (Hybrid)](lenovo/legion/15ach6h/hybrid) | `<nixos-hardware/lenovo/legion/15ach6h/hybrid>` | `lenovo-legion-15ach6h-hybrid` |
|
||||
| [Lenovo Legion 5 15ach6h (Nvidia)](lenovo/legion/15ach6h/hybrid) | `<nixos-hardware/lenovo/legion/15ach6h/nvidia>` | `lenovo-legion-15ach6h-nvidia` |
|
||||
| [Lenovo Legion 5 15arh05h](lenovo/legion/15arh05h) | `<nixos-hardware/lenovo/legion/15arh05h>` | `lenovo-legion-15arh05h` |
|
||||
| [Lenovo Legion 7 Slim 15ach6](lenovo/legion/15ach6) | `<nixos-hardware/lenovo/legion/15ach6>` | `lenovo-legion-15ach6` |
|
||||
| [Lenovo Legion 5 Pro 16ach6h](lenovo/legion/16ach6h) | `<nixos-hardware/lenovo/legion/16ach6h>` | `lenovo-legion-16ach6h` |
|
||||
|
|
@ -248,9 +263,10 @@ See code for all available configurations.
|
|||
| [Lenovo Legion 7 16achg6 (Nvidia)](lenovo/legion/16achg6/nvidia) | `<nixos-hardware/lenovo/legion/16achg6/nvidia>` | `lenovo-legion-16achg6-nvidia` |
|
||||
| [Lenovo Legion 7i Pro 16irx8h (Intel)](lenovo/legion/16irx8h) | `<nixos-hardware/lenovo/legion/16irx8h>` | `lenovo-legion-16irx8h` |
|
||||
| [Lenovo Legion 7 Pro 16irx9h (Intel)](lenovo/legion/16irx9h) | `<nixos-hardware/lenovo/legion/16irx9h>` | `lenovo-legion-16irx9h` |
|
||||
| [Lenovo Legion Slim 5](lenovo/legion/16aph8/) | `<nixos-hardware/lenovo/legion/16aph8>` | `lenovo-legion-16aph8` |
|
||||
| [Lenovo Legion Slim 7 Gen 7 (AMD)](lenovo/legion/16arha7/) | `<nixos-hardware/lenovo/legion/16arha7>` | `lenovo-legion-16arha7` |
|
||||
| [Lenovo Legion T5 AMR5](lenovo/legion/t526amr5) | `<nixos-hardware/lenovo/legion/t526amr5>` | `lenovo-legion-t526amr5` |
|
||||
| [Lenovo Legion Y530 15ICH](lenovo/legion/15ich) | `<nixos-hardware/lenovo/legion/15ich>` | `lenovo-legion-15ich` |
|
||||
| [Lenovo Legion Y530 15ICH](lenovo/legion/15ich) | `<nixos-hardware/lenovo/legion/15ich>` | `lenovo-legion-y530-15ich` |
|
||||
| [Lenovo ThinkPad A475](lenovo/thinkpad/a475) | `<nixos-hardware/lenovo/thinkpad/a475>` | `lenovo-thinkpad-a475` |
|
||||
| [Lenovo ThinkPad E14 (AMD)](lenovo/thinkpad/e14/amd) | `<nixos-hardware/lenovo/thinkpad/e14/amd>` | `lenovo-thinkpad-e14-amd` |
|
||||
| [Lenovo ThinkPad E14 (Intel - Gen 1)](lenovo/thinkpad/e14/intel) | `<nixos-hardware/lenovo/thinkpad/e14/intel>` | `lenovo-thinkpad-e14-intel` |
|
||||
|
|
@ -270,11 +286,13 @@ See code for all available configurations.
|
|||
| [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 P14s AMD Gen 4](lenovo/thinkpad/p14s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen4>` | `lenovo-thinkpad-p14s-amd-gen4` |
|
||||
| [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 P14s Intel Gen 3](lenovo/thinkpad/p14s/intel/gen3) | `<nixos-hardware/lenovo/thinkpad/p14s/intel/gen3>` | `lenovo-thinkpad-p14s-intel-gen3`|
|
||||
| [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 P14s Intel Gen 2](lenovo/thinkpad/p14s/intel/gen2) | `<nixos-hardware/lenovo/thinkpad/p14s/intel/gen2>` | `lenovo-thinkpad-p14s-intel-gen2` |
|
||||
| [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 P14s Intel Gen 5](lenovo/thinkpad/p14s/intel/gen5) | `<nixos-hardware/lenovo/thinkpad/p14s/intel/gen5>` | `lenovo-thinkpad-p14s-intel-gen5` |
|
||||
| [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 P16s AMD Gen 2](lenovo/thinkpad/p16s/amd/gen2) | `<nixos-hardware/lenovo/thinkpad/p16s/amd/gen2>` | `lenovo-thinkpad-p16s-amd-gen2` |
|
||||
| [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 P16s AMD Gen 4](lenovo/thinkpad/p16s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/p16s/amd/gen4>` | `lenovo-thinkpad-p16s-amd-gen4` |
|
||||
| [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 P1](lenovo/thinkpad/p1) | `<nixos-hardware/lenovo/thinkpad/p1>` | `lenovo-thinkpad-p1` |
|
||||
| [Lenovo ThinkPad P43s](lenovo/thinkpad/p43s) | `<nixos-hardware/lenovo/thinkpad/p43s>` | `lenovo-thinkpad-p43s` |
|
||||
| [Lenovo ThinkPad P50](lenovo/thinkpad/p50) | `<nixos-hardware/lenovo/thinkpad/p50>` | `lenovo-thinkpad-p50` |
|
||||
|
|
@ -287,6 +305,9 @@ See code for all available configurations.
|
|||
| [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 T14 AMD Gen 5](lenovo/thinkpad/t14/amd/gen5) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen5>` | `lenovo-thinkpad-t14-amd-gen5` |
|
||||
| [Lenovo ThinkPad T14](lenovo/thinkpad/t14) | `<nixos-hardware/lenovo/thinkpad/t14>` | `lenovo-thinkpad-t14` |
|
||||
| [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 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 T14 Intel Gen 6](lenovo/thinkpad/t14/intel/gen6) | `<nixos-hardware/lenovo/thinkpad/t14/intel/gen6>` | `lenovo-thinkpad-t14-intel-gen6` |
|
||||
| [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 T14s AMD Gen 4](lenovo/thinkpad/t14s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/t14s/amd/gen4>` | `lenovo-thinkpad-t14s-amd-gen4` |
|
||||
| [Lenovo ThinkPad T14s](lenovo/thinkpad/t14s) | `<nixos-hardware/lenovo/thinkpad/t14s>` | `lenovo-thinkpad-t14s` |
|
||||
|
|
@ -339,8 +360,8 @@ See code for all available configurations.
|
|||
| [Lenovo ThinkPad X280](lenovo/thinkpad/x280) | `<nixos-hardware/lenovo/thinkpad/x280>` | `lenovo-thinkpad-x280` |
|
||||
| [Lenovo ThinkPad X390](lenovo/thinkpad/x390) | `<nixos-hardware/lenovo/thinkpad/x390>` | `lenovo-thinkpad-x390` |
|
||||
| [Lenovo ThinkPad Z Series](lenovo/thinkpad/z) | `<nixos-hardware/lenovo/thinkpad/z>` | `lenovo-thinkpad-z` |
|
||||
| [Lenovo ThinkPad Z13 Gen 1](lenovo/thinkpad/z/gen1/z13) | `<nixos-hardware/lenovo/thinkpad/z/gen1/z13>` | `lenovo-thinkpad-z-gen1-z13` |
|
||||
| [Lenovo ThinkPad Z13 Gen 2](lenovo/thinkpad/z/gen2/z13) | `<nixos-hardware/lenovo/thinkpad/z/gen2/z13>` | `lenovo-thinkpad-z-gen2-z13` |
|
||||
| [Lenovo ThinkPad Z13 Gen 1](lenovo/thinkpad/z/gen1/z13) | `<nixos-hardware/lenovo/thinkpad/z/gen1/z13>` | `lenovo-thinkpad-z13-gen1` |
|
||||
| [Lenovo ThinkPad Z13 Gen 2](lenovo/thinkpad/z/gen2/z13) | `<nixos-hardware/lenovo/thinkpad/z/gen2/z13>` | `lenovo-thinkpad-z13-gen2` |
|
||||
| [Lenovo XiaoXin Pro 14imh9 2024](lenovo/ideapad/14imh9) | `<nixos-hardware/lenovo/ideapad/14imh9>` | `lenovo-ideapad-14imh9` |
|
||||
| [LENOVO Yoga 6 13ALC6 82ND](lenovo/yoga/6/13ALC6) | `<nixos-hardware/lenovo/yoga/6/13ALC6>` | `lenovo-yoga-6-13ALC6` |
|
||||
| [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` |
|
||||
|
|
@ -349,25 +370,32 @@ See code for all available configurations.
|
|||
| [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 Yoga Slim 7 14ILL10](lenovo/yoga/7/14ILL10) | `<nixos-hardware/lenovo/yoga/7/14ILL10>` | `lenovo-yoga-7-14ILL10` |
|
||||
| [LENOVO Yoga 7 Slim Gen8](lenovo/yoga/7/slim/gen8) | `<nixos-hardware/lenovo/yoga/7/slim/gen8>` | `lenovo-yoga-7-slim-gen8` |
|
||||
| [Linglong Nova Studio](linglong/nova-studio) | `<nixos-hardware/linglong/nova-studio>` | `linglong-nova-studio` |
|
||||
| [MSI B550-A PRO](msi/b550-a-pro) | `<nixos-hardware/msi/b550-a-pro>` | `msi-b550-a-pro` |
|
||||
| [MSI B350 TOMAHAWK](msi/b350-tomahawk) | `<nixos-hardware/msi/b350-tomahawk>` | `msi-b350-tomahawk` |
|
||||
| [MSI B550 TOMAHAWK](msi/b550-tomahawk) | `<nixos-hardware/msi/b550-tomahawk>` | `msi-b550-tomahawk` |
|
||||
| [MSI GS60 2QE](msi/gs60) | `<nixos-hardware/msi/gs60>` | `msi-gs60` |
|
||||
| [MSI GL62/CX62](msi/gl62) | `<nixos-hardware/msi/gl62>` | `msi-gl62` |
|
||||
| [MSI GL65 10SDR-492](msi/gl65/10SDR-492) | `<nixos-hardware/msi/gl65/10SDR-492>` | `msi-gl65-10SDR-492` |
|
||||
| [Malibal Aon S1](malibal/aon/s1) | | `<nixos-hardware/malibal/aon/s1>` | `malibal-aon-s1` |
|
||||
| [Microchip Icicle Kit](microchip/icicle-kit) | `<nixos-hardware/microchip/icicle-kit>` | `microchip-icicle-kit` |
|
||||
| [Microsoft Surface Go](microsoft/surface/surface-go) | `<nixos-hardware/microsoft/surface/surface-go>` | `microsoft-surface-surface-go` |
|
||||
| [Microsoft Surface Pro (Intel)](microsoft/surface/surface-pro-intel) | `<nixos-hardware/microsoft/surface/surface-pro-intel>` | `microsoft-surface-surface-pro-intel` |
|
||||
| [Microsoft Surface Laptop (AMD)](microsoft/surface/surface-laptop-amd) | `<nixos-hardware/microsoft/surface/surface-laptop-amd>` | `microsoft-surface-surface-laptop-amd` |
|
||||
| [Microsoft Surface Go](microsoft/surface/surface-go) | `<nixos-hardware/microsoft/surface/surface-go>` | `microsoft-surface-go` |
|
||||
| [Microsoft Surface Pro (Intel)](microsoft/surface/surface-pro-intel) | `<nixos-hardware/microsoft/surface/surface-pro-intel>` | `microsoft-surface-pro-intel` |
|
||||
| [Microsoft Surface Laptop (AMD)](microsoft/surface/surface-laptop-amd) | `<nixos-hardware/microsoft/surface/surface-laptop-amd>` | `microsoft-surface-laptop-amd` |
|
||||
| [Microsoft Surface Range (Common Modules)](microsoft/surface/common) | `<nixos-hardware/microsoft/surface/common>` | `microsoft-surface-common` |
|
||||
| [Microsoft Surface Pro 3](microsoft/surface-pro/3) | `<nixos-hardware/microsoft/surface-pro/3>` | `microsoft-surface-pro-3` |
|
||||
| [Microsoft Surface Pro 9](microsoft/surface-pro/9) | `<nixos-hardware/microsoft/surface-pro/9>` | `microsoft-surface-pro-9` |
|
||||
| [Milk-V Pioneer](milkv/pioneer) | `<nixos-hardware/milkv/pioneer>` | `milkv-pioneer` |
|
||||
| [Morefine M600](morefine/m600) | `<nixos-hardware/morefine/m600>` | `morefine-m600` |
|
||||
| [Minisforum V3](minisforum/v3) | `<nixos-hardware/minisforum/v3>` | `minisforum-v3` |
|
||||
| [MNT Reform with RK3588 module](mnt/reform/rk3588) | `<nixos-hardware/mnt/reform/rk3588` | `mnt-reform-rk3588` |
|
||||
| [MECHREVO Yilong15Pro](mechrevo/GM5HG0A) | `<nixos-hardware/mechrevo/GM5HG0A>` | `mechrevo-gm5hg0a` |
|
||||
| [NXP iMX8 MPlus Evaluation Kit](nxp/imx8mp-evk) | `<nixos-hardware/nxp/imx8mp-evk>` | `nxp-imx8mp-evk` |
|
||||
| [NXP iMX8 MQuad Evaluation Kit](nxp/imx8mq-evk) | `<nixos-hardware/nxp/imx8mq-evk>` | `nxp-imx8mq-evk` |
|
||||
| [Hardkernel Odroid HC4](hardkernel/odroid-hc4/default.nix) | `<nixos-hardware/hardkernel/odroid-hc4>` | `hardkernel-odroid-hc4` |
|
||||
| [Hardkernel Odroid H3](hardkernel/odroid-h3/default.nix) | `<nixos-hardware/hardkernel/odroid-h3>` | `hardkernel-odroid-h3` |
|
||||
| [Hardkernel Odroid H4](hardkernel/odroid-h4/default.nix) | `<nixos-hardware/hardkernel/odroid-h4>` | `hardkernel-odroid-h4` |
|
||||
| [Olimex TERES-I](olimex/teres_i) | `<nixos-hardware/olimex/teres_i>` | `olimex-teres_i` |
|
||||
| [Omen 14-fb0798ng](omen/14-fb0798ng) | `<nixos-hardware/omen/14-fb0798ng>` | `omen-14-fb0798ng` |
|
||||
| [Omen 15-ce002ns](omen/15-ce002ns) | `<nixos-hardware/omen/15-ce002ns>` | `omen-15-ce002ns` |
|
||||
| [Omen 15-en0010ca](omen/15-en0010ca) | `<nixos-hardware/omen/15-en0010ca>` | `omen-15-en0010ca` |
|
||||
|
|
@ -376,7 +404,8 @@ See code for all available configurations.
|
|||
| [Omen 15-en1007sa](omen/15-en1007sa) | `<nixos-hardware/omen/15-en1007sa>` | `omen-15-en1007sa` |
|
||||
| [Omen 15-en0002np](omen/15-en0002np) | `<nixos-hardware/omen/15-en0002np>` | `omen-15-en0002np` |
|
||||
| [One-Netbook OneNetbook 4](onenetbook/4) | `<nixos-hardware/onenetbook/4>` | `onenetbook-4` |
|
||||
| [Panasonic Let's Note CF-LX4](panasonic/letsnote/cf-lx4) | `<nixos-hardware/panasonic/letsnote/cf-lx4>` | `panasonic-letsnote-cf-lx4` |
|
||||
| [Panasonic Let's Note CF-LX3](panasonic/letsnote/cf-lx3) | `<nixos-hardware/panasonic/letsnote/cf-lx3>` | `panasonic-letsnote-cf-lx3` |
|
||||
| [Panasonic Let's Note CF-LX4](panasonic/letsnote/cf-lx4) | `<nixos-hardware/panasonic/letsnote/cf-lx4>` | `letsnote-cf-lx4` |
|
||||
| [PC Engines APU](pcengines/apu) | `<nixos-hardware/pcengines/apu>` | `pcengines-apu` |
|
||||
| [PINE64 Pinebook Pro](pine64/pinebook-pro/) | `<nixos-hardware/pine64/pinebook-pro>` | `pine64-pinebook-pro` |
|
||||
| [PINE64 RockPro64](pine64/rockpro64/) | `<nixos-hardware/pine64/rockpro64>` | `pine64-rockpro64` |
|
||||
|
|
@ -388,31 +417,32 @@ See code for all available configurations.
|
|||
| [Radxa ROCK 4C+](radxa/rock-4c-plus) | `<nixos-hardware/radxa/rock-4c-plus>` | `rock-4c-plus` |
|
||||
| [Radxa ROCK 5 Model B](radxa/rock-5b) | `<nixos-hardware/radxa/rock-5b>` | `rock-5b` |
|
||||
| [Radxa ROCK Pi 4](radxa/rock-pi-4) | `<nixos-hardware/radxa/rock-pi-4>` | `rock-pi-4` |
|
||||
| [Radxa ROCK Pi E](radxa/rock-pi-e) | `<nixos-hardware/radxa/rock-pi-e>` | `rock-pi-e`|
|
||||
| [Raspberry Pi 2](raspberry-pi/2) | `<nixos-hardware/raspberry-pi/2>` | `raspberry-pi-2`|
|
||||
| [Raspberry Pi 3](raspberry-pi/3) | `<nixos-hardware/raspberry-pi/3>` | `raspberry-pi-3`|
|
||||
| [Raspberry Pi 4](raspberry-pi/4) | `<nixos-hardware/raspberry-pi/4>` | `raspberry-pi-4`|
|
||||
| [Raspberry Pi 5](raspberry-pi/5) | `<nixos-hardware/raspberry-pi/5>` | `raspberry-pi-5`|
|
||||
| [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`|
|
||||
| [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`|
|
||||
| [Radxa ROCK Pi E](radxa/rock-pi-e) | `<nixos-hardware/radxa/rock-pi-e>` | `rock-pi-e` |
|
||||
| [Raspberry Pi 2](raspberry-pi/2) | `<nixos-hardware/raspberry-pi/2>` | `raspberry-pi-2` |
|
||||
| [Raspberry Pi 3](raspberry-pi/3) | `<nixos-hardware/raspberry-pi/3>` | `raspberry-pi-3` |
|
||||
| [Raspberry Pi 4](raspberry-pi/4) | `<nixos-hardware/raspberry-pi/4>` | `raspberry-pi-4` |
|
||||
| [Raspberry Pi 5](raspberry-pi/5) | `<nixos-hardware/raspberry-pi/5>` | `raspberry-pi-5` |
|
||||
| [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` |
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
boot.kernelParams = [
|
||||
"hid_apple.iso_layout=0"
|
||||
];
|
||||
|
||||
hardware.facetimehd.enable = lib.mkDefault (config.nixpkgs.config.allowUnfree or false);
|
||||
|
||||
services.mbpfan.enable = lib.mkDefault true;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
"bcma"
|
||||
];
|
||||
kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.0") pkgs.linuxPackages_latest;
|
||||
extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
|
||||
};
|
||||
|
||||
hardware = {
|
||||
|
|
|
|||
9
apple/macbook-air/5/default.nix
Normal file
9
apple/macbook-air/5/default.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../.
|
||||
];
|
||||
}
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
{ lib, ... }:
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [ ../. ];
|
||||
|
||||
boot.blacklistedKernelModules = [ "bcma" ];
|
||||
|
||||
boot = {
|
||||
# Divides power consumption by two.
|
||||
kernelParams = [ "acpi_osi=" ];
|
||||
|
|
|
|||
|
|
@ -6,9 +6,5 @@
|
|||
../../../common/cpu/intel/haswell
|
||||
];
|
||||
|
||||
# broadcom-wl
|
||||
hardware.enableRedistributableFirmware = lib.mkDefault true;
|
||||
# nixos-generate-config doesn't detect this automatically.
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [ broadcom_sta ];
|
||||
boot.kernelModules = [ "wl" ];
|
||||
}
|
||||
|
|
|
|||
42
apple/macbook-pro/11-4/README.md
Normal file
42
apple/macbook-pro/11-4/README.md
Normal 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`
|
||||
17
apple/macbook-pro/11-4/default.nix
Normal file
17
apple/macbook-pro/11-4/default.nix
Normal 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;
|
||||
}
|
||||
|
|
@ -9,7 +9,6 @@ This means it might be required to restart your wifi deamon i.e. wpa_supplicant:
|
|||
powerManagement.powerUpCommands = ''
|
||||
${pkgs.systemd}/bin/systemctl restart wpa_supplicant.service
|
||||
'';
|
||||
};
|
||||
```
|
||||
|
||||
You can apply this to your network management software of choice.
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
"b43-firmware"
|
||||
];
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
### For all packages
|
||||
|
|
|
|||
|
|
@ -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": [
|
||||
{
|
||||
"name": "1001-Add-apple-bce-driver.patch",
|
||||
|
|
@ -37,29 +37,9 @@
|
|||
"name": "1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bar.patch",
|
||||
"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",
|
||||
"hash": "sha256-Ui9tK4IGSWfEscmD92emX/NfulO0m8zwLc9ivIClCFQ="
|
||||
"hash": "sha256-PjMVt4u505PXnKFpojov0Uwhj0KxZas1E4NYJGI6lQ4="
|
||||
},
|
||||
{
|
||||
"name": "2009-apple-gmux-allow-switching-to-igpu-at-probe.patch",
|
||||
|
|
@ -103,7 +83,7 @@
|
|||
},
|
||||
{
|
||||
"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",
|
||||
|
|
@ -115,7 +95,7 @@
|
|||
},
|
||||
{
|
||||
"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",
|
||||
|
|
@ -123,15 +103,15 @@
|
|||
},
|
||||
{
|
||||
"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",
|
||||
"hash": "sha256-O6RHFxmKZn7aCq1D+r5z2T3jLt0r5+01EABD9rs0E5M="
|
||||
"hash": "sha256-/EKN7JsAxcpAgfJFtPp2NLYaGqQ0kl8wjJEXifSzJpY="
|
||||
},
|
||||
{
|
||||
"name": "8001-Add-APFS-driver.patch",
|
||||
"hash": "sha256-io17Kk6FDscDoDshddK9TqSPuXVFTzjvRUwOGTl5cjM="
|
||||
"hash": "sha256-uR5hg75SFFWzfrKyU5UnzPL4U7LkjqGs44rkxM7ur8o="
|
||||
},
|
||||
{
|
||||
"name": "8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{ callPackage, linux_6_15, ... }@args:
|
||||
{ callPackage, linux_6_16, ... }@args:
|
||||
|
||||
callPackage ./generic.nix args {
|
||||
kernel = linux_6_15;
|
||||
kernel = linux_6_16;
|
||||
patchesFile = ./latest.json;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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": [
|
||||
{
|
||||
"name": "1001-Add-apple-bce-driver.patch",
|
||||
|
|
@ -49,10 +49,6 @@
|
|||
"name": "1013-lib-vsprintf-Add-support-for-generic-FourCCs-by-exte.patch",
|
||||
"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",
|
||||
"hash": "sha256-tDjK/VipVQbuNOURW38gssqeRLy3s8I+DVq0+4zGnHs="
|
||||
|
|
@ -103,7 +99,7 @@
|
|||
},
|
||||
{
|
||||
"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",
|
||||
|
|
@ -131,7 +127,7 @@
|
|||
},
|
||||
{
|
||||
"name": "8001-Add-APFS-driver.patch",
|
||||
"hash": "sha256-O3RNtpeZQENPEfyYi/0ZTLhAWBAw6pmxMS30NUxOTdk="
|
||||
"hash": "sha256-QpIPsMjWNPOkw6rSKn7rW0Fmx9HUwJaiGy3pZeT5Fd0="
|
||||
},
|
||||
{
|
||||
"name": "8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch",
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@
|
|||
}:
|
||||
let
|
||||
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;
|
||||
in
|
||||
|
|
@ -30,10 +31,14 @@ in
|
|||
wantedBy = [
|
||||
"local-fs.target"
|
||||
"suspend.target"
|
||||
"suspend-then-hibernate.target"
|
||||
"hibernate.target"
|
||||
];
|
||||
after = [
|
||||
"local-fs.target"
|
||||
"suspend.target"
|
||||
"suspend-then-hibernate.target"
|
||||
"hibernate.target"
|
||||
];
|
||||
description = "Set the battery charge threshold to ${toString cfg.chargeUpto}%";
|
||||
startLimitBurst = 5;
|
||||
|
|
|
|||
|
|
@ -25,10 +25,6 @@
|
|||
lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8")
|
||||
[ "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.
|
||||
# https://asus-linux.org/manual/asusctl-manual/
|
||||
services = {
|
||||
|
|
@ -39,6 +35,7 @@
|
|||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
powerManagement.enable = lib.mkDefault true;
|
||||
modesetting.enable = lib.mkDefault true;
|
||||
open = lib.mkDefault false;
|
||||
nvidiaSettings = lib.mkDefault true;
|
||||
|
|
|
|||
16
asus/rog-gl552vw/default.nix
Normal file
16
asus/rog-gl552vw/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
18
asus/rog-strix/g533q/default.nix
Normal file
18
asus/rog-strix/g533q/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
36
asus/zenbook/um6702/default.nix
Normal file
36
asus/zenbook/um6702/default.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -3,6 +3,4 @@
|
|||
./cpu-only.nix
|
||||
../../../gpu/intel/comet-lake
|
||||
];
|
||||
|
||||
hardware.intelgpu.vaapiDriver = "intel-media-driver";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ../. ];
|
||||
|
||||
hardware.intelgpu = {
|
||||
computeRuntime = "legacy";
|
||||
vaapiDriver = "intel-vaapi-driver";
|
||||
enableHybridCodec = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -7,5 +7,8 @@
|
|||
"i915.enable_guc=2"
|
||||
];
|
||||
|
||||
hardware.intelgpu.vaapiDriver = "intel-media-driver";
|
||||
hardware.intelgpu = {
|
||||
computeRuntime = "legacy";
|
||||
vaapiDriver = "intel-media-driver";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,5 +3,8 @@
|
|||
|
||||
boot.kernelParams = [ "i915.enable_guc=2" ];
|
||||
|
||||
hardware.intelgpu.vaapiDriver = "intel-media-driver";
|
||||
hardware.intelgpu = {
|
||||
computeRuntime = "legacy";
|
||||
vaapiDriver = "intel-media-driver";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,15 @@
|
|||
default = true;
|
||||
};
|
||||
|
||||
computeRuntime = lib.mkOption {
|
||||
description = "intel-compute-runtime variant to use";
|
||||
type = lib.types.enum [
|
||||
"default"
|
||||
"legacy"
|
||||
];
|
||||
default = "default";
|
||||
};
|
||||
|
||||
vaapiDriver = lib.mkOption {
|
||||
description = "Intel VAAPI driver to use (use null to use both)";
|
||||
type = lib.types.nullOr (
|
||||
|
|
@ -59,7 +68,11 @@
|
|||
useIntelMediaDriver = cfg.vaapiDriver == "intel-media-driver" || cfg.vaapiDriver == null;
|
||||
intel-media-driver = pkgs.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;
|
||||
in
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,5 +3,8 @@
|
|||
|
||||
boot.kernelParams = [ "i915.enable_guc=2" ];
|
||||
|
||||
hardware.intelgpu.vaapiDriver = "intel-media-driver";
|
||||
hardware.intelgpu = {
|
||||
computeRuntime = "legacy";
|
||||
vaapiDriver = "intel-media-driver";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,5 +7,8 @@
|
|||
"i915.enable_psr=2"
|
||||
];
|
||||
|
||||
hardware.intelgpu.vaapiDriver = "intel-media-driver";
|
||||
hardware.intelgpu = {
|
||||
computeRuntime = "legacy";
|
||||
vaapiDriver = "intel-media-driver";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ../. ];
|
||||
|
||||
|
|
@ -12,6 +10,7 @@
|
|||
# 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
|
||||
hardware.intelgpu = {
|
||||
computeRuntime = "legacy";
|
||||
vaapiDriver = "intel-vaapi-driver";
|
||||
enableHybridCodec = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,13 +1,6 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
{ lib, config, ... }:
|
||||
{
|
||||
imports = [ ../. ];
|
||||
|
||||
# Gnome 40 introduced a new way of managing power, without tlp.
|
||||
# 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
|
||||
);
|
||||
config.services.power-profiles-daemon.enable = lib.mkDefault (!config.services.tlp.enable);
|
||||
}
|
||||
|
|
|
|||
57
compulab/README.md
Normal file
57
compulab/README.md
Normal 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/)
|
||||
64
compulab/ucm-imx95/bsp/ucm-imx95-atf.nix
Normal file
64
compulab/ucm-imx95/bsp/ucm-imx95-atf.nix
Normal 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" ];
|
||||
};
|
||||
}
|
||||
94
compulab/ucm-imx95/bsp/ucm-imx95-boot.nix
Normal file
94
compulab/ucm-imx95/bsp/ucm-imx95-boot.nix
Normal 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
|
||||
'';
|
||||
};
|
||||
}
|
||||
74
compulab/ucm-imx95/bsp/ucm-imx95-firmware.nix
Normal file
74
compulab/ucm-imx95/bsp/ucm-imx95-firmware.nix
Normal 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
|
||||
'';
|
||||
}
|
||||
71
compulab/ucm-imx95/bsp/ucm-imx95-linux.nix
Normal file
71
compulab/ucm-imx95/bsp/ucm-imx95-linux.nix
Normal 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 { })
|
||||
)
|
||||
76
compulab/ucm-imx95/bsp/ucm-imx95-oei-ddr.nix
Normal file
76
compulab/ucm-imx95/bsp/ucm-imx95-oei-ddr.nix
Normal 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" ];
|
||||
};
|
||||
}
|
||||
76
compulab/ucm-imx95/bsp/ucm-imx95-oei-tcm.nix
Normal file
76
compulab/ucm-imx95/bsp/ucm-imx95-oei-tcm.nix
Normal 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" ];
|
||||
};
|
||||
}
|
||||
84
compulab/ucm-imx95/bsp/ucm-imx95-optee-os.nix
Normal file
84
compulab/ucm-imx95/bsp/ucm-imx95-optee-os.nix
Normal 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
|
||||
'';
|
||||
}
|
||||
92
compulab/ucm-imx95/bsp/ucm-imx95-sm-fw.nix
Normal file
92
compulab/ucm-imx95/bsp/ucm-imx95-sm-fw.nix
Normal 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" ];
|
||||
};
|
||||
}
|
||||
95
compulab/ucm-imx95/bsp/ucm-imx95-uboot.nix
Normal file
95
compulab/ucm-imx95/bsp/ucm-imx95-uboot.nix
Normal 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;
|
||||
}
|
||||
19
compulab/ucm-imx95/default.nix
Normal file
19
compulab/ucm-imx95/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
17
compulab/ucm-imx95/modules.nix
Normal file
17
compulab/ucm-imx95/modules.nix
Normal 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;
|
||||
}
|
||||
3
compulab/ucm-imx95/overlay.nix
Normal file
3
compulab/ucm-imx95/overlay.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
final: _prev: {
|
||||
inherit (final.callPackage ./bsp/ucm-imx95-boot.nix { }) imx95-boot;
|
||||
}
|
||||
|
|
@ -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/)
|
||||
|
||||
`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.
|
||||
|
|
|
|||
|
|
@ -6,16 +6,8 @@
|
|||
../../../common/pc/laptop
|
||||
];
|
||||
|
||||
hardware.enableAllFirmware = lib.mkDefault true;
|
||||
|
||||
services = {
|
||||
fwupd.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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
32
dell/precision/5570/README.md
Normal file
32
dell/precision/5570/README.md
Normal 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)
|
||||
```
|
||||
37
dell/precision/5570/default.nix
Normal file
37
dell/precision/5570/default.nix
Normal 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;
|
||||
}
|
||||
|
|
@ -61,7 +61,10 @@ Then use `fwupdmgr` to perform updates
|
|||
|
||||
## 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
|
||||
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
|
||||
newest nvidia drivers don't support legacy devices, the closest version newer than 375.82 was chosen.
|
||||
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:
|
||||
|
||||
```bash
|
||||
$ 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.
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
enable32Bit = lib.mkDefault true;
|
||||
};
|
||||
nvidia = {
|
||||
package = config.boot.kernelPackages.nvidiaPackages.legacy_390;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
nvidiaSettings = lib.mkDefault true;
|
||||
modesetting.enable = lib.mkDefault true;
|
||||
open = lib.mkDefault false;
|
||||
|
|
|
|||
|
|
@ -13,11 +13,8 @@
|
|||
};
|
||||
|
||||
boot = {
|
||||
# needs to be explicitly loaded or else bluetooth/wifi won't work
|
||||
kernelModules = [
|
||||
"kvm-intel"
|
||||
"wl"
|
||||
];
|
||||
extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
22
flake.lock
generated
22
flake.lock
generated
|
|
@ -1,26 +1,6 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"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",
|
||||
"version": 7
|
||||
|
|
|
|||
110
flake.nix
110
flake.nix
|
|
@ -2,7 +2,39 @@
|
|||
description = "nixos-hardware";
|
||||
|
||||
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 =
|
||||
|
|
@ -20,12 +52,14 @@
|
|||
apple-imac-18-2 = import ./apple/imac/18-2;
|
||||
apple-macbook-air-3 = import ./apple/macbook-air/3;
|
||||
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-7 = import ./apple/macbook-air/7;
|
||||
apple-macbook-pro = import ./apple/macbook-pro;
|
||||
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-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-12-1 = import ./apple/macbook-pro/12-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-nvidia = import ./asus/flow/gv302x/nvidia;
|
||||
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-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-g733qs = import ./asus/rog-strix/g733qs;
|
||||
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-ux535 = import ./asus/zenbook/ux535;
|
||||
asus-zenbook-ux481-intelgpu = import ./asus/zenbook/ux481/intelgpu;
|
||||
|
|
@ -65,6 +102,7 @@
|
|||
dell-e7240 = deprecated "1326" "dell-e7240" (import ./dell/e7240);
|
||||
dell-g3-3779 = import ./dell/g3/3779;
|
||||
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-5509 = import ./dell/inspiron/5509;
|
||||
dell-inspiron-5515 = import ./dell/inspiron/5515;
|
||||
|
|
@ -91,6 +129,7 @@
|
|||
dell-precision-5490 = import ./dell/precision/5490;
|
||||
dell-precision-5530 = import ./dell/precision/5530;
|
||||
dell-precision-5560 = import ./dell/precision/5560;
|
||||
dell-precision-5570 = import ./dell/precision/5570;
|
||||
dell-precision-7520 = import ./dell/precision/7520;
|
||||
dell-xps-13-7390 = import ./dell/xps/13-7390;
|
||||
dell-xps-13-9300 = import ./dell/xps/13-9300;
|
||||
|
|
@ -132,9 +171,12 @@
|
|||
framework-13-7040-amd = import ./framework/13-inch/7040-amd;
|
||||
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-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-nanopi-r5s = import ./friendlyarm/nanopi-r5s;
|
||||
focus-m2-gen1 = import ./focus/m2/gen1;
|
||||
fydetab-duo = import ./fydetab/duo;
|
||||
gigabyte-b550 = import ./gigabyte/b550;
|
||||
gigabyte-b650 = import ./gigabyte/b650;
|
||||
gmktec-nucbox-g3-plus = import ./gmktec/nucbox/g3-plus;
|
||||
|
|
@ -152,9 +194,11 @@
|
|||
hp-elitebook-845g8 = import ./hp/elitebook/845/g8;
|
||||
hp-elitebook-845g9 = import ./hp/elitebook/845/g9;
|
||||
hp-probook-440G5 = import ./hp/probook/440G5;
|
||||
hp-probook-460G11 = import ./hp/probook/460G11;
|
||||
hp-laptop-14s-dq2024nf = import ./hp/laptop/14s-dq2024nf;
|
||||
huawei-machc-wa = import ./huawei/machc-wa;
|
||||
hp-notebook-14-df0023 = import ./hp/notebook/14-df0023;
|
||||
intel-nuc-5i5ryb = import ./intel/nuc/5i5ryb;
|
||||
intel-nuc-8i7beh = import ./intel/nuc/8i7beh;
|
||||
lenovo-ideacentre-k330 = import ./lenovo/ideacentre/k330;
|
||||
lenovo-ideapad-14imh9 = import ./lenovo/ideapad/14imh9;
|
||||
|
|
@ -163,11 +207,14 @@
|
|||
lenovo-ideapad-15ach6 = import ./lenovo/ideapad/15ach6;
|
||||
lenovo-ideapad-16ach6 = import ./lenovo/ideapad/16ach6;
|
||||
lenovo-ideapad-16ahp9 = import ./lenovo/ideapad/16ahp9;
|
||||
lenovo-ideapad-s5-16iah8 = import ./lenovo/ideapad/16iah8;
|
||||
lenovo-ideapad-z510 = import ./lenovo/ideapad/z510;
|
||||
lenovo-ideapad-slim-5 = import ./lenovo/ideapad/slim-5;
|
||||
lenovo-ideapad-s145-15api = import ./lenovo/ideapad/s145-15api;
|
||||
lenovo-legion-15ach6 = import ./lenovo/legion/15ach6;
|
||||
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-16ach6h = import ./lenovo/legion/16ach6h;
|
||||
lenovo-legion-16ach6h-hybrid = import ./lenovo/legion/16ach6h/hybrid;
|
||||
|
|
@ -178,6 +225,7 @@
|
|||
lenovo-legion-16achg6-nvidia = import ./lenovo/legion/16achg6/nvidia;
|
||||
lenovo-legion-16aph8 = import ./lenovo/legion/16aph8;
|
||||
lenovo-legion-16arha7 = import ./lenovo/legion/16arha7;
|
||||
lenovo-legion-16iah7h = import ./lenovo/legion/16iah7h;
|
||||
lenovo-legion-16ithg6 = import ./lenovo/legion/16ithg6;
|
||||
lenovo-legion-16irx8h = import ./lenovo/legion/16irx8h;
|
||||
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-gen4 = import ./lenovo/thinkpad/p14s/amd/gen4;
|
||||
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-gen5 = import ./lenovo/thinkpad/p14s/intel/gen5;
|
||||
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-gen4 = import ./lenovo/thinkpad/p16s/amd/gen4;
|
||||
lenovo-thinkpad-p16s-intel-gen2 = import ./lenovo/thinkpad/p16s/intel/gen2;
|
||||
lenovo-thinkpad-p43s = import ./lenovo/thinkpad/p43s;
|
||||
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-gen4 = import ./lenovo/thinkpad/t14/amd/gen4;
|
||||
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-amd-gen1 = import ./lenovo/thinkpad/t14s/amd/gen1;
|
||||
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-nano = import ./lenovo/thinkpad/x1-nano;
|
||||
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-intel = import ./lenovo/thinkpad/x13/intel;
|
||||
lenovo-thinkpad-x13-yoga = import ./lenovo/thinkpad/x13/yoga;
|
||||
lenovo-thinkpad-x13-yoga-3th-gen = import ./lenovo/thinkpad/x13/yoga/3th-gen;
|
||||
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-14ILL10 = import ./lenovo/yoga/7/14ILL10;
|
||||
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;
|
||||
linglong-nova-studio = import ./linglong/nova-studio;
|
||||
malibal-aon-s1-intel = import ./malibal/aon/s1;
|
||||
mechrevo-gm5hg0a = import ./mechrevo/GM5HG0A;
|
||||
microchip-icicle-kit = import ./microchip/icicle-kit;
|
||||
microsoft-surface-go = import ./microsoft/surface/surface-go;
|
||||
microsoft-surface-pro-intel = import ./microsoft/surface/surface-pro-intel;
|
||||
|
|
@ -296,15 +352,19 @@
|
|||
microsoft-surface-pro-9 = import ./microsoft/surface-pro/9;
|
||||
milkv-pioneer = import ./milkv/pioneer;
|
||||
minisforum-v3 = import ./minisforum/v3;
|
||||
mnt-reform-rk3588 = import ./mnt/reform/rk3588;
|
||||
morefine-m600 = import ./morefine/m600;
|
||||
msi-b350-tomahawk = import ./msi/b350-tomahawk;
|
||||
msi-b550-a-pro = import ./msi/b550-a-pro;
|
||||
msi-b550-tomahawk = import ./msi/b550-tomahawk;
|
||||
msi-gs60 = import ./msi/gs60;
|
||||
msi-gl62 = import ./msi/gl62;
|
||||
msi-gl65-10SDR-492 = import ./msi/gl65/10SDR-492;
|
||||
nxp-imx8mp-evk = import ./nxp/imx8mp-evk;
|
||||
nxp-imx8mq-evk = import ./nxp/imx8mq-evk;
|
||||
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-h3 = import ./hardkernel/odroid-h3;
|
||||
hardkernel-odroid-h4 = import ./hardkernel/odroid-h4;
|
||||
|
|
@ -348,13 +408,16 @@
|
|||
system76-gaze18 = import ./system76/gaze18;
|
||||
system76-galp5-1650 = import ./system76/galp5-1650;
|
||||
system76-darp6 = import ./system76/darp6;
|
||||
system76-thelio-mega = import ./system76/thelio-mega;
|
||||
toshiba-swanky = import ./toshiba/swanky;
|
||||
tuxedo-aura-15-gen1 = import ./tuxedo/aura/15/gen1;
|
||||
tuxedo-infinitybook-v4 = import ./tuxedo/infinitybook/v4;
|
||||
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-pulse-14-gen3 = import ./tuxedo/pulse/14/gen3;
|
||||
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;
|
||||
|
||||
common-cpu-amd = import ./common/cpu/amd;
|
||||
|
|
@ -390,5 +453,48 @@
|
|||
common-pc-laptop-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
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,16 +2,13 @@
|
|||
|
||||
## Updating Firmware
|
||||
|
||||
First put enable `fwupd`
|
||||
Everything is updateable through fwupd, so it's enabled by default.
|
||||
|
||||
```nix
|
||||
services.fwupd.enable = true;
|
||||
```
|
||||
|
||||
Then run
|
||||
To get the latest firmware, run:
|
||||
|
||||
```sh
|
||||
$ fwupdmgr update
|
||||
$ fwupdmgr refresh
|
||||
$ fwupdmgr update
|
||||
```
|
||||
|
||||
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop12.RPL.BIOS.firmware)
|
||||
|
|
|
|||
|
|
@ -4,4 +4,10 @@
|
|||
../common
|
||||
../../../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" ];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,4 +16,7 @@
|
|||
|
||||
# Needed for desktop environments to detect display orientation
|
||||
hardware.sensor.iio.enable = lib.mkDefault true;
|
||||
|
||||
# Everything is updateable through fwupd
|
||||
services.fwupd.enable = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,16 +2,13 @@
|
|||
|
||||
## Updating Firmware
|
||||
|
||||
First put enable `fwupd`
|
||||
Everything is updateable through fwupd, so it's enabled by default.
|
||||
|
||||
```nix
|
||||
services.fwupd.enable = true;
|
||||
```
|
||||
|
||||
Then run
|
||||
To get the latest firmware, run:
|
||||
|
||||
```sh
|
||||
$ fwupdmgr update
|
||||
$ fwupdmgr refresh
|
||||
$ fwupdmgr update
|
||||
```
|
||||
|
||||
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop.Ryzen7040.BIOS.firmware)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ in
|
|||
../common/amd.nix
|
||||
../../../common/cpu/amd/raphael/igpu.nix
|
||||
];
|
||||
|
||||
options = {
|
||||
hardware.framework.amd-7040.preventWakeOnAC = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
|
|
@ -30,6 +29,8 @@ in
|
|||
};
|
||||
|
||||
config = {
|
||||
services.fwupd.enable = true;
|
||||
|
||||
# Workaround applied upstream in Linux >=6.7 (on BIOS 03.03)
|
||||
# https://github.com/torvalds/linux/commit/a55bdad5dfd1efd4ed9ffe518897a21ca8e4e193
|
||||
services.udev.extraRules =
|
||||
|
|
|
|||
|
|
@ -2,14 +2,13 @@
|
|||
|
||||
## Updating Firmware
|
||||
|
||||
First put enable `fwupd`
|
||||
Everything is updateable through fwupd, so it's enabled by default.
|
||||
|
||||
```nix
|
||||
services.fwupd.enable = true;
|
||||
```
|
||||
|
||||
Then run
|
||||
To get the latest firmware, run:
|
||||
|
||||
```sh
|
||||
$ fwupdmgr update
|
||||
$ fwupdmgr refresh
|
||||
$ fwupdmgr update
|
||||
```
|
||||
|
||||
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop.RyzenAI300.BIOS.firmware)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,17 @@
|
|||
../common
|
||||
../common/amd.nix
|
||||
];
|
||||
config.hardware.framework.laptop13.audioEnhancement.rawDeviceName =
|
||||
|
||||
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
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@
|
|||
../../../common/gpu/amd
|
||||
];
|
||||
|
||||
boot.kernelParams =
|
||||
[
|
||||
boot.kernelParams = [
|
||||
# There seems to be an issue with panel self-refresh (PSR) that
|
||||
# causes hangs for users.
|
||||
#
|
||||
|
|
@ -19,8 +18,4 @@
|
|||
++ lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") [
|
||||
"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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,7 @@
|
|||
../../../common/cpu/intel
|
||||
];
|
||||
|
||||
boot.kernelParams =
|
||||
[
|
||||
boot.kernelParams = [
|
||||
# For Power consumption
|
||||
# https://community.frame.work/t/linux-battery-life-tuning/6665/156
|
||||
"nvme.noacpi=1"
|
||||
|
|
|
|||
|
|
@ -2,14 +2,13 @@
|
|||
|
||||
## Updating Firmware
|
||||
|
||||
First put enable `fwupd`
|
||||
Everything is updateable through fwupd, so it's enabled by default.
|
||||
|
||||
```nix
|
||||
services.fwupd.enable = true;
|
||||
```
|
||||
|
||||
Then run
|
||||
To get the latest firmware, run:
|
||||
|
||||
```sh
|
||||
$ fwupdmgr update
|
||||
$ fwupdmgr refresh
|
||||
$ fwupdmgr update
|
||||
```
|
||||
|
||||
- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop.MTL.BIOS.firmware)
|
||||
|
|
|
|||
|
|
@ -11,34 +11,15 @@
|
|||
../common/intel.nix
|
||||
];
|
||||
|
||||
# Everything is updateable through fwupd
|
||||
services.fwupd.enable = true;
|
||||
|
||||
# Need at least 6.9 to make suspend properly
|
||||
# Specifically this patch: https://github.com/torvalds/linux/commit/073237281a508ac80ec025872ad7de50cfb5a28a
|
||||
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.9") (
|
||||
lib.mkDefault pkgs.linuxPackages_latest
|
||||
);
|
||||
|
||||
# Intel NPU Driver
|
||||
# https://discourse.nixos.org/t/new-installation-on-asus-zenbook-ux5406-intel-vpu-firmware-error-2/58732/2
|
||||
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;''
|
||||
];
|
||||
|
||||
hardware.framework.laptop13.audioEnhancement.rawDeviceName =
|
||||
lib.mkDefault "alsa_output.pci-0000_00_1f.3.analog-stereo";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,14 @@
|
|||
# [Framework Laptop 16](https://frame.work/)
|
||||
|
||||
## 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)
|
||||
|
|
|
|||
|
|
@ -12,4 +12,6 @@
|
|||
../../../common/cpu/amd/raphael/igpu.nix
|
||||
];
|
||||
|
||||
# Everything is updateable through fwupd
|
||||
services.fwupd.enable = true;
|
||||
}
|
||||
|
|
|
|||
25
framework/16-inch/amd-ai-300-series/README.md
Normal file
25
framework/16-inch/amd-ai-300-series/README.md
Normal 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)
|
||||
21
framework/16-inch/amd-ai-300-series/default.nix
Normal file
21
framework/16-inch/amd-ai-300-series/default.nix
Normal 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;
|
||||
}
|
||||
|
|
@ -6,8 +6,7 @@
|
|||
../../../common/gpu/amd
|
||||
];
|
||||
|
||||
boot.kernelParams =
|
||||
[
|
||||
boot.kernelParams = [
|
||||
# There seems to be an issue with panel self-refresh (PSR) that
|
||||
# causes hangs for users.
|
||||
#
|
||||
|
|
@ -19,8 +18,4 @@
|
|||
++ lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") [
|
||||
"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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,12 +8,6 @@
|
|||
../../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
|
||||
services.fprintd.enable = lib.mkDefault true;
|
||||
|
||||
|
|
@ -50,4 +44,7 @@
|
|||
MatchDMIModalias=dmi:*svnFramework:pnLaptop16*
|
||||
AttrKeyboardIntegration=internal
|
||||
'';
|
||||
|
||||
# Everything is updateable through fwupd
|
||||
services.fwupd.enable = true;
|
||||
}
|
||||
|
|
|
|||
23
framework/desktop/amd-ai-max-300-series/README.md
Normal file
23
framework/desktop/amd-ai-max-300-series/README.md
Normal 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)
|
||||
20
framework/desktop/amd-ai-max-300-series/default.nix
Normal file
20
framework/desktop/amd-ai-max-300-series/default.nix
Normal 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
|
||||
);
|
||||
}
|
||||
|
|
@ -1,22 +1,26 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
kernel_version_compatible = lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.10";
|
||||
in
|
||||
{
|
||||
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
|
||||
default = lib.and (lib.versionAtLeast (lib.versions.majorMinor lib.version) "24.05") kernel_version_compatible;
|
||||
defaultText = "enabled by default on NixOS >= 24.05 and kernel >= 6.10";
|
||||
default = lib.versionAtLeast config.boot.kernelPackages.kernel.version "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 {
|
||||
assertions = [
|
||||
{
|
||||
assertion = lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.10";
|
||||
message = "The framework laptop kernel module requires Linux 6.10 or above";
|
||||
}
|
||||
];
|
||||
|
||||
boot = {
|
||||
extraModulePackages = with config.boot.kernelPackages; [
|
||||
framework-laptop-kmod
|
||||
];
|
||||
|
|
@ -26,31 +30,6 @@ in
|
|||
"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"
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
19
fydetab/duo/README.md
Normal file
19
fydetab/duo/README.md
Normal 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
43
fydetab/duo/ap6275p.nix
Normal 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;
|
||||
};
|
||||
})
|
||||
44
fydetab/duo/brcm-patchram.nix
Normal file
44
fydetab/duo/brcm-patchram.nix
Normal 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
9549
fydetab/duo/config
Normal file
File diff suppressed because it is too large
Load diff
28
fydetab/duo/config.nix
Normal file
28
fydetab/duo/config.nix
Normal 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
141
fydetab/duo/default.nix
Normal 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
35
fydetab/duo/himax.nix
Normal 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
18
fydetab/duo/kernel.nix
Normal 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
35
fydetab/duo/mali-g610.nix
Normal 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
99
fydetab/duo/u-boot.nix
Normal 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
|
||||
'';
|
||||
}
|
||||
11
fydetab/duo/uboot-remove-sig-req.patch
Normal file
11
fydetab/duo/uboot-remove-sig-req.patch
Normal 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
|
||||
|
|
@ -10,11 +10,6 @@
|
|||
"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.
|
||||
boot.loader.grub.gfxmodeEfi = lib.mkDefault "720x1280x32";
|
||||
|
||||
|
|
|
|||
14
hp/probook/460G11/default.nix
Normal file
14
hp/probook/460G11/default.nix
Normal 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;
|
||||
};
|
||||
}
|
||||
11
intel/nuc/5i5ryb/default.nix
Normal file
11
intel/nuc/5i5ryb/default.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel/broadwell
|
||||
../../../common/pc
|
||||
../../../common/pc/ssd
|
||||
];
|
||||
|
||||
services.thermald.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
@ -36,7 +36,7 @@ in
|
|||
|
||||
nixpkgs.overlays = [ (import ./overlay.nix) ];
|
||||
|
||||
nixpkgs.hostPlatform = "armv7l-linux";
|
||||
nixpkgs.hostPlatform.system = "armv7l-linux";
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ahci_mvebu" ];
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,10 @@
|
|||
# See https://wiki.archlinux.org/title/Dell_XPS_16_(9640)#Random_freezes
|
||||
"iommu.strict=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=\"\""
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -17,9 +17,4 @@
|
|||
|
||||
# Cooling management
|
||||
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";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,8 +10,7 @@
|
|||
# remove all packages for amd igpu. I only removed amdgpu from
|
||||
# services.xserver.videoDrivers by overriding. This is because the specialization
|
||||
# of nix cannot implement such an operation as canceling an import.
|
||||
hardware =
|
||||
{
|
||||
hardware = {
|
||||
nvidia.prime.offload.enable = false;
|
||||
}
|
||||
// lib.optionalAttrs (options ? amdgpu.opencl.enable) {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
let
|
||||
# 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
|
||||
cp ${./16ach6h.bin} $out/lib/firmware/edid/16ach6h.bin
|
||||
'';
|
||||
|
|
|
|||
|
|
@ -10,8 +10,7 @@
|
|||
# remove all packages for amd igpu. I only removed amdgpu from
|
||||
# services.xserver.videoDrivers by overriding. This is because the specialization
|
||||
# of nix cannot implement such an operation as canceling an import.
|
||||
hardware =
|
||||
{
|
||||
hardware = {
|
||||
nvidia.prime.offload.enable = false;
|
||||
}
|
||||
// lib.optionalAttrs (options ? amdgpu.opencl.enable) {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@
|
|||
{
|
||||
imports = [ ../hybrid ];
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
hardware =
|
||||
{
|
||||
hardware = {
|
||||
nvidia.prime.offload.enable = false;
|
||||
}
|
||||
// lib.optionalAttrs (options ? amdgpu.opencl.enable) {
|
||||
|
|
|
|||
|
|
@ -32,8 +32,4 @@
|
|||
|
||||
# Avoid issues with modesetting causing blank screen
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,8 +14,9 @@
|
|||
|
||||
# amdgpu.backlight=0 makes the backlight work
|
||||
# acpi_backlight=none allows the backlight save/load systemd service to work on older kernel versions
|
||||
boot.kernelParams =
|
||||
[ "amdgpu.backlight=0" ]
|
||||
boot.kernelParams = [
|
||||
"amdgpu.backlight=0"
|
||||
]
|
||||
++ lib.optional (lib.versionOlder config.boot.kernelPackages.kernel.version "6.1.6") "acpi_backlight=none";
|
||||
|
||||
# For mainline support of rtw89 wireless networking
|
||||
|
|
|
|||
7
lenovo/thinkpad/p14s/intel/gen2/README
Normal file
7
lenovo/thinkpad/p14s/intel/gen2/README
Normal 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.
|
||||
18
lenovo/thinkpad/p14s/intel/gen2/default.nix
Normal file
18
lenovo/thinkpad/p14s/intel/gen2/default.nix
Normal 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" ];
|
||||
}
|
||||
5
lenovo/thinkpad/p16s/amd/gen4/default.nix
Normal file
5
lenovo/thinkpad/p16s/amd/gen4/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
../.
|
||||
];
|
||||
}
|
||||
9
lenovo/thinkpad/t14/intel/default.nix
Normal file
9
lenovo/thinkpad/t14/intel/default.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../.
|
||||
../../../../common/cpu/intel
|
||||
../../../../common/gpu/intel
|
||||
];
|
||||
}
|
||||
8
lenovo/thinkpad/t14/intel/gen1/default.nix
Normal file
8
lenovo/thinkpad/t14/intel/gen1/default.nix
Normal 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
Loading…
Add table
Add a link
Reference in a new issue