Merge master into microsoft-surface/update-kernel-6.18.13

This commit is contained in:
mexisme 2026-04-03 08:52:54 +01:00
commit 62550a8541
48 changed files with 893 additions and 272 deletions

View file

@ -67,14 +67,14 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md).
## Get in touch
For questions and discussions, come join us in the [nixos-anywhere matrix](https://matrix.to/#/#nixos-hardware:nixos.org) room.
For questions and discussions, come join us in the [nixos-hardware matrix](https://matrix.to/#/#nixos-hardware:nixos.org) room.
# Community Meetings
The [NixOS hardware](https://github.com/orgs/NixOS/teams/nixos-hardware) team meets regularly to discuss hardware profiles and maintenance:
- **When**: Every 3rd Friday of the month
- **Time**: 05:00 pm (UTC) / 17:00 (UTC)
- **Time**: 06:00 pm (UTC) / 18:00 (UTC)
- **Where**: https://jitsi.lassul.us/Hardware-team
- **Contact**: hardware@nixos.org
@ -87,6 +87,7 @@ See code for all available configurations.
| Model | Path | Flake Module |
| --------------------------------------------------------------------------------- | ------------------------------------------------------- | -------------------------------------- |
| [Acer Aspire 4810T](acer/aspire/4810t) | `<nixos-hardware/acer/aspire/4810t>` | `acer-aspire-4810t` |
| [Acer Predator Helios 300 (PH315-51)](acer/predator/helios/300/ph315-51/) | `<nixos-hardware/acer/predator/helios/300/ph315-51/>` | `acer-predator-helios-300-ph315-51` |
| [Airis N990](airis/n990) | `<nixos-hardware/airis/n990>` | `airis-n990` |
| [Apple iMac 12,2](apple/imac/12-2) | `<nixos-hardware/apple/imac/12-2>` | `apple-imac-12-2` |
| [Apple iMac 14.2](apple/imac/14-2) | `<nixos-hardware/apple/imac/14-2>` | `apple-imac-14-2` |
@ -131,8 +132,10 @@ See code for all available configurations.
| [Asus TUF FX504GD](asus/fx504gd) | `<nixos-hardware/asus/fx504gd>` | `asus-fx504gd` |
| [Asus TUF FX506HM](asus/fx506hm) | `<nixos-hardware/asus/fx506hm>` | `asus-fx506hm` |
| [Asus TUF FA506IC](asus/fa506ic) | `<nixos-hardware/asus/fa506ic>` | `asus-fa506ic` |
| [Asus TUF FA506IC](asus/fa506nc) | `<nixos-hardware/asus/fa506nc>` | `asus-fa506nc` |
| [Asus TUF FA507RM](asus/fa507rm) | `<nixos-hardware/asus/fa507rm>` | `asus-fa507rm` |
| [Asus TUF FA507NV](asus/fa507nv) | `<nixos-hardware/asus/fa507nv>` | `asus-fa507nv` |
| [Asus TUF FA706IC](asus/fa706ic) | `<nixos-hardware/asus/fa706ic>` | `asus-fa706ic` |
| [Asus Zenbook Duo 14 UX481](asus/zenbook/ux481/intelgpu/) | `<nixos-hardware/asus/zenbook/ux481/intelgpu>` | `asus-zenbook-ux481-intelgpu` |
| [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` |
@ -162,6 +165,7 @@ See code for all available configurations.
| [Dell Latitude 7490](dell/latitude/7490) | `<nixos-hardware/dell/latitude/7490>` | `dell-latitude-7490` |
| [Dell Latitude 9430](dell/latitude/9430) | `<nixos-hardware/dell/latitude/9430>` | `dell-latitude-9430` |
| [Dell Latitude E7240](dell/latitude/e7240) | `<nixos-hardware/dell/latitude/e7240>` | `dell-latitude-e7240` |
| [Dell Latitude E7440](dell/latitude/e7440) | `<nixos-hardware/dell/latitude/e7440>` | `dell-latitude-e7440` |
| [Dell Optiplex 3050](dell/optiplex/3050) | `<nixos-hardware/dell/optiplex/3050>` | `dell-optiplex-3050` |
| [Dell Poweredge R7515](dell/poweredge/r7515) | `<nixos-hardware/dell/poweredge/r7515>` | `dell-poweredge-r7515` |
| [Dell Precision 3490, nvidia](dell/precision/3490/nvidia) | `<nixos-hardware/dell/precision/3490/nvidia>` | `dell-precision-3490-nvidia` |
@ -242,6 +246,7 @@ See code for all available configurations.
| [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` |
| [Intel NUC 12WSHi7](intel/nuc/12wshi7/) | `<nixos-hardware/intel/nuc/12wshi7>` | `intel-nuc-12wshi7` |
| [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` |
@ -294,9 +299,11 @@ 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 AMD Gen 6](lenovo/thinkpad/p14s/amd/gen6) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen6>` | `lenovo-thinkpad-p14s-amd-gen6` |
| [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 P15v Intel Gen 3](lenovo/thinkpad/p15v/intel/gen3) | `<nixos-hardware/lenovo/thinkpad/p15v/intel/gen3>` | `lenovo-thinkpad-p15v-intel-gen3` |
| [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 AMD Gen 4](lenovo/thinkpad/p16s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/p16s/amd/gen4>` | `lenovo-thinkpad-p16s-amd-gen4` |
@ -386,6 +393,7 @@ See code for all available configurations.
| [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` |
| [MSI Prestige 15 A10SC](msi/prestige/15-a10sc) | `<nixos-hardware/msi/prestige/15-a10sc>` | `msi-prestige-15-a10sc` |
| [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-go` |

View file

@ -0,0 +1,7 @@
# Acer Predator Helios 300 (PH315-51)
## Hardware Configuration:
- Intel Core i5 (8th Gen) 8300H / 2.3 GHz
- NVIDIA GeForce GTX 1050 Ti
- 128GB SSD + 1TB HDD

View file

@ -0,0 +1,27 @@
{
lib,
...
}:
let
inherit (lib) mkDefault;
in
{
imports = [
../../../../../common/pc/laptop
../../../../../common/cpu/intel/coffee-lake
../../../../../common/gpu/nvidia/pascal
];
hardware = {
nvidia = {
modesetting.enable = mkDefault true;
powerManagement.enable = mkDefault true;
prime = {
sync.enable = mkDefault true;
intelBusId = "PCI:0@0:2:0";
nvidiaBusId = "PCI:1@0:0:0";
};
};
};
}

View file

@ -1,7 +1,5 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
callPackage,
dmg2img,
}:

View file

@ -1,49 +1,21 @@
{
"base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/6b41c3fd65913e0fa3592ad16ff4a3a5b01efc7a/",
"base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/5051ebba61fe8765ba452f46db9b944f33f07a86/",
"patches": [
{
"name": "1001-Add-apple-bce-driver.patch",
"hash": "sha256-00K3LmId2Ag6s5K76p7mB2a0oEXp815yRd+U5wxWPMc="
"hash": "sha256-oZgaj1ujKSjn5PEJ8khrqFnoAkXbC+TInlKfdX0X82Y="
},
{
"name": "1002-Put-apple-bce-in-drivers-staging.patch",
"hash": "sha256-wkveNo1qwAwXWDGTFed4ZDbuBnJbwKgWLmTHK9qq0oM="
},
{
"name": "1003-Fix-sparse-errors.patch",
"hash": "sha256-nuCOPWa4Hp+HCCBe6Y++M4g1k4plOWzy2hqHXlJbp9g="
},
{
"name": "1004-Fix-freezing-on-turning-off-camera.patch",
"hash": "sha256-rFrSUhiNXgQbfgKjryJktYxYcchXE1PI49Q1gW001+0="
},
{
"name": "1007-HID-multitouch-Get-the-contact-ID-from-HID_DG_TRANSD.patch",
"hash": "sha256-JF5PjByo4S1Rd/B5luAzOXDv+iakCnJfmujIQuUiT1A="
},
{
"name": "1008-HID-multitouch-support-getting-the-tip-state-from-HI.patch",
"hash": "sha256-m/NAKoHRC/HwxG5fFZxFl6DtY4Xv8kPBWvdKdtadrrk="
},
{
"name": "1009-HID-multitouch-take-cls-maxcontacts-into-account-for.patch",
"hash": "sha256-h6jk9yw/4txd8PATpMxB9mIzik9+X1zP6p4K35AqdXw="
},
{
"name": "1010-HID-multitouch-specify-that-Apple-Touch-Bar-is-direc.patch",
"hash": "sha256-5PbLynVnQqlJKPTWhcmwXCkYDEopLBQWnxWvZUt0EN4="
},
{
"name": "1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bar.patch",
"hash": "sha256-dIzEOj89D2rIEc2/mjq3TkIfI3ZHzu0VRDQQOzp+Snc="
"hash": "sha256-JHWLmSJ158Qs24cjnzolR4JKuNhzzf9e9hRR8T96Dp4="
},
{
"name": "2008-i915-4-lane-quirk-for-mbp15-1.patch",
"hash": "sha256-PjMVt4u505PXnKFpojov0Uwhj0KxZas1E4NYJGI6lQ4="
"hash": "sha256-S2osR1aSjqJiO7rNZP1sKt2+Uxyitwse/6BXMJvE9as="
},
{
"name": "2009-apple-gmux-allow-switching-to-igpu-at-probe.patch",
"hash": "sha256-aE+MEu/jRrZBa+3Q03quOHUsIseRED6A7N/K9kEVtbM="
"hash": "sha256-6i+fh/Ifle0di5/tMOdMm0NMkEmeUb17hYM/g2j2dfI="
},
{
"name": "3001-applesmc-convert-static-structures-to-drvdata.patch",
@ -83,27 +55,19 @@
},
{
"name": "4001-asahi-trackpad.patch",
"hash": "sha256-nOpQ3t+QQXco6p7C03fM5EZ3ZfnzwC6UCFwHQd1EnGE="
},
{
"name": "4002-HID-quirks-remove-T2-devices-from-hid_mouse_ignore_l.patch",
"hash": "sha256-0PMCE3IWHekir5YV1BD6Jakc7dOV6Fj2HfIGWZnXZV0="
"hash": "sha256-+YXyIjtlVrLo8allTO3M1A+xold5FUXaZ8dwD2j5HDc="
},
{
"name": "4003-HID-apple-ignore-the-trackpad-on-T2-Macs.patch",
"hash": "sha256-JTeYtaBqMyTu5IdGb8x7wbP9ZE1rXT4lpEjudR1ySFI="
"hash": "sha256-T2tYcFLeWUdx6QawANe3ZNVSRxmo1IdPiSpGLQk4IDY="
},
{
"name": "4004-HID-magicmouse-Add-support-for-trackpads-found-on-T2.patch",
"hash": "sha256-dNrpDlIE9SaQUOntVQHMOyj7T/dsuRemN56yskKWue0="
"hash": "sha256-ubchCEv1BZ7t/zkI9DpHA4gUln9cdu4yHzVJI2TNlS0="
},
{
"name": "4005-HID-apple-Add-necessary-IDs-and-support-for-replacem.patch",
"hash": "sha256-SRKESCbpxSYm7U0VyCmvkmT/er6/GEHhwo8tgJDO6mQ="
},
{
"name": "4006-HID-magicmouse-Add-MacBookPro15-1-replacement-trackp.patch",
"hash": "sha256-mMqHhxig+Z9eVPaa1qfcNVCRX16B6/KuEd1KnSZMLLk="
"name": "4005-HID-magicmouse-fix-regression-breaking-support-for-M.patch",
"hash": "sha256-oT+3AeETnKfzblxtcTD18c61BKoD9yAsga0AL3R8u7k="
},
{
"name": "7001-drm-i915-fbdev-Discard-BIOS-framebuffers-exceeding-h.patch",
@ -111,11 +75,11 @@
},
{
"name": "8001-Add-APFS-driver.patch",
"hash": "sha256-uR5hg75SFFWzfrKyU5UnzPL4U7LkjqGs44rkxM7ur8o="
"hash": "sha256-ozOkXGFfsT2iVjAZDoWya8tBY8yiChgLKkBnGACzyrY="
},
{
"name": "8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch",
"hash": "sha256-n1SH5vC//LRJdWOavH9/BHqBTjkUj5f+dFGitSeHksw="
"hash": "sha256-gh1z49QeKgTmGJ92KFNDvqn9gCW0dtrI7DMzaD2ZHGU="
}
]
}

View file

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

View file

@ -1,21 +1,13 @@
{
"base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/1f514a15e2b20ce2e1f99018493c71de9784fcf0/",
"base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/76956434864f852a31a8965d2848af3217848dca/",
"patches": [
{
"name": "1001-Add-apple-bce-driver.patch",
"hash": "sha256-e3RPvWPj2QASGOS4kieO8YFekrXsBCJtfF82OPlOn2E="
"hash": "sha256-94oDsXFCaE+NMAmGiI1KOUX0j79glU3WSqDIpZGEzlU="
},
{
"name": "1002-Put-apple-bce-in-drivers-staging.patch",
"hash": "sha256-DXj4CmE7TKMGrAhQDOR5RVw9YHmyQMiXZsmxYfkKAEA="
},
{
"name": "1003-Fix-sparse-errors.patch",
"hash": "sha256-nuCOPWa4Hp+HCCBe6Y++M4g1k4plOWzy2hqHXlJbp9g="
},
{
"name": "1004-Fix-freezing-on-turning-off-camera.patch",
"hash": "sha256-rFrSUhiNXgQbfgKjryJktYxYcchXE1PI49Q1gW001+0="
"hash": "sha256-8SgFQtQ478DPdSD0zKXjgSsgE+lNSVjOcN/mlDQ+Zuw="
},
{
"name": "1005-HID-hid-appletb-bl-add-driver-for-the-backlight-of-A.patch",
@ -27,7 +19,7 @@
},
{
"name": "1007-HID-multitouch-Get-the-contact-ID-from-HID_DG_TRANSD.patch",
"hash": "sha256-JF5PjByo4S1Rd/B5luAzOXDv+iakCnJfmujIQuUiT1A="
"hash": "sha256-iVWI1dSktiIByMJmf3PhTFihwo7BpJMbe1kROP/jsMU="
},
{
"name": "1008-HID-multitouch-support-getting-the-tip-state-from-HI.patch",
@ -43,7 +35,7 @@
},
{
"name": "1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bar.patch",
"hash": "sha256-dIzEOj89D2rIEc2/mjq3TkIfI3ZHzu0VRDQQOzp+Snc="
"hash": "sha256-2LjWtyYFBREgRC8UAmn5SVnZ9v21vaKzjMwRo9CPYA4="
},
{
"name": "1013-lib-vsprintf-Add-support-for-generic-FourCCs-by-exte.patch",
@ -127,11 +119,11 @@
},
{
"name": "8001-Add-APFS-driver.patch",
"hash": "sha256-rTdmORTT2oeBTh6R8LbXimgiaA7X6AgQO+lUuN5hJYI="
"hash": "sha256-4gtr9/k+Leg8CkKwe673IWSS/OCn3bwNyjQtrEdwgzQ="
},
{
"name": "8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch",
"hash": "sha256-n1SH5vC//LRJdWOavH9/BHqBTjkUj5f+dFGitSeHksw="
"hash": "sha256-7pWy7C71AO2spULSzy/EEVcvgviqE0CMQ08zx4t7s9s="
}
]
}

View file

@ -26,7 +26,6 @@
services = {
asusd = {
enable = lib.mkDefault true;
enableUserService = lib.mkDefault true;
};
supergfxd.enable = lib.mkDefault true;
};

74
asus/fa506nc/README.md Normal file
View file

@ -0,0 +1,74 @@
# ASUS TUF A15 FA506NC
- GPU switching to the nvidia card works fine through supergfxd.
- Power profiles autoswitch through asusctl in tandem with power-profiles-daemon.
- The batter charge limit configuration through ../battery.nix did not work,
setting a limit through asusd works.
## Configuring AsusCTL
To declaratively configure asusd you can control the whole config file through
the asusd service (same for fan curves and keyboard leds):
```nix
services.asusd.asusdConfig.text = ''
(
charge_control_end_threshold: 80,
base_charge_control_end_threshold: 80,
disable_nvidia_powerd_on_battery: true,
ac_command: "",
bat_command: "",
platform_profile_linked_epp: true,
platform_profile_on_battery: Quiet,
change_platform_profile_on_battery: true,
platform_profile_on_ac: Performance,
change_platform_profile_on_ac: true,
profile_quiet_epp: Power,
profile_balanced_epp: BalancePower,
profile_custom_epp: Performance,
profile_performance_epp: Performance,
ac_profile_tunings: {
Performance: (
enabled: false,
group: {},
),
Quiet: (
enabled: false,
group: {},
),
Balanced: (
enabled: false,
group: {},
),
},
dc_profile_tunings: {
Quiet: (
enabled: false,
group: {},
),
Balanced: (
enabled: false,
group: {},
),
Performance: (
enabled: false,
group: {},
),
},
armoury_settings: {},
)
'';
```
Here you can set the battery charge limit and other settings like which profile to
use on batter and which on power.
## More optimizations
You may also want to enable thermald and powertop for the optimizations mentioned in
https://nixos.wiki/wiki/Laptop.
```nix
services.thermald.enable = true;
powerManagement.powertop.enable = true;
```

32
asus/fa506nc/default.nix Normal file
View file

@ -0,0 +1,32 @@
{ lib, ... }:
{
imports = [
../../common/cpu/amd
../../common/cpu/amd/pstate.nix
../../common/gpu/amd
../../common/gpu/nvidia/prime.nix
../../common/gpu/nvidia/ampere
../../common/pc/laptop
../../common/pc/ssd
];
hardware.nvidia = {
dynamicBoost.enable = lib.mkDefault true;
prime = {
amdgpuBusId = "PCI:5:0:0";
nvidiaBusId = "PCI:1:0:0";
};
};
# 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;
services = {
# https://asus-linux.org/manual/asusctl-manual/
asusd.enable = lib.mkDefault true;
supergfxd.enable = lib.mkDefault true;
};
}

View file

@ -34,7 +34,6 @@
services = {
asusd = {
enable = lib.mkDefault true;
enableUserService = lib.mkDefault true;
};
};

27
asus/fa706ic/default.nix Normal file
View file

@ -0,0 +1,27 @@
{ lib, ... }:
{
imports = [
../../common/cpu/amd
../../common/cpu/amd/pstate.nix
../../common/gpu/amd
../../common/gpu/nvidia/prime.nix
../../common/gpu/nvidia/ampere
../../common/pc/laptop
../../common/pc/ssd
];
hardware.nvidia = {
dynamicBoost.enable = lib.mkDefault true;
prime = {
amdgpuBusId = "PCI:6:0:0";
nvidiaBusId = "PCI:1:0:0";
};
};
services = {
asusd.enable = lib.mkDefault true;
supergfxd.enable = lib.mkDefault true;
};
}

View file

@ -60,7 +60,6 @@ in
services = {
asusd = {
enable = mkDefault true;
enableUserService = mkDefault true;
};
supergfxd.enable = mkDefault true;

View file

@ -39,7 +39,6 @@ in
services = {
asusd = {
enable = mkDefault true;
enableUserService = mkDefault true;
};
supergfxd.enable = mkDefault true;

View file

@ -59,7 +59,6 @@ in
services = {
asusd = {
enable = mkDefault true;
enableUserService = mkDefault true;
};
supergfxd.enable = mkDefault true;

View file

@ -13,7 +13,6 @@
"i915.enable_guc=3"
"i915.fastboot=1"
# needed for keyboard
"i8042.dumbkbd=1"
"i8042.nopnp=1"
];
}

View file

@ -0,0 +1,9 @@
{ ... }:
{
imports = [
../../../common/cpu/intel/haswell
../../../common/pc/laptop
../../../common/pc/ssd
];
}

View file

@ -46,6 +46,7 @@
in
{
acer-aspire-4810t = import ./acer/aspire/4810t;
acer-predator-helios-300-ph315-51 = import ./acer/predator/helios/300/ph315-51;
airis-n990 = import ./airis/n990;
aoostar-r1-n100 = import ./aoostar/r1/n100;
apple-imac-12-2 = import ./apple/imac/12-2;
@ -72,8 +73,10 @@
asus-fx504gd = import ./asus/fx504gd;
asus-fx506hm = import ./asus/fx506hm;
asus-fa506ic = import ./asus/fa506ic;
asus-fa506nc = import ./asus/fa506nc;
asus-fa507nv = import ./asus/fa507nv;
asus-fa507rm = import ./asus/fa507rm;
asus-fa706ic = import ./asus/fa706ic;
asus-flow-gv302x-amdgpu = import ./asus/flow/gv302x/amdgpu;
asus-flow-gv302x-nvidia = import ./asus/flow/gv302x/nvidia;
asus-flow-gz301vu = import ./asus/flow/gz301vu;
@ -125,6 +128,7 @@
dell-latitude-7490 = import ./dell/latitude/7490;
dell-latitude-9430 = import ./dell/latitude/9430;
dell-latitude-e7240 = import ./dell/latitude/e7240;
dell-latitude-e7440 = import ./dell/latitude/e7440;
dell-optiplex-3050 = import ./dell/optiplex/3050;
dell-poweredge-r7515 = import ./dell/poweredge/r7515;
dell-precision-3490 = deprecated "1491" "dell-precision-3490" (import ./dell/precision/3490);
@ -207,6 +211,7 @@
hp-notebook-14-df0023 = import ./hp/notebook/14-df0023;
intel-nuc-5i5ryb = import ./intel/nuc/5i5ryb;
intel-nuc-8i7beh = import ./intel/nuc/8i7beh;
intel-nuc-12wshi7 = import ./intel/nuc/12wshi7;
lenovo-ideacentre-k330 = import ./lenovo/ideacentre/k330;
lenovo-ideapad-14imh9 = import ./lenovo/ideapad/14imh9;
lenovo-ideapad-15alc6 = import ./lenovo/ideapad/15alc6;
@ -261,9 +266,11 @@
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-amd-gen6 = import ./lenovo/thinkpad/p14s/amd/gen6;
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-p15v-intel-gen3 = import ./lenovo/thinkpad/p15v/intel/gen3;
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;
@ -373,6 +380,7 @@
msi-gs60 = import ./msi/gs60;
msi-gl62 = import ./msi/gl62;
msi-gl65-10SDR-492 = import ./msi/gl65/10SDR-492;
msi-prestige-15-a10sc = import ./msi/prestige/15-a10sc;
nxp-imx8mp-evk = import ./nxp/imx8mp-evk;
nxp-imx8mq-evk = import ./nxp/imx8mq-evk;
nxp-imx8qm-mek = import ./nxp/imx8qm-mek;
@ -491,9 +499,29 @@
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;
# Raspberry Pi kernels (aarch64-linux only)
rpi2-kernel = (pkgs.callPackage ./raspberry-pi/common/kernel.nix { rpiVersion = 2; });
rpi3-kernel = (pkgs.callPackage ./raspberry-pi/common/kernel.nix { rpiVersion = 3; });
rpi4-kernel = (pkgs.callPackage ./raspberry-pi/common/kernel.nix { rpiVersion = 4; });
rpi5-kernel = (pkgs.callPackage ./raspberry-pi/common/kernel.nix { rpiVersion = 5; });
}
);
# Hydra jobset for Raspberry Pi kernels
hydraJobs = {
raspberry-pi-kernels = eachSystem (
pkgs: system:
pkgs.lib.optionalAttrs (system == "aarch64-linux") {
inherit (self.packages.${system})
rpi2-kernel
rpi3-kernel
rpi4-kernel
rpi5-kernel
;
}
);
};
# Add checks for `nix run .#run-tests`
checks = eachSystem (
pkgs: system:

View file

@ -1,3 +1,5 @@
# Huawei Matebook X Pro (2020)
This is a very standard device that needs little configuration. The module mainly imports the common modules for its CPU, GPU, SSD etc. and enables ppd for power management. Nvidia prime offload is also enabled. This configuration should work with all Matebook X Pro models from 2020 (MACHC-WA*) other than MACHC-WAH9L as it does not contain the Nvidia GPU.
This is a very standard device that needs little configuration. The module mainly imports the common modules for its CPU, GPU, SSD etc. and enables ppd for power management. Nvidia prime offload is also enabled. This configuration should work with all Matebook X Pro models from 2020 (MACHC-WA*) other than MACHC-WAH9L as it does not contain the Nvidia GPU.
Please also take a look at the `hardware.nvidia.primeBatterySaverSpecialisation ` to disable the dGPU to save battery.

View file

@ -7,22 +7,19 @@
{
imports = [
../../common/cpu/intel/comet-lake
../../common/gpu/nvidia
../../common/gpu/intel/comet-lake
../../common/gpu/nvidia/pascal
../../common/gpu/nvidia/prime.nix
../../common/hidpi.nix
../../common/pc/laptop
../../common/pc/ssd
];
hardware.nvidia = {
modesetting.enable = lib.mkDefault true;
open = lib.mkDefault false;
nvidiaSettings = lib.mkDefault true;
prime = {
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
};
services.power-profiles-daemon.enable = lib.mkDefault true;
}

View file

@ -0,0 +1,43 @@
# NUC
## Tested Hardware
``` shellsession
$ lspci -nnn
00:00.0 Host bridge [0600]: Intel Corporation Device [8086:4621] (rev 02)
00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] [8086:46a6] (rev 0c)
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.2 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #2 [8086:462f] (rev 02)
00:08.0 System peripheral [0880]: Intel Corporation 12th Gen Core Processor Gaussian & Neural Accelerator [8086:464f] (rev 02)
00:0a.0 Signal processing controller [1180]: Intel Corporation Platform Monitoring Technology [8086:467d] (rev 01)
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:0d.3 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 NHI #1 [8086:466d] (rev 02)
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:17.0 SATA controller [0106]: Intel Corporation Alder Lake-P SATA AHCI Controller [8086:51d3] (rev 01)
00:1d.0 PCI bridge [0604]: Intel Corporation Alder Lake PCI Express Root Port #9 [8086:51b0] (rev 01)
00:1f.0 ISA bridge [0601]: Intel Corporation Alder Lake PCH eSPI Controller [8086:5182] (rev 01)
00:1f.3 Multimedia audio controller [0401]: 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 Non-Volatile memory controller [0108]: Micron Technology Inc 2550 NVMe SSD (DRAM-less) [1344:5416] (rev 01)
72:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I225-V [8086:15f3] (rev 03)
```
## Before Installation
These settings are needed both for booting the final install, and
installer itself. Therefore, they must be done first.
- Disable Secure Boot (but keep UEFI Boot).
# References
- [ASUS Product page](https://www.asus.com/supportonly/nuc12wshi7/helpdesk_qvl/) (formerly on Intel's site)
- [Arch Wiki on Intel NUC](https://wiki.archlinux.org/title/Intel_NUC)

View file

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

View file

@ -0,0 +1,12 @@
{ ... }:
{
imports = [
../.
../../../../../common/cpu/amd/pstate.nix
];
# Embedded controller wake-ups drain battery in s2idle on this device
# See https://lore.kernel.org/all/ZnFYpWHJ5Ml724Nv@ohnotp/
boot.kernelParams = [ "acpi.ec_no_wakeup=1" ];
}

View file

@ -0,0 +1,10 @@
{ lib, ... }:
{
imports = [
../.
../../../common/pc/ssd
];
hardware.enableRedistributableFirmware = lib.mkDefault true;
hardware.trackpoint.device = lib.mkDefault "TPPS/2 Elan TrackPoint";
}

View file

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

View file

@ -0,0 +1,14 @@
{ lib, ... }:
{
imports = [
../.
../../../../../common/cpu/intel/alder-lake
../../../../../common/gpu/nvidia/prime.nix
../../../../../common/gpu/nvidia/turing
];
hardware.nvidia.prime = {
intelBusId = lib.mkDefault "PCI:0:2:0";
nvidiaBusId = lib.mkDefault "PCI:1:0:0";
};
}

View file

@ -26,7 +26,7 @@ let
src = fetchzip {
url = "mirror://kernel/linux/kernel/v${lib.versions.major modDirVersion}.x/linux-${modDirVersion}.tar.xz";
hash = "sha256-MibiVni0N37BxOrD53cDGitIbC24p9+7551qMQIcSHY=";
hash = "sha256-cdQbdColRBCzQPWojIVpLs6Rmuk91bBPtqf8DsmkSxU=";
};
kernelPatches =
@ -101,10 +101,17 @@ let
ARM_IMX_CPUFREQ_DT = yes;
ARM_IMX_BUS_DEVFREQ = yes;
IMX_IRQSTEER = yes;
PWM_FSL_FTM = yes;
FSL_RCPM = yes;
VIDEO_DW100 = module;
IMX_AIPSTZ = module;
IMX_DSP = module;
IMX_REMOTEPROC = module;
IMX_DSP_REMOTEPROC = module;
PCI_MESON = yes;
DWMAC_MESON = module;
MDIO_BUS_MUX_MESON_G12A = yes;
MDIO_BUS_MUX_MESON_G12A = module;
I2C_MESON = yes;
PWM_MESON = yes;
USB_DWC3_MESON_G12A = yes;
@ -113,9 +120,6 @@ let
MESON_DDR_PMU = yes;
RTW88_8822CS = module;
PWM_FSL_FTM = yes;
FSL_RCPM = yes;
ARCH_ROCKCHIP = yes;
# ARM_ROCKCHIP_CPUFREQ = module; # configuration option does not exist
DRM_PANTHOR = module;
@ -134,8 +138,6 @@ let
REGULATOR_FIXED_VOLTAGE = yes;
GPIO_ROCKCHIP = yes;
PL330_DMA = yes;
DRM_ZYNQMP_DPSUB = no; # patches for 6.18 break this driver
};
}
// (args.argsOverride or { })

View file

@ -1,99 +1,87 @@
[
"linux/patches6.18/imx8mp-mnt-pocket-reform/2ghz/0001-imx8mp-2ghz-clk.patch"
"linux/patches6.18/imx8mp-mnt-pocket-reform/2ghz/0002-imx8mp-2ghz-opp.patch"
"linux/patches6.18/imx8mp-mnt-pocket-reform/audio/0000-revert-crashy-audiomix-pm-support.patch"
"linux/patches6.18/imx8mp-mnt-pocket-reform/mmc-sdio/0001-sdhci-add-no-sd-uhs-sdr104-devicetree-property.patch"
"linux/patches6.18/imx8mp-mnt-pocket-reform/mmc-sdio/0002-During-the-card-init-the-host-side-sometimes-may-nee.patch"
"linux/patches6.18/imx8mp-mnt-pocket-reform/mmc-sdio/0003-USDHC-IP-has-one-limitation-the-tuning-circuit-can-t.patch"
"linux/patches6.18/imx8mp-mnt-pocket-reform/pocket-panel/0001-v5-add-multi-display-panel-driver.patch"
"linux/patches6.18/imx8mp-mnt-pocket-reform/pocket-panel/0002-pocket-panel-fix-sleep-add-orientation.patch"
"linux/patches6.18/imx8mp-mnt-reform2/0001-sn65dsi86-use-hs-clock-of-samsung-dsim-host-directly.patch"
"linux/patches6.18/imx8mp-mnt-reform2/0002-lcdif-dont-exceed-desired-pixel-clock.patch"
"linux/patches6.18/imx8mq-mnt-reform2/0001-imx8mq-mnt-reform2.dts-multiple-fixes-for-display-wi.patch"
"linux/patches6.18/imx8mq-mnt-reform2/0001-nwl-dsi-fixup-mode-only-for-LCDIF-input-not-DCSS.patch"
"linux/patches6.18/imx8mq-mnt-reform2/0002-Revert-drm-bridge-nwl-dsi-Use-vsync-hsync-polarity-f.patch"
"linux/patches6.18/imx8mq-mnt-reform2/0003-lcdif-fix-pcie-interference.patch"
"linux/patches6.18/imx8mq-mnt-reform2/0004-mnt4002-imx-gpcv2-wake-smccc.patch.patch"
"linux/patches6.18/imx8mq-mnt-reform2/0005-pci-imx6-add-support-for-internal-refclk-imx8mq.patch"
"linux/patches6.18/imx8mq-mnt-reform2/0006-imx8mq-import-HDMI-driver-and-make-DCSS-compatible-w.patch"
"linux/patches6.18/ls1028a-mnt-reform2/0000-dtsi-add-hdptx.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-pocket-reform/0001-a311d-viu-fifo-lines-config.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-pocket-reform/0002-a311d-viu-fifo-lines-config-header.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-pocket-reform/0003-tlv320aic31xx-add-1228800hz-support.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0001-Revert-drm-bridge-synopsys-dw-mipi-dsi-enable-EoTp-b.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0001-meson-g12b-bananapi-cm4-mnt-reform2.dts-fix-audio-an.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0011-dw-mipi-dsi-phy-stop-wait-time.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0012-innolux-n125hce-gn1-timing-tweaks.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0013-meson-viu-hold-fifo-lines.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0014-meson-venc-sync.patch.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0015-meson-dw-mipi-dsi-sync-invert.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0016-sn65dsi86-burst-mode-support.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0018-sn65dsi86-never-turn-off.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0020-LOCAL-ALSA-Assign-internal-PCM-chmap-ELD-IEC958-kctl.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0021-HACK-of-partial-revert-of-fdt.c-changes.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0022-add-bt-and-eth-resets.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0023-sdio-pullups.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0024-sdio-improve-wifi-speed.patch"
"linux/patches6.18/meson-g12b-bananapi-cm4-mnt-reform2/0030-WORKAROUND-meson-plane-disable-afbc-32x8.patch"
"linux/patches6.18/rk3588-mnt-reform2/0001-MERGED-drm-bridge-Pass-down-connector-to-drm-bridge-.patch"
"linux/patches6.18/rk3588-mnt-reform2/0024-math.h-add-DIV_ROUND_UP_NO_OVERFLOW.patch"
"linux/patches6.18/rk3588-mnt-reform2/0025-clk-divider-Fix-divisor-masking-on-64-bit-platforms.patch"
"linux/patches6.18/rk3588-mnt-reform2/0026-clk-composite-replace-open-coded-abs_diff.patch"
"linux/patches6.18/rk3588-mnt-reform2/0030-mfd-rk8xx-Fix-shutdown-handler.patch"
"linux/patches6.18/rk3588-mnt-reform2/0031-dt-bindings-display-vop2-Add-VP-clock-resets.patch"
"linux/patches6.18/rk3588-mnt-reform2/0032-drm-rockchip-vop2-Add-clock-resets-support.patch"
"linux/patches6.18/rk3588-mnt-reform2/0033-arm64-dts-rockchip-Add-VOP-clock-resets-for-rk3588s.patch"
"linux/patches6.18/rk3588-mnt-reform2/0035-drm-rockchip-vop2-Add-core-reset-support.patch"
"linux/patches6.18/rk3588-mnt-reform2/0046-arm64-defconfig-Enable-Rockchip-RK3588-DisplayPort-C.patch"
"linux/patches6.18/rk3588-mnt-reform2/0055-phy-rockchip-usbdp-move-orientation-handling-further.patch"
"linux/patches6.18/rk3588-mnt-reform2/0056-phy-rockchip-usbdp-reset-USB3-and-reinit-on-orientat.patch"
"linux/patches6.18/rk3588-mnt-reform2/0060-PCI-dw-rockchip-Rename-rockchip_pcie_get_ltssm-funct.patch"
"linux/patches6.18/rk3588-mnt-reform2/0061-PCI-dw-rockchip-Support-get_ltssm-operation.patch"
"linux/patches6.18/rk3588-mnt-reform2/0062-PCI-dw-rockchip-Move-devm_phy_get-out-of-phy_init.patch"
"linux/patches6.18/rk3588-mnt-reform2/0063-PCI-dw-rockchip-Add-helper-function-for-enhanced-LTS.patch"
"linux/patches6.18/rk3588-mnt-reform2/0064-PCI-dw-rockchip-Add-helper-function-for-controller-m.patch"
"linux/patches6.18/rk3588-mnt-reform2/0065-PCI-dw-rockchip-Add-helper-function-for-DDL-indicato.patch"
"linux/patches6.18/rk3588-mnt-reform2/0066-PCI-dw-rockchip-Add-pme_turn_off-support.patch"
"linux/patches6.18/rk3588-mnt-reform2/0067-PCI-dw-rockchip-Add-system-PM-support.patch"
"linux/patches6.18/rk3588-mnt-reform2/0068-drm-bridge-dw-hdmi-qp-Add-CEC-support.patch"
"linux/patches6.18/rk3588-mnt-reform2/0069-drm-bridge-dw-hdmi-qp-Fixup-timer-base-setup.patch"
"linux/patches6.18/rk3588-mnt-reform2/0070-drm-rockchip-dw_hdmi_qp-Improve-error-handling-with-.patch"
"linux/patches6.18/rk3588-mnt-reform2/0071-drm-rockchip-dw_hdmi_qp-Provide-CEC-IRQ-in-dw_hdmi_q.patch"
"linux/patches6.18/rk3588-mnt-reform2/0072-drm-rockchip-dw_hdmi_qp-Provide-ref-clock-rate-in-dw.patch"
"linux/patches6.18/rk3588-mnt-reform2/0073-arm64-defconfig-Enable-DW-HDMI-QP-CEC-support.patch"
"linux/patches6.18/rk3588-mnt-reform2/0075-phy-hdmi-Add-HDMI-2.1-FRL-configuration-options.patch"
"linux/patches6.18/rk3588-mnt-reform2/0079-phy-rockchip-samsung-hdptx-Use-usleep_range-instead-.patch"
"linux/patches6.18/rk3588-mnt-reform2/0080-phy-rockchip-samsung-hdptx-Fix-coding-style-alignmen.patch"
"linux/patches6.18/rk3588-mnt-reform2/0081-phy-rockchip-samsung-hdptx-Consistently-use-rk_-hdpt.patch"
"linux/patches6.18/rk3588-mnt-reform2/0082-phy-rockchip-samsung-hdptx-Enable-lane-output-in-com.patch"
"linux/patches6.18/rk3588-mnt-reform2/0083-phy-rockchip-samsung-hdptx-Cleanup-_cmn_init_seq-lis.patch"
"linux/patches6.18/rk3588-mnt-reform2/0084-phy-rockchip-samsung-hdptx-Compute-clk-rate-from-PLL.patch"
"linux/patches6.18/rk3588-mnt-reform2/0085-phy-rockchip-samsung-hdptx-Drop-hw_rate-driver-data.patch"
"linux/patches6.18/rk3588-mnt-reform2/0086-phy-rockchip-samsung-hdptx-Switch-to-driver-specific.patch"
"linux/patches6.18/rk3588-mnt-reform2/0087-phy-rockchip-samsung-hdptx-Extend-rk_hdptx_phy_verif.patch"
"linux/patches6.18/rk3588-mnt-reform2/0088-phy-rockchip-samsung-hdptx-Add-HDMI-2.1-FRL-support.patch"
"linux/patches6.18/rk3588-mnt-reform2/0089-drm-rockchip-vop2-Check-bpc-before-switching-DCLK-so.patch"
"linux/patches6.18/rk3588-mnt-reform2/0090-drm-bridge-dw-hdmi-qp-Handle-platform-supported-form.patch"
"linux/patches6.18/rk3588-mnt-reform2/0091-drm-rockchip-dw_hdmi_qp-Switch-to-phy_configure.patch"
"linux/patches6.18/rk3588-mnt-reform2/0092-drm-rockchip-dw_hdmi_qp-Use-bit-macros-for-RK3576-re.patch"
"linux/patches6.18/rk3588-mnt-reform2/0093-drm-rockchip-dw_hdmi_qp-Add-high-color-depth-support.patch"
"linux/patches6.18/rk3588-mnt-reform2/0094-DEBUG-phy-rockchip-samsung-hdptx-Add-verbose-logging.patch"
"linux/patches6.18/rk3588-mnt-reform2/0095-WIP-SCRAMB-drm-bridge-Add-detect_ctx-hook.patch"
"linux/patches6.18/rk3588-mnt-reform2/0096-WIP-SCRAMB-drm-bridge-connector-Switch-from-detect-t.patch"
"linux/patches6.18/rk3588-mnt-reform2/0097-WIP-SCRAMB-drm-bridge-dw-hdmi-qp-Add-high-TMDS-clock.patch"
"linux/patches6.18/rk3588-mnt-reform2/0098-WIP-YUV420-drm-rockchip-vop2-Add-YUV420-output-forma.patch"
"linux/patches6.18/rk3588-mnt-reform2/0099-WIP-YUV420-drm-rockchip-dw_hdmi_qp-Add-YUV420-output.patch"
"linux/patches6.18/rk3588-mnt-reform2/0100-WIP-FRL-dt-bindings-display-rockchip-Add-tmds-enable.patch"
"linux/patches6.18/rk3588-mnt-reform2/0101-WIP-FRL-drm-rockchip-dw_hdmi_qp-Fixup-usage-of-enabl.patch"
"linux/patches6.18/rk3588-mnt-reform2/0103-WIP-FRL-arm64-dts-rockchip-Assign-ACLK_VOP-to-750-MH.patch"
"linux/patches6.18/rk3588-mnt-reform2/0104-WIP-FRL-drm-connector-hdmi-Handle-FRL-in-hdmi_clock_.patch"
"linux/patches6.18/rk3588-mnt-reform2/0105-WIP-FRL-drm-bridge-dw-hdmi-qp-Add-HDMI-2.1-FRL-suppo.patch"
"linux/patches6.18/rk3588-mnt-reform2/0106-WIP-FRL-drm-rockchip-dw_hdmi_qp-Add-HDMI-2.1-FRL-sup.patch"
"linux/patches6.18/rk3588-mnt-reform2/0107-WIP-FRL-drm-rockchip-vop2-Add-HDMI-2.1-FRL-support.patch"
"linux/patches6.18/rk3588-mnt-reform2/0108-dt-bindings-phy-rockchip-usbdp-add-improved-ports-sc.patch"
"linux/patches6.18/rk3588-mnt-reform2/0114-media-dt-bindings-video-interfaces-add-defines-for-s.patch"
"linux/patches6.18/rk3588-mnt-reform2/2001-drm-bridge-dw-hdmi-qp-Return-0-in-audio-prepare-when.patch"
"linux/patches6.18/rk3588-mnt-reform2/2003-drm-bridge-synopsys-Do-not-warn-about-audio-params-c.patch"
"linux/patches6.18/rk3588-mnt-reform2/5200-drm-rockchip-Set-dma-mask-to-64-bit.patch"
"linux/patches6.18/rk3588-mnt-reform2/7001-PCI-dw-rockchip-Disable-root-port-BARs.patch"
"linux/patches6.19/imx8mp-mnt-pocket-reform/2ghz/0001-imx8mp-2ghz-clk.patch"
"linux/patches6.19/imx8mp-mnt-pocket-reform/2ghz/0002-imx8mp-2ghz-opp.patch"
"linux/patches6.19/imx8mp-mnt-pocket-reform/mmc-sdio/0001-sdhci-add-no-sd-uhs-sdr104-devicetree-property.patch"
"linux/patches6.19/imx8mp-mnt-pocket-reform/mmc-sdio/0002-During-the-card-init-the-host-side-sometimes-may-nee.patch"
"linux/patches6.19/imx8mp-mnt-pocket-reform/mmc-sdio/0003-USDHC-IP-has-one-limitation-the-tuning-circuit-can-t.patch"
"linux/patches6.19/imx8mp-mnt-pocket-reform/pocket-panel/0001-v5-add-multi-display-panel-driver.patch"
"linux/patches6.19/imx8mp-mnt-pocket-reform/pocket-panel/0002-pocket-panel-fix-sleep-add-orientation.patch"
"linux/patches6.19/imx8mp-mnt-reform2/0001-sn65dsi86-use-hs-clock-of-samsung-dsim-host-directly.patch"
"linux/patches6.19/imx8mp-mnt-reform2/0002-lcdif-dont-exceed-desired-pixel-clock.patch"
"linux/patches6.19/imx8mq-mnt-reform2/0001-imx8mq-mnt-reform2.dts-multiple-fixes-for-display-wi.patch"
"linux/patches6.19/imx8mq-mnt-reform2/0001-nwl-dsi-fixup-mode-only-for-LCDIF-input-not-DCSS.patch"
"linux/patches6.19/imx8mq-mnt-reform2/0002-Revert-drm-bridge-nwl-dsi-Use-vsync-hsync-polarity-f.patch"
"linux/patches6.19/imx8mq-mnt-reform2/0003-lcdif-fix-pcie-interference.patch"
"linux/patches6.19/imx8mq-mnt-reform2/0004-mnt4002-imx-gpcv2-wake-smccc.patch.patch"
"linux/patches6.19/imx8mq-mnt-reform2/0005-pci-imx6-add-support-for-internal-refclk-imx8mq.patch"
"linux/patches6.19/imx8mq-mnt-reform2/0006-imx8mq-import-HDMI-driver-and-make-DCSS-compatible-w.patch"
"linux/patches6.19/ls1028a-mnt-reform2/0000-dtsi-add-hdptx.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-pocket-reform/0001-a311d-viu-fifo-lines-config.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-pocket-reform/0002-a311d-viu-fifo-lines-config-header.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-pocket-reform/0003-tlv320aic31xx-add-1228800hz-support.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0001-Revert-drm-bridge-synopsys-dw-mipi-dsi-enable-EoTp-b.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0001-meson-g12b-bananapi-cm4-mnt-reform2.dts-fix-audio-an.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0011-dw-mipi-dsi-phy-stop-wait-time.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0012-innolux-n125hce-gn1-timing-tweaks.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0013-meson-viu-hold-fifo-lines.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0014-meson-venc-sync.patch.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0015-meson-dw-mipi-dsi-sync-invert.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0016-sn65dsi86-burst-mode-support.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0018-sn65dsi86-never-turn-off.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0020-LOCAL-ALSA-Assign-internal-PCM-chmap-ELD-IEC958-kctl.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0021-HACK-of-partial-revert-of-fdt.c-changes.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0022-add-bt-and-eth-resets.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0023-sdio-pullups.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0024-sdio-improve-wifi-speed.patch"
"linux/patches6.19/meson-g12b-bananapi-cm4-mnt-reform2/0030-WORKAROUND-meson-plane-disable-afbc-32x8.patch"
"linux/patches6.19/rk3588-mnt-reform2/0001-FROM-UPSTREAM-drm-bridge-dw-hdmi-qp-Add-support-for-.patch"
"linux/patches6.19/rk3588-mnt-reform2/0024-math.h-add-DIV_ROUND_UP_NO_OVERFLOW.patch"
"linux/patches6.19/rk3588-mnt-reform2/0025-clk-divider-Fix-divisor-masking-on-64-bit-platforms.patch"
"linux/patches6.19/rk3588-mnt-reform2/0026-clk-composite-replace-open-coded-abs_diff.patch"
"linux/patches6.19/rk3588-mnt-reform2/0029-Revert-PCI-dw-rockchip-Simplify-regulator-setup-with.patch"
"linux/patches6.19/rk3588-mnt-reform2/0030-mfd-rk8xx-Fix-shutdown-handler.patch"
"linux/patches6.19/rk3588-mnt-reform2/0031-dt-bindings-display-vop2-Add-VP-clock-resets.patch"
"linux/patches6.19/rk3588-mnt-reform2/0032-drm-rockchip-vop2-Add-clock-resets-support.patch"
"linux/patches6.19/rk3588-mnt-reform2/0033-arm64-dts-rockchip-Add-VOP-clock-resets-for-rk3588s.patch"
"linux/patches6.19/rk3588-mnt-reform2/0035-drm-rockchip-vop2-Add-core-reset-support.patch"
"linux/patches6.19/rk3588-mnt-reform2/0062-PCI-dw-rockchip-Move-devm_phy_get-out-of-phy_init.patch"
"linux/patches6.19/rk3588-mnt-reform2/0063-PCI-dw-rockchip-Add-helper-function-for-enhanced-LTS.patch"
"linux/patches6.19/rk3588-mnt-reform2/0064-PCI-dw-rockchip-Add-helper-function-for-controller-m.patch"
"linux/patches6.19/rk3588-mnt-reform2/0065-PCI-dw-rockchip-Add-helper-function-for-DDL-indicato.patch"
"linux/patches6.19/rk3588-mnt-reform2/0066-PCI-dw-rockchip-Add-pme_turn_off-support.patch"
"linux/patches6.19/rk3588-mnt-reform2/0067-PCI-dw-rockchip-Add-system-PM-support.patch"
"linux/patches6.19/rk3588-mnt-reform2/0074-MERGED-phy-hdmi-Add-HDMI-2.1-FRL-configuration-optio.patch"
"linux/patches6.19/rk3588-mnt-reform2/0075-PCI-host-common-Add-an-API-to-check-for-any-device-u.patch"
"linux/patches6.19/rk3588-mnt-reform2/0076-PCI-qcom-Check-for-the-presence-of-a-device-instead-.patch"
"linux/patches6.19/rk3588-mnt-reform2/0077-PCI-dwc-Check-for-the-device-presence-during-suspend.patch"
"linux/patches6.19/rk3588-mnt-reform2/0078-PCI-dw-rockchip-Fix-LTSSM-set-functions.patch"
"linux/patches6.19/rk3588-mnt-reform2/0079-MERGED-phy-rockchip-samsung-hdptx-Use-usleep_range-i.patch"
"linux/patches6.19/rk3588-mnt-reform2/0079-WIP-PCI-dw-rockchip-port-some-suspend-code-from-vend.patch"
"linux/patches6.19/rk3588-mnt-reform2/0080-MERGED-phy-rockchip-samsung-hdptx-Fix-coding-style-a.patch"
"linux/patches6.19/rk3588-mnt-reform2/0081-MERGED-phy-rockchip-samsung-hdptx-Consistently-use-r.patch"
"linux/patches6.19/rk3588-mnt-reform2/0082-MERGED-phy-rockchip-samsung-hdptx-Enable-lane-output.patch"
"linux/patches6.19/rk3588-mnt-reform2/0083-MERGED-phy-rockchip-samsung-hdptx-Cleanup-_cmn_init_.patch"
"linux/patches6.19/rk3588-mnt-reform2/0084-MERGED-phy-rockchip-samsung-hdptx-Compute-clk-rate-f.patch"
"linux/patches6.19/rk3588-mnt-reform2/0085-MERGED-phy-rockchip-samsung-hdptx-Drop-hw_rate-drive.patch"
"linux/patches6.19/rk3588-mnt-reform2/0086-MERGED-phy-rockchip-samsung-hdptx-Switch-to-driver-s.patch"
"linux/patches6.19/rk3588-mnt-reform2/0087-MERGED-phy-rockchip-samsung-hdptx-Extend-rk_hdptx_ph.patch"
"linux/patches6.19/rk3588-mnt-reform2/0088-MERGED-phy-rockchip-samsung-hdptx-Add-HDMI-2.1-FRL-s.patch"
"linux/patches6.19/rk3588-mnt-reform2/0089-DEBUG-phy-rockchip-samsung-hdptx-Add-verbose-logging.patch"
"linux/patches6.19/rk3588-mnt-reform2/0092-drm-rockchip-dw_hdmi_qp-Do-not-send-HPD-events-for-a.patch"
"linux/patches6.19/rk3588-mnt-reform2/0093-drm-Add-CRTC-background-color-property.patch"
"linux/patches6.19/rk3588-mnt-reform2/0094-drm-rockchip-vop2-Support-setting-custom-background-.patch"
"linux/patches6.19/rk3588-mnt-reform2/0095-drm-bridge-Add-detect_ctx-hook-and-drm_bridge_detect.patch"
"linux/patches6.19/rk3588-mnt-reform2/0096-drm-bridge-connector-Switch-to-using-detect_ctx-hook.patch"
"linux/patches6.19/rk3588-mnt-reform2/0097-drm-bridge-dw-hdmi-qp-Add-high-TMDS-clock-ratio-and-.patch"
"linux/patches6.19/rk3588-mnt-reform2/0098-WIP-YUV420-drm-rockchip-vop2-Add-YUV420-output-forma.patch"
"linux/patches6.19/rk3588-mnt-reform2/0099-WIP-YUV420-drm-rockchip-dw_hdmi_qp-Add-YUV420-output.patch"
"linux/patches6.19/rk3588-mnt-reform2/0103-WIP-FRL-arm64-dts-rockchip-Assign-ACLK_VOP-to-750-MH.patch"
"linux/patches6.19/rk3588-mnt-reform2/0104-WIP-FRL-drm-connector-hdmi-Handle-FRL-in-hdmi_clock_.patch"
"linux/patches6.19/rk3588-mnt-reform2/0105-WIP-FRL-drm-bridge-dw-hdmi-qp-Add-HDMI-2.1-FRL-suppo.patch"
"linux/patches6.19/rk3588-mnt-reform2/0106-WIP-FRL-drm-rockchip-dw_hdmi_qp-Add-HDMI-2.1-FRL-sup.patch"
"linux/patches6.19/rk3588-mnt-reform2/0107-WIP-FRL-drm-rockchip-vop2-Add-HDMI-2.1-FRL-support.patch"
"linux/patches6.19/rk3588-mnt-reform2/0108-dt-bindings-phy-rockchip-usbdp-add-improved-ports-sc.patch"
"linux/patches6.19/rk3588-mnt-reform2/2001-drm-bridge-dw-hdmi-qp-Return-0-in-audio-prepare-when.patch"
"linux/patches6.19/rk3588-mnt-reform2/2003-drm-bridge-synopsys-Do-not-warn-about-audio-params-c.patch"
"linux/patches6.19/rk3588-mnt-reform2/5200-drm-rockchip-Set-dma-mask-to-64-bit.patch"
]

View file

@ -11,14 +11,15 @@
kernelParams = [
"no_console_suspend"
"console=tty1"
"pcie_aspm=off" # pcie seems broken on kernel 6.18 https://community.mnt.re/t/error-message-after-apt-update-upgrade/4188/7
"pcie_aspm=off" # pcie seems broken on kernel 6.19. Original post https://community.mnt.re/t/error-message-after-apt-update-upgrade/4188/7
];
# kernel modules needed for the virtual console
initrd.availableKernelModules = [
"panel-edp"
"phy-rockchip-samsung-hdptx"
"gpio_shared_proxy"
"panel_edp"
"phy_rockchip_samsung_hdptx"
"rockchipdrm"
"ti-sn65dsi86"
"ti_sn65dsi86"
];
};
@ -27,6 +28,7 @@
generic-extlinux-compatible.enable = true;
};
hardware.alsa.enablePersistence = true;
hardware.graphics.enable = lib.mkDefault true;
system.activationScripts.asound = ''
if [ ! -e "/var/lib/alsa/asound.state" ]; then
mkdir -p /var/lib/alsa

View file

@ -42,8 +42,6 @@ buildUBoot rec {
filesToInstall = [
"idbloader.img"
"u-boot.itb"
"rock5b-rk3588.ini"
"spl/u-boot-spl.bin"
];
variant = "-dsi";
defconfig = "rk3588-mnt-reform2${variant}_defconfig";
@ -51,5 +49,4 @@ buildUBoot rec {
"BL31=${armTrustedFirmwareRK3588}/bl31.elf"
"ROCKCHIP_TPL=${rkbin}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.18.bin"
];
passthru.rkbin = rkbin;
}

View file

@ -1,10 +1,10 @@
{
"modDirVersion": "6.18.8",
"modDirVersion": "6.19.6",
"reformDebianPackages": {
"domain": "source.mnt.re",
"owner": "reform",
"repo": "reform-debian-packages",
"rev": "7e8a95c7babd9e1f4b307b6d146e0846c65fc9b8",
"hash": "sha256-D3Q2AP9wJwpVyLjhroY2o8FX7+NmvhDP8cZK7dap9Dw="
"rev": "caf1e6d88c12eb56b04e71a6ad262566b553455d",
"hash": "sha256-oECN+2IFb470QDna+9IGjtt/QogjfbKsFfG/xVXZouc="
}
}

View file

@ -0,0 +1,19 @@
{ lib, ... }:
{
imports = [
../../../common/cpu/intel/comet-lake
../../../common/gpu/nvidia/prime.nix
../../../common/gpu/nvidia/turing
../../../common/pc/laptop
../../../common/pc/ssd
];
hardware.bluetooth.enable = lib.mkDefault true;
hardware.graphics.enable = lib.mkDefault true;
hardware.nvidia.prime = {
intelBusId = lib.mkDefault "PCI:0:2:0";
nvidiaBusId = lib.mkDefault "PCI:2:0:0";
};
}

View file

@ -0,0 +1,36 @@
--- orig.patch
+++ updated-6.17.patch
@@ -10,11 +10,11 @@
/* quirks to control the device */
#define MT_QUIRK_NOT_SEEN_MEANS_UP BIT(0)
#define MT_QUIRK_SLOT_IS_CONTACTID BIT(1)
-@@ -70,6 +73,7 @@
- #define MT_QUIRK_WIN8_PTP_BUTTONS BIT(18)
- #define MT_QUIRK_SEPARATE_APP_REPORT BIT(19)
- #define MT_QUIRK_FORCE_MULTI_INPUT BIT(20)
-+#define MT_QUIRK_NON_MT_PEN BIT(21)
+@@ -76,6 +76,7 @@
+ #define MT_QUIRK_DISABLE_WAKEUP BIT(21)
+ #define MT_QUIRK_ORIENTATION_INVERT BIT(22)
+ #define MT_QUIRK_APPLE_TOUCHBAR BIT(23)
++#define MT_QUIRK_NON_MT_PEN BIT(24)
#define MT_INPUTMODE_TOUCHSCREEN 0x02
#define MT_INPUTMODE_TOUCHPAD 0x03
@@ -37,13 +37,13 @@
struct mt_device {
@@ -208,6 +216,7 @@
- #define MT_CLS_GOOGLE 0x0111
#define MT_CLS_RAZER_BLADE_STEALTH 0x0112
#define MT_CLS_SMART_TECH 0x0113
-+#define MT_CLS_NON_MT_PEN 0x0114
+ #define MT_CLS_APPLE_TOUCHBAR 0x0114
++#define MT_CLS_NON_MT_PEN 0x0115
+ #define MT_CLS_SIS 0x0457
#define MT_DEFAULT_MAXCONTACT 10
- #define MT_MAX_MAXCONTACT 250
@@ -374,6 +383,9 @@
MT_QUIRK_CONTACT_CNT_ACCURATE |
MT_QUIRK_SEPARATE_APP_REPORT,

View file

@ -0,0 +1,40 @@
--- orig.patch
+++ updated-6.18.patch
@@ -10,11 +10,11 @@
/* quirks to control the device */
#define MT_QUIRK_NOT_SEEN_MEANS_UP BIT(0)
#define MT_QUIRK_SLOT_IS_CONTACTID BIT(1)
-@@ -70,6 +73,7 @@
- #define MT_QUIRK_WIN8_PTP_BUTTONS BIT(18)
- #define MT_QUIRK_SEPARATE_APP_REPORT BIT(19)
- #define MT_QUIRK_FORCE_MULTI_INPUT BIT(20)
-+#define MT_QUIRK_NON_MT_PEN BIT(21)
+@@ -78,6 +78,7 @@
+ #define MT_QUIRK_APPLE_TOUCHBAR BIT(23)
+ #define MT_QUIRK_YOGABOOK9I BIT(24)
+ #define MT_QUIRK_KEEP_LATENCY_ON_CLOSE BIT(25)
++#define MT_QUIRK_NON_MT_PEN BIT(26)
#define MT_INPUTMODE_TOUCHSCREEN 0x02
#define MT_INPUTMODE_TOUCHPAD 0x03
@@ -36,14 +36,15 @@
};
struct mt_device {
-@@ -208,6 +216,7 @@
- #define MT_CLS_GOOGLE 0x0111
- #define MT_CLS_RAZER_BLADE_STEALTH 0x0112
+@@ -233,6 +234,7 @@
#define MT_CLS_SMART_TECH 0x0113
-+#define MT_CLS_NON_MT_PEN 0x0114
+ #define MT_CLS_APPLE_TOUCHBAR 0x0114
+ #define MT_CLS_YOGABOOK9I 0x0115
+ #define MT_CLS_EGALAX_P80H84 0x0116
++#define MT_CLS_NON_MT_PEN 0x0117
+ #define MT_CLS_SIS 0x0457
#define MT_DEFAULT_MAXCONTACT 10
- #define MT_MAX_MAXCONTACT 250
@@ -374,6 +383,9 @@
MT_QUIRK_CONTACT_CNT_ACCURATE |
MT_QUIRK_SEPARATE_APP_REPORT,

View file

@ -1,3 +1,7 @@
# quick command for testing:
# nix build -L --impure --no-link --expr \
# '(import <nixpkgs> {}).linuxPackages_6_18.callPackage ./default.nix {}'
{
stdenv,
lib,
@ -25,8 +29,20 @@ let
cat ${patch1_original} > $out
${patch}/bin/patch $out < ${./6.12.patch.patch}
'';
patch1_updated_6_17 = runCommand "goodix-stylus-mastykin-1-pen-support-6.17.patch" { } ''
cat ${patch1_original} > $out
${patch}/bin/patch $out < ${./6.17.patch.patch}
'';
patch1_updated_6_18 = runCommand "goodix-stylus-mastykin-1-pen-support-6.18.patch" { } ''
cat ${patch1_original} > $out
${patch}/bin/patch $out < ${./6.18.patch.patch}
'';
patch1 =
if (lib.versionAtLeast kernel.version "6.12") then
if (lib.versionAtLeast kernel.version "6.18.18") then
patch1_updated_6_18
else if (lib.versionAtLeast kernel.version "6.17") then
patch1_updated_6_17
else if (lib.versionAtLeast kernel.version "6.12") then
patch1_updated_6_12
else if (lib.versionAtLeast kernel.version "6.1") then
patch1_updated_6_1
@ -51,17 +67,32 @@ stdenv.mkDerivation rec {
nativeBuildInputs = kernel.moduleBuildDependencies;
src = ./.;
patches = [
patch1
patch2
];
postUnpack = ''
tar -C goodix-stylus-mastykin \
--strip-components=3 -xf ${kernel.src} --wildcards \
'*/drivers/hid/hid-ids.h' '*/drivers/hid/hid-multitouch.c'
# default patchPhase doesn't try hard enough
patchPhase = ''
runHook prePatch
patch -p3 hid-multitouch.c < ${patch1}
patch -p3 hid-multitouch.c < ${patch2}
runHook postPatch
'';
patchFlags = "-p3";
postUnpack =
let
hid = "${kernel.src}/drivers/hid";
in
''
if [ -d ${kernel.src} ]; then # -latest kernel
cp ${hid}/hid-ids.h ${hid}/hid-multitouch.c goodix-stylus-mastykin/
cp ${hid}/hid-haptic.h goodix-stylus-mastykin/ 2>/dev/null || true
else # stable kernels with tarballs
tar -C goodix-stylus-mastykin \
--strip-components=3 -xf ${kernel.src} --wildcards \
'*/drivers/hid/hid-ids.h' '*/drivers/hid/hid-multitouch.c'
tar -C goodix-stylus-mastykin \
--strip-components=3 -xf ${kernel.src} --wildcards \
'*/drivers/hid/hid-haptic.h' 2>/dev/null || true
fi
'';
postPatch = ''
mv hid-multitouch.c hid-multitouch-onenetbook4.c
substituteInPlace hid-multitouch-onenetbook4.c --replace \

View file

@ -1,14 +1,12 @@
{ lib, pkgs, ... }:
{
imports = [ ../common/default.nix ];
boot = {
consoleLogLevel = lib.mkDefault 7;
kernelPackages = lib.mkDefault (
pkgs.linuxPackagesFor (
pkgs.callPackage ../common/kernel.nix {
rpiVersion = 2;
}
)
pkgs.linuxPackagesFor (pkgs.callPackage ../common/kernel.nix { rpiVersion = 2; })
);
kernelParams = [
"dwc_otg.lpm_enable=0"

View file

@ -1,22 +1,10 @@
{
lib,
pkgs,
...
}:
{ lib, pkgs, ... }:
{
boot = {
kernelPackages = lib.mkDefault (
pkgs.linuxPackagesFor (
pkgs.callPackage ../common/kernel.nix {
rpiVersion = 3;
}
)
pkgs.linuxPackagesFor (pkgs.callPackage ../common/kernel.nix { rpiVersion = 3; })
);
initrd.availableKernelModules = [
"usbhid"
"usb-storage"
];
};
# fix the following error :

View file

@ -7,6 +7,7 @@
{
imports = [
../common/default.nix
./audio.nix
./backlight.nix
./bluetooth.nix
@ -29,16 +30,9 @@
boot = {
kernelPackages = lib.mkDefault (
pkgs.linuxPackagesFor (
pkgs.callPackage ../common/kernel.nix {
rpiVersion = 4;
}
)
pkgs.linuxPackagesFor (pkgs.callPackage ../common/kernel.nix { rpiVersion = 4; })
);
initrd.availableKernelModules = [
"usbhid"
"usb-storage"
"vc4"
"pcie-brcmstb" # required for the pcie bus to work
"reset-raspberrypi" # required for vl805 firmware to load
]
@ -62,7 +56,5 @@
}
];
hardware.firmware = [
(pkgs.callPackage ../common/raspberry-pi-wireless-firmware.nix { })
];
hardware.firmware = [ (pkgs.callPackage ../common/raspberry-pi-wireless-firmware.nix { }) ];
}

View file

@ -14,9 +14,9 @@ in
{
options.hardware = {
raspberry-pi."4".leds = {
eth.disable = mkDisableOption ''ethernet LEDs.'';
act.disable = mkDisableOption ''activity LED.'';
pwr.disable = mkDisableOption ''power LED.'';
eth.disable = mkDisableOption "ethernet LEDs.";
act.disable = mkDisableOption "activity LED.";
pwr.disable = mkDisableOption "power LED.";
};
};

View file

@ -19,7 +19,5 @@ in
};
};
config = lib.mkIf cfg.enable {
nixpkgs.overlays = [ dt_ao_overlay ];
};
config = lib.mkIf cfg.enable { nixpkgs.overlays = [ dt_ao_overlay ]; };
}

View file

@ -7,6 +7,55 @@ in
options.hardware = {
raspberry-pi."4".poe-hat = {
enable = lib.mkEnableOption "support for the Raspberry Pi POE Hat";
fan = lib.mkOption {
type = lib.types.submodule {
options = {
temperature0 = lib.mkOption {
type = lib.types.int;
default = 40000;
description = "Temperature threshold 0.";
};
hysteresis0 = lib.mkOption {
type = lib.types.int;
default = 2000;
description = "Temperature hysteresis 0.";
};
temperature1 = lib.mkOption {
type = lib.types.int;
default = 45000;
description = "Temperature threshold 1.";
};
hysteresis1 = lib.mkOption {
type = lib.types.int;
default = 2000;
description = "Temperature hysteresis 1.";
};
temperature2 = lib.mkOption {
type = lib.types.int;
default = 50000;
description = "Temperature threshold 2.";
};
hysteresis2 = lib.mkOption {
type = lib.types.int;
default = 2000;
description = "Temperature hysteresis 2.";
};
temperature3 = lib.mkOption {
type = lib.types.int;
default = 55000;
description = "Temperature threshold 3.";
};
hysteresis3 = lib.mkOption {
type = lib.types.int;
default = 5000;
description = "Temperature hysteresis 3.";
};
};
};
default = { };
description = "Fan configuration.";
};
};
};
@ -53,23 +102,23 @@ in
target = <&thermal_trips>;
__overlay__ {
trip0: trip0 {
temperature = <40000>;
hysteresis = <2000>;
temperature = <${cfg.fan.temperature0}>;
hysteresis = <${cfg.fan.hysteresis0}>;
type = "active";
};
trip1: trip1 {
temperature = <45000>;
hysteresis = <2000>;
temperature = <${cfg.fan.temperature1}>;
hysteresis = <${cfg.fan.hysteresis1}>;
type = "active";
};
trip2: trip2 {
temperature = <50000>;
hysteresis = <2000>;
temperature = <${cfg.fan.temperature2}>;
hysteresis = <${cfg.fan.hysteresis2}>;
type = "active";
};
trip3: trip3 {
temperature = <55000>;
hysteresis = <5000>;
temperature = <${cfg.fan.temperature3}>;
hysteresis = <${cfg.fan.hysteresis3}>;
type = "active";
};
};

View file

@ -7,6 +7,55 @@ in
options.hardware = {
raspberry-pi."4".poe-plus-hat = {
enable = lib.mkEnableOption "support for the Raspberry Pi PoE+ HAT";
fan = lib.mkOption {
type = lib.types.submodule {
options = {
temperature0 = lib.mkOption {
type = lib.types.int;
default = 40000;
description = "Temperature threshold 0.";
};
hysteresis0 = lib.mkOption {
type = lib.types.int;
default = 2000;
description = "Temperature hysteresis 0.";
};
temperature1 = lib.mkOption {
type = lib.types.int;
default = 45000;
description = "Temperature threshold 1.";
};
hysteresis1 = lib.mkOption {
type = lib.types.int;
default = 2000;
description = "Temperature hysteresis 1.";
};
temperature2 = lib.mkOption {
type = lib.types.int;
default = 50000;
description = "Temperature threshold 2.";
};
hysteresis2 = lib.mkOption {
type = lib.types.int;
default = 2000;
description = "Temperature hysteresis 2.";
};
temperature3 = lib.mkOption {
type = lib.types.int;
default = 55000;
description = "Temperature threshold 3.";
};
hysteresis3 = lib.mkOption {
type = lib.types.int;
default = 5000;
description = "Temperature hysteresis 3.";
};
};
};
default = { };
description = "Fan configuration.";
};
};
};
@ -55,23 +104,23 @@ in
target = <&thermal_trips>;
__overlay__ {
trip0: trip0 {
temperature = <40000>;
hysteresis = <2000>;
temperature = <${cfg.fan.temperature0}>;
hysteresis = <${cfg.fan.hysteresis0}>;
type = "active";
};
trip1: trip1 {
temperature = <45000>;
hysteresis = <2000>;
temperature = <${cfg.fan.temperature1}>;
hysteresis = <${cfg.fan.hysteresis1}>;
type = "active";
};
trip2: trip2 {
temperature = <50000>;
hysteresis = <2000>;
temperature = <${cfg.fan.temperature2}>;
hysteresis = <${cfg.fan.hysteresis2}>;
type = "active";
};
trip3: trip3 {
temperature = <55000>;
hysteresis = <5000>;
temperature = <${cfg.fan.temperature3}>;
hysteresis = <${cfg.fan.hysteresis3}>;
type = "active";
};
};

View file

@ -1,8 +1,4 @@
{
config,
lib,
...
}:
{ config, lib, ... }:
let
cfg = config.hardware.raspberry-pi."4".xhci;
in

View file

@ -4,22 +4,32 @@
config,
...
}:
let
linuxVariant = config.boot.kernelPackages.kernel.pname;
in
{
imports = [ ../common/default.nix ];
boot = {
kernelPackages = lib.mkDefault (
pkgs.linuxPackagesFor (
pkgs.callPackage ../common/kernel.nix {
rpiVersion = 5;
}
)
pkgs.linuxPackagesFor (pkgs.callPackage ../common/kernel.nix { rpiVersion = 5; })
);
initrd.availableKernelModules = [
"nvme"
"usbhid"
"usb-storage"
];
"pcie-brcmstb"
"clk-rp1"
]
# CONFIG_MISC_RP1 is named CONFIG_MFD_RP1 in RPi's fork.
++ lib.optional (linuxVariant == "linux") "rp1_pci"
++ lib.optional (linuxVariant == "linux-rpi") "rp1"
# CONFIG_PINCTRL_RP1 is not a tristate in RPi's fork.
++ lib.optional (linuxVariant == "linux") "pinctrl-rp1"
++ lib.optional config.boot.initrd.network.enable "macb";
};
hardware.deviceTree.filter = lib.mkDefault "bcm2712*-rpi-*.dtb";
# Needed for Xorg to start (https://github.com/raspberrypi-ui/gldriver-test/blob/master/usr/lib/systemd/scripts/rp1_test.sh)
# This won't work for displays connected to the RP1 (DPI/composite/MIPI DSI), since I don't have one to test.
services.xserver.extraConfig = ''

View file

@ -0,0 +1,29 @@
# Default config.txt settings matching the official Raspberry Pi OS defaults.
#
# Source: https://github.com/RPi-Distro/pi-gen/blob/master/stage1/00-boot-files/files/config.txt
# All values use mkDefault so they can be easily overridden.
#
# Reference: https://www.raspberrypi.com/documentation/computers/config_txt.html
{ lib, ... }:
{
hardware.raspberry-pi.configtxt.settings = {
all = {
camera_auto_detect = lib.mkDefault true;
display_auto_detect = lib.mkDefault true;
max_framebuffers = lib.mkDefault 2;
disable_fw_kms_setup = lib.mkDefault true;
disable_overscan = lib.mkDefault true;
arm_boost = lib.mkDefault true;
dtparam = lib.mkDefault [ "audio=on" ];
dtoverlay = lib.mkDefault [ "vc4-kms-v3d" ];
};
cm4 = {
otg_mode = lib.mkDefault true;
};
cm5 = {
dtoverlay = lib.mkDefault [ "dwc2,dr_mode=host" ];
};
};
}

View file

@ -0,0 +1,136 @@
# config.txt generation module for Raspberry Pi
#
# Generates config.txt from structured Nix options. The type system models
# config.txt as nested attrs: each nesting level adds a conditional filter,
# and leaves are config values. Repeated keys (dtparam, dtoverlay, gpio)
# are supported via lists.
#
# Based on work from nvmd/nixos-raspberrypi (MIT License) and rendering
# approach suggested by @quentinmit. Follows RFC 42.
#
# Reference: https://www.raspberrypi.com/documentation/computers/config_txt.html
{
lib,
config,
pkgs,
...
}:
let
cfg = config.hardware.raspberry-pi.configtxt;
mkValueString =
v:
if builtins.isInt v then
toString v
else if builtins.isString v then
v
else if true == v then
"1"
else if false == v then
"0"
else
builtins.abort "config.txt: unsupported value type: ${builtins.typeOf v}";
mkKeyValue = lib.generators.mkKeyValueDefault { inherit mkValueString; } "=";
# Recursively flatten nested attrs into a list of { conditionals, name, value } records.
# Each nesting level (except the leaf) is a conditional filter.
# "all" filters are omitted from the conditionals list since they reset state.
# null values are filtered out, allowing `mkForce null` to remove defaults.
recurse =
path: value:
if value == null then
[ ]
else if builtins.isAttrs value && !(builtins.isList value) && !(value ? _type) then
lib.flatten (lib.mapAttrsToList (name: recurse ([ name ] ++ path)) value)
else
{
conditionals = lib.sort builtins.lessThan (lib.filter (k: k != "all") (lib.tail path));
name = lib.head path;
inherit value;
};
# Group flattened items by their conditional filter set, then render.
groupItems =
items:
lib.mapAttrsToList (groupJSON: groupItems: {
conditionals = builtins.fromJSON groupJSON;
items = builtins.listToAttrs groupItems;
}) (builtins.groupBy (x: builtins.toJSON x.conditionals) items);
mkGroup =
group:
lib.concatMapStrings (k: "[${k}]\n") group.conditionals
+ lib.generators.toKeyValue {
inherit mkKeyValue;
listsAsDuplicateKeys = true;
} group.items;
toConfigTxt =
attrs:
let
groups = lib.sort (a: b: a.conditionals < b.conditionals) (
groupItems (lib.flatten (recurse [ ] attrs))
);
in
lib.concatMapStringsSep "\n[all]\n" mkGroup groups;
in
{
options.hardware.raspberry-pi.configtxt = {
settings = lib.mkOption {
type =
with lib.types;
let
atom = nullOr (oneOf [
str
int
bool
]);
molecule = oneOf [
atom
(listOf atom)
(attrsOf molecule)
];
in
attrsOf molecule;
default = { };
description = ''
Structured configuration for the Raspberry Pi `config.txt` file.
Top-level keys are conditional filter sections (`all`, `pi4`, `pi5`,
`cm4`, etc.). Nesting adds stacked conditional filters. Leaves are
config values rendered as `key=value`. Lists produce repeated keys.
Booleans render as `0`/`1`. Use `null` with `mkForce` to remove a
default.
See <https://www.raspberrypi.com/documentation/computers/config_txt.html>
'';
example = lib.literalExpression ''
{
all = {
arm_boost = true;
disable_overscan = true;
dtparam = [ "audio=on" ];
dtoverlay = [ "vc4-kms-v3d" ];
};
pi5.arm_freq = 2400;
cm4.otg_mode = true;
}
'';
};
file = lib.mkOption {
type = lib.types.path;
default = pkgs.writeText "config.txt" (toConfigTxt cfg.settings);
defaultText = lib.literalExpression ''pkgs.writeText "config.txt" (generated from settings)'';
description = ''
Path to the generated config.txt file. Defaults to the rendered output
of `settings`, but can be overridden to supply a custom config.txt.
'';
};
};
}

View file

@ -0,0 +1,7 @@
{
boot.initrd.availableKernelModules = [
"usb-storage"
"usbhid"
"vc4"
];
}

View file

@ -11,9 +11,9 @@
./.
];
sdImage = {
imageName = "${config.sdImage.imageBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}-starfive-visionfive2.img";
image.fileName = "${config.image.baseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}-starfive-visionfive2.img";
sdImage = {
# Overridden by postBuildCommands
populateFirmwareCommands = "";