diff --git a/README.md b/README.md index 04bc3244..c9204126 100644 --- a/README.md +++ b/README.md @@ -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) | `` | `acer-aspire-4810t` | +| [Acer Predator Helios 300 (PH315-51)](acer/predator/helios/300/ph315-51/) | `` | `acer-predator-helios-300-ph315-51` | | [Airis N990](airis/n990) | `` | `airis-n990` | | [Apple iMac 12,2](apple/imac/12-2) | `` | `apple-imac-12-2` | | [Apple iMac 14.2](apple/imac/14-2) | `` | `apple-imac-14-2` | @@ -131,8 +132,10 @@ See code for all available configurations. | [Asus TUF FX504GD](asus/fx504gd) | `` | `asus-fx504gd` | | [Asus TUF FX506HM](asus/fx506hm) | `` | `asus-fx506hm` | | [Asus TUF FA506IC](asus/fa506ic) | `` | `asus-fa506ic` | +| [Asus TUF FA506IC](asus/fa506nc) | `` | `asus-fa506nc` | | [Asus TUF FA507RM](asus/fa507rm) | `` | `asus-fa507rm` | | [Asus TUF FA507NV](asus/fa507nv) | `` | `asus-fa507nv` | +| [Asus TUF FA706IC](asus/fa706ic) | `` | `asus-fa706ic` | | [Asus Zenbook Duo 14 UX481](asus/zenbook/ux481/intelgpu/) | `` | `asus-zenbook-ux481-intelgpu` | | [Asus Zenbook Duo 14 UX481](asus/zenbook/ux481/nvidia/) | `` | `asus-zenbook-ux481-nvidia` | | [Asus Zenbook Flip S13 UX371](asus/zenbook/ux371/) | `` | `asus-zenbook-ux371` | @@ -162,6 +165,7 @@ See code for all available configurations. | [Dell Latitude 7490](dell/latitude/7490) | `` | `dell-latitude-7490` | | [Dell Latitude 9430](dell/latitude/9430) | `` | `dell-latitude-9430` | | [Dell Latitude E7240](dell/latitude/e7240) | `` | `dell-latitude-e7240` | +| [Dell Latitude E7440](dell/latitude/e7440) | `` | `dell-latitude-e7440` | | [Dell Optiplex 3050](dell/optiplex/3050) | `` | `dell-optiplex-3050` | | [Dell Poweredge R7515](dell/poweredge/r7515) | `` | `dell-poweredge-r7515` | | [Dell Precision 3490, nvidia](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/) | `` | `nxp-imx8qm-mek` | | [Intel NUC 5i5RYB](intel/nuc/5i5ryb/) | `` | `intel-nuc-5i5ryb` | | [Intel NUC 8i7BEH](intel/nuc/8i7beh/) | `` | `intel-nuc-8i7beh` | +| [Intel NUC 12WSHi7](intel/nuc/12wshi7/) | `` | `intel-nuc-12wshi7` | | [Kobol Helios4](kobol/helios4) | `` | `kobol-helios-4` | | [Lenovo IdeaCentre K330](lenovo/ideacentre/k330) | `` | `lenovo-ideacentre-k330` | | [Lenovo IdeaPad 3 15alc6](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) | `` | `lenovo-thinkpad-p14s-amd-gen3` | | [Lenovo ThinkPad P14s AMD Gen 4](lenovo/thinkpad/p14s/amd/gen4) | `` | `lenovo-thinkpad-p14s-amd-gen4` | | [Lenovo ThinkPad P14s AMD Gen 5](lenovo/thinkpad/p14s/amd/gen5) | `` | `lenovo-thinkpad-p14s-amd-gen5` | +| [Lenovo ThinkPad P14s AMD Gen 6](lenovo/thinkpad/p14s/amd/gen6) | `` | `lenovo-thinkpad-p14s-amd-gen6` | | [Lenovo ThinkPad P14s Intel Gen 2](lenovo/thinkpad/p14s/intel/gen2) | `` | `lenovo-thinkpad-p14s-intel-gen2` | | [Lenovo ThinkPad P14s Intel Gen 3](lenovo/thinkpad/p14s/intel/gen3) | `` | `lenovo-thinkpad-p14s-intel-gen3` | | [Lenovo ThinkPad P14s Intel Gen 5](lenovo/thinkpad/p14s/intel/gen5) | `` | `lenovo-thinkpad-p14s-intel-gen5` | +| [Lenovo ThinkPad P15v Intel Gen 3](lenovo/thinkpad/p15v/intel/gen3) | `` | `lenovo-thinkpad-p15v-intel-gen3` | | [Lenovo ThinkPad P16s AMD Gen 1](lenovo/thinkpad/p16s/amd/gen1) | `` | `lenovo-thinkpad-p16s-amd-gen1` | | [Lenovo ThinkPad P16s AMD Gen 2](lenovo/thinkpad/p16s/amd/gen2) | `` | `lenovo-thinkpad-p16s-amd-gen2` | | [Lenovo ThinkPad P16s AMD Gen 4](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) | `` | `msi-gs60` | | [MSI GL62/CX62](msi/gl62) | `` | `msi-gl62` | | [MSI GL65 10SDR-492](msi/gl65/10SDR-492) | `` | `msi-gl65-10SDR-492` | +| [MSI Prestige 15 A10SC](msi/prestige/15-a10sc) | `` | `msi-prestige-15-a10sc` | | [Malibal Aon S1](malibal/aon/s1) | | `` | `malibal-aon-s1` | | [Microchip Icicle Kit](microchip/icicle-kit) | `` | `microchip-icicle-kit` | | [Microsoft Surface Go](microsoft/surface/surface-go) | `` | `microsoft-surface-go` | diff --git a/acer/predator/helios/300/ph315-51/README.md b/acer/predator/helios/300/ph315-51/README.md new file mode 100644 index 00000000..45a9f5e7 --- /dev/null +++ b/acer/predator/helios/300/ph315-51/README.md @@ -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 \ No newline at end of file diff --git a/acer/predator/helios/300/ph315-51/default.nix b/acer/predator/helios/300/ph315-51/default.nix new file mode 100644 index 00000000..e331d209 --- /dev/null +++ b/acer/predator/helios/300/ph315-51/default.nix @@ -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"; + }; + }; + }; +} diff --git a/apple/t2/pkgs/brcm-firmware/fetchmacos.nix b/apple/t2/pkgs/brcm-firmware/fetchmacos.nix index 8af21291..fa801ed0 100644 --- a/apple/t2/pkgs/brcm-firmware/fetchmacos.nix +++ b/apple/t2/pkgs/brcm-firmware/fetchmacos.nix @@ -1,7 +1,5 @@ { - lib, stdenvNoCC, - fetchFromGitHub, callPackage, dmg2img, }: diff --git a/apple/t2/pkgs/linux-t2/latest.json b/apple/t2/pkgs/linux-t2/latest.json index 09dc89b3..008a8d4f 100644 --- a/apple/t2/pkgs/linux-t2/latest.json +++ b/apple/t2/pkgs/linux-t2/latest.json @@ -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=" } ] } diff --git a/apple/t2/pkgs/linux-t2/latest.nix b/apple/t2/pkgs/linux-t2/latest.nix index bba508ba..e7f65cff 100644 --- a/apple/t2/pkgs/linux-t2/latest.nix +++ b/apple/t2/pkgs/linux-t2/latest.nix @@ -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; } diff --git a/apple/t2/pkgs/linux-t2/stable.json b/apple/t2/pkgs/linux-t2/stable.json index 37fae7ff..a6f45129 100644 --- a/apple/t2/pkgs/linux-t2/stable.json +++ b/apple/t2/pkgs/linux-t2/stable.json @@ -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=" } ] } diff --git a/asus/fa506ic/default.nix b/asus/fa506ic/default.nix index c9591fd7..de4e51e6 100644 --- a/asus/fa506ic/default.nix +++ b/asus/fa506ic/default.nix @@ -26,7 +26,6 @@ services = { asusd = { enable = lib.mkDefault true; - enableUserService = lib.mkDefault true; }; supergfxd.enable = lib.mkDefault true; }; diff --git a/asus/fa506nc/README.md b/asus/fa506nc/README.md new file mode 100644 index 00000000..80f904ee --- /dev/null +++ b/asus/fa506nc/README.md @@ -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; +``` diff --git a/asus/fa506nc/default.nix b/asus/fa506nc/default.nix new file mode 100644 index 00000000..f1228587 --- /dev/null +++ b/asus/fa506nc/default.nix @@ -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; + }; +} diff --git a/asus/fa507nv/default.nix b/asus/fa507nv/default.nix index 43ff7133..b49240a4 100644 --- a/asus/fa507nv/default.nix +++ b/asus/fa507nv/default.nix @@ -34,7 +34,6 @@ services = { asusd = { enable = lib.mkDefault true; - enableUserService = lib.mkDefault true; }; }; diff --git a/asus/fa706ic/default.nix b/asus/fa706ic/default.nix new file mode 100644 index 00000000..0c51bf5e --- /dev/null +++ b/asus/fa706ic/default.nix @@ -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; + }; +} diff --git a/asus/flow/gv302x/shared.nix b/asus/flow/gv302x/shared.nix index ada7f65b..63988b34 100644 --- a/asus/flow/gv302x/shared.nix +++ b/asus/flow/gv302x/shared.nix @@ -60,7 +60,6 @@ in services = { asusd = { enable = mkDefault true; - enableUserService = mkDefault true; }; supergfxd.enable = mkDefault true; diff --git a/asus/flow/gz301vu/default.nix b/asus/flow/gz301vu/default.nix index 904055b8..405acf0c 100644 --- a/asus/flow/gz301vu/default.nix +++ b/asus/flow/gz301vu/default.nix @@ -39,7 +39,6 @@ in services = { asusd = { enable = mkDefault true; - enableUserService = mkDefault true; }; supergfxd.enable = mkDefault true; diff --git a/asus/zephyrus/ga402x/shared.nix b/asus/zephyrus/ga402x/shared.nix index 36b39dd3..27fc1758 100644 --- a/asus/zephyrus/ga402x/shared.nix +++ b/asus/zephyrus/ga402x/shared.nix @@ -59,7 +59,6 @@ in services = { asusd = { enable = mkDefault true; - enableUserService = mkDefault true; }; supergfxd.enable = mkDefault true; diff --git a/dell/latitude/7430/default.nix b/dell/latitude/7430/default.nix index 18f4bb21..b09700ad 100644 --- a/dell/latitude/7430/default.nix +++ b/dell/latitude/7430/default.nix @@ -13,7 +13,6 @@ "i915.enable_guc=3" "i915.fastboot=1" # needed for keyboard - "i8042.dumbkbd=1" "i8042.nopnp=1" ]; } diff --git a/dell/latitude/e7440/default.nix b/dell/latitude/e7440/default.nix new file mode 100644 index 00000000..8bc2d53d --- /dev/null +++ b/dell/latitude/e7440/default.nix @@ -0,0 +1,9 @@ +{ ... }: + +{ + imports = [ + ../../../common/cpu/intel/haswell + ../../../common/pc/laptop + ../../../common/pc/ssd + ]; +} diff --git a/flake.nix b/flake.nix index d1b087a4..537b09e6 100644 --- a/flake.nix +++ b/flake.nix @@ -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: diff --git a/huawei/machc-wa/README.md b/huawei/machc-wa/README.md index 27a1ccf0..a7674446 100644 --- a/huawei/machc-wa/README.md +++ b/huawei/machc-wa/README.md @@ -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. \ No newline at end of file +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. diff --git a/huawei/machc-wa/default.nix b/huawei/machc-wa/default.nix index 6279843d..3e3e8711 100644 --- a/huawei/machc-wa/default.nix +++ b/huawei/machc-wa/default.nix @@ -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; } diff --git a/intel/nuc/12wshi7/README.md b/intel/nuc/12wshi7/README.md new file mode 100644 index 00000000..03dbecdf --- /dev/null +++ b/intel/nuc/12wshi7/README.md @@ -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) diff --git a/intel/nuc/12wshi7/default.nix b/intel/nuc/12wshi7/default.nix new file mode 100644 index 00000000..ddc1a969 --- /dev/null +++ b/intel/nuc/12wshi7/default.nix @@ -0,0 +1,11 @@ +{ lib, ... }: + +{ + imports = [ + ../../../common/cpu/intel/alder-lake + ../../../common/pc + ../../../common/pc/ssd + ]; + + services.thermald.enable = lib.mkDefault true; +} diff --git a/lenovo/thinkpad/p14s/amd/gen6/default.nix b/lenovo/thinkpad/p14s/amd/gen6/default.nix new file mode 100644 index 00000000..699fc49d --- /dev/null +++ b/lenovo/thinkpad/p14s/amd/gen6/default.nix @@ -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" ]; +} diff --git a/lenovo/thinkpad/p15v/default.nix b/lenovo/thinkpad/p15v/default.nix new file mode 100644 index 00000000..90470b01 --- /dev/null +++ b/lenovo/thinkpad/p15v/default.nix @@ -0,0 +1,10 @@ +{ lib, ... }: +{ + imports = [ + ../. + ../../../common/pc/ssd + ]; + + hardware.enableRedistributableFirmware = lib.mkDefault true; + hardware.trackpoint.device = lib.mkDefault "TPPS/2 Elan TrackPoint"; +} diff --git a/lenovo/thinkpad/p15v/intel/default.nix b/lenovo/thinkpad/p15v/intel/default.nix new file mode 100644 index 00000000..665d3d41 --- /dev/null +++ b/lenovo/thinkpad/p15v/intel/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ../. + ]; +} diff --git a/lenovo/thinkpad/p15v/intel/gen3/default.nix b/lenovo/thinkpad/p15v/intel/gen3/default.nix new file mode 100644 index 00000000..f3f18fcf --- /dev/null +++ b/lenovo/thinkpad/p15v/intel/gen3/default.nix @@ -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"; + }; +} diff --git a/mnt/reform/kernel.nix b/mnt/reform/kernel.nix index d090f55e..1ed082bb 100644 --- a/mnt/reform/kernel.nix +++ b/mnt/reform/kernel.nix @@ -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 { }) diff --git a/mnt/reform/kernelPatches.nix b/mnt/reform/kernelPatches.nix index 9c140840..e3d4e88c 100644 --- a/mnt/reform/kernelPatches.nix +++ b/mnt/reform/kernelPatches.nix @@ -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" ] diff --git a/mnt/reform/rk3588/default.nix b/mnt/reform/rk3588/default.nix index 09ecfbda..7cdecae4 100644 --- a/mnt/reform/rk3588/default.nix +++ b/mnt/reform/rk3588/default.nix @@ -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 diff --git a/mnt/reform/rk3588/uboot.nix b/mnt/reform/rk3588/uboot.nix index f89579a1..3848ea9b 100644 --- a/mnt/reform/rk3588/uboot.nix +++ b/mnt/reform/rk3588/uboot.nix @@ -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; } diff --git a/mnt/reform/sources.json b/mnt/reform/sources.json index 8208e7ec..5dcaf9e1 100644 --- a/mnt/reform/sources.json +++ b/mnt/reform/sources.json @@ -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=" } } diff --git a/msi/prestige/15-a10sc/default.nix b/msi/prestige/15-a10sc/default.nix new file mode 100644 index 00000000..143a60af --- /dev/null +++ b/msi/prestige/15-a10sc/default.nix @@ -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"; + }; +} diff --git a/onenetbook/4/goodix-stylus-mastykin/6.17.patch.patch b/onenetbook/4/goodix-stylus-mastykin/6.17.patch.patch new file mode 100644 index 00000000..44c53ba1 --- /dev/null +++ b/onenetbook/4/goodix-stylus-mastykin/6.17.patch.patch @@ -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, diff --git a/onenetbook/4/goodix-stylus-mastykin/6.18.patch.patch b/onenetbook/4/goodix-stylus-mastykin/6.18.patch.patch new file mode 100644 index 00000000..e6f2637f --- /dev/null +++ b/onenetbook/4/goodix-stylus-mastykin/6.18.patch.patch @@ -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, diff --git a/onenetbook/4/goodix-stylus-mastykin/default.nix b/onenetbook/4/goodix-stylus-mastykin/default.nix index 8b81fdb0..0ddc9252 100644 --- a/onenetbook/4/goodix-stylus-mastykin/default.nix +++ b/onenetbook/4/goodix-stylus-mastykin/default.nix @@ -1,3 +1,7 @@ +# quick command for testing: +# nix build -L --impure --no-link --expr \ +# '(import {}).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 \ diff --git a/raspberry-pi/2/default.nix b/raspberry-pi/2/default.nix index c9178874..c7287d59 100644 --- a/raspberry-pi/2/default.nix +++ b/raspberry-pi/2/default.nix @@ -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" diff --git a/raspberry-pi/3/default.nix b/raspberry-pi/3/default.nix index 6472c6b9..333f2d3f 100644 --- a/raspberry-pi/3/default.nix +++ b/raspberry-pi/3/default.nix @@ -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 : diff --git a/raspberry-pi/4/default.nix b/raspberry-pi/4/default.nix index 9efb4fcd..41fcea85 100644 --- a/raspberry-pi/4/default.nix +++ b/raspberry-pi/4/default.nix @@ -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 { }) ]; } diff --git a/raspberry-pi/4/leds.nix b/raspberry-pi/4/leds.nix index 3860fff5..27de0382 100644 --- a/raspberry-pi/4/leds.nix +++ b/raspberry-pi/4/leds.nix @@ -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."; }; }; diff --git a/raspberry-pi/4/pkgs-overlays.nix b/raspberry-pi/4/pkgs-overlays.nix index f36577a5..0588dc2d 100644 --- a/raspberry-pi/4/pkgs-overlays.nix +++ b/raspberry-pi/4/pkgs-overlays.nix @@ -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 ]; }; } diff --git a/raspberry-pi/4/poe-hat.nix b/raspberry-pi/4/poe-hat.nix index 3ec29db3..0322994b 100644 --- a/raspberry-pi/4/poe-hat.nix +++ b/raspberry-pi/4/poe-hat.nix @@ -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"; }; }; diff --git a/raspberry-pi/4/poe-plus-hat.nix b/raspberry-pi/4/poe-plus-hat.nix index b6d1fa3f..805b0557 100644 --- a/raspberry-pi/4/poe-plus-hat.nix +++ b/raspberry-pi/4/poe-plus-hat.nix @@ -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"; }; }; diff --git a/raspberry-pi/4/xhci.nix b/raspberry-pi/4/xhci.nix index 56503df3..dd90cb00 100644 --- a/raspberry-pi/4/xhci.nix +++ b/raspberry-pi/4/xhci.nix @@ -1,8 +1,4 @@ -{ - config, - lib, - ... -}: +{ config, lib, ... }: let cfg = config.hardware.raspberry-pi."4".xhci; in diff --git a/raspberry-pi/5/default.nix b/raspberry-pi/5/default.nix index f8d82a9a..535588ee 100644 --- a/raspberry-pi/5/default.nix +++ b/raspberry-pi/5/default.nix @@ -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 = '' diff --git a/raspberry-pi/common/config-txt-defaults.nix b/raspberry-pi/common/config-txt-defaults.nix new file mode 100644 index 00000000..af19249e --- /dev/null +++ b/raspberry-pi/common/config-txt-defaults.nix @@ -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" ]; + }; + }; +} diff --git a/raspberry-pi/common/config-txt.nix b/raspberry-pi/common/config-txt.nix new file mode 100644 index 00000000..59dbc75f --- /dev/null +++ b/raspberry-pi/common/config-txt.nix @@ -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 + ''; + 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. + ''; + }; + }; +} diff --git a/raspberry-pi/common/default.nix b/raspberry-pi/common/default.nix new file mode 100644 index 00000000..11f2cfc7 --- /dev/null +++ b/raspberry-pi/common/default.nix @@ -0,0 +1,7 @@ +{ + boot.initrd.availableKernelModules = [ + "usb-storage" + "usbhid" + "vc4" + ]; +} diff --git a/starfive/visionfive/v2/sd-image.nix b/starfive/visionfive/v2/sd-image.nix index 667dc3fa..b822f23b 100644 --- a/starfive/visionfive/v2/sd-image.nix +++ b/starfive/visionfive/v2/sd-image.nix @@ -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 = "";