Merge branch 'NixOS:master' into master

This commit is contained in:
Danny Freeman 2025-06-02 08:45:30 -04:00 committed by GitHub
commit fb5a14bdd9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 69 additions and 12 deletions

View file

@ -305,6 +305,7 @@ See code for all available configurations.
| [Lenovo ThinkPad X1 (10th Gen)](lenovo/thinkpad/x1/10th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/10th-gen>` | | [Lenovo ThinkPad X1 (10th Gen)](lenovo/thinkpad/x1/10th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/10th-gen>` |
| [Lenovo ThinkPad X1 (11th Gen)](lenovo/thinkpad/x1/11th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/11th-gen>` | | [Lenovo ThinkPad X1 (11th Gen)](lenovo/thinkpad/x1/11th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/11th-gen>` |
| [Lenovo ThinkPad X1 (12th Gen)](lenovo/thinkpad/x1/12th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/12th-gen>` | | [Lenovo ThinkPad X1 (12th Gen)](lenovo/thinkpad/x1/12th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/12th-gen>` |
| [Lenovo ThinkPad X1 (13th Gen)](lenovo/thinkpad/x1/13th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/13th-gen>` |
| [Lenovo ThinkPad X1 Extreme Gen 2](lenovo/thinkpad/x1-extreme/gen2) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen2>` | | [Lenovo ThinkPad X1 Extreme Gen 2](lenovo/thinkpad/x1-extreme/gen2) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen2>` |
| [Lenovo ThinkPad X1 Extreme Gen 3](lenovo/thinkpad/x1-extreme/gen3) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen3>` | | [Lenovo ThinkPad X1 Extreme Gen 3](lenovo/thinkpad/x1-extreme/gen3) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen3>` |
| [Lenovo ThinkPad X1 Extreme Gen 4](lenovo/thinkpad/x1-extreme/gen4) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen4>` | | [Lenovo ThinkPad X1 Extreme Gen 4](lenovo/thinkpad/x1-extreme/gen4) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen4>` |

View file

@ -249,6 +249,7 @@
lenovo-thinkpad-x1-10th-gen = import ./lenovo/thinkpad/x1/10th-gen; lenovo-thinkpad-x1-10th-gen = import ./lenovo/thinkpad/x1/10th-gen;
lenovo-thinkpad-x1-11th-gen = import ./lenovo/thinkpad/x1/11th-gen; lenovo-thinkpad-x1-11th-gen = import ./lenovo/thinkpad/x1/11th-gen;
lenovo-thinkpad-x1-12th-gen = import ./lenovo/thinkpad/x1/12th-gen; lenovo-thinkpad-x1-12th-gen = import ./lenovo/thinkpad/x1/12th-gen;
lenovo-thinkpad-x1-13th-gen = import ./lenovo/thinkpad/x1/13th-gen;
lenovo-thinkpad-x1-extreme = import ./lenovo/thinkpad/x1-extreme; lenovo-thinkpad-x1-extreme = import ./lenovo/thinkpad/x1-extreme;
lenovo-thinkpad-x1-extreme-gen2 = import ./lenovo/thinkpad/x1-extreme/gen2; lenovo-thinkpad-x1-extreme-gen2 = import ./lenovo/thinkpad/x1-extreme/gen2;
lenovo-thinkpad-x1-extreme-gen3 = import ./lenovo/thinkpad/x1-extreme/gen3; lenovo-thinkpad-x1-extreme-gen3 = import ./lenovo/thinkpad/x1-extreme/gen3;

View file

@ -0,0 +1,12 @@
{lib, ...}:
{
imports = [
../../../../common/pc/ssd
../../../../common/cpu/intel/lunar-lake
];
hardware.trackpoint.device = "TPPS/2 Synaptics TrackPoint";
services.thermald.enable = lib.mkDefault true;
}

View file

@ -15,18 +15,21 @@ with pkgs; let
imx8mp-firmware = pkgs.callPackage ./imx8mp-firmware.nix {}; imx8mp-firmware = pkgs.callPackage ./imx8mp-firmware.nix {};
imx8mp-uboot = pkgs.callPackage ./imx8mp-uboot.nix {}; imx8mp-uboot = pkgs.callPackage ./imx8mp-uboot.nix {};
imx8mp-optee-os = pkgs.callPackage ./imx8mp-optee-os.nix {}; imx8mp-optee-os = pkgs.callPackage ./imx8mp-optee-os.nix {};
src = pkgs.fetchgit {
url = "https://github.com/nxp-imx/imx-mkimage.git";
rev = "c4365450fb115d87f245df2864fee1604d97c06a";
sha256 = "sha256-KVIVHwBpAwd1RKy3RrYxGIniE45CDlN5RQTXsMg1Jwk=";
};
shortRev = builtins.substring 0 8 src.rev;
in { in {
imx8m-boot = pkgs.stdenv.mkDerivation rec { imx8m-boot = pkgs.stdenv.mkDerivation rec {
inherit src;
name = "imx8mp-mkimage"; name = "imx8mp-mkimage";
version = "lf-6.1.55-2.2.0"; version = "lf-6.1.55-2.2.0";
src = pkgs.fetchgit {
url = "https://github.com/nxp-imx/imx-mkimage.git";
rev = "c4365450fb115d87f245df2864fee1604d97c06a";
sha256 = "sha256-xycEaWKVM63BlDyBKNN0OefyK6iX/fQOTvv4fRVM55U=";
leaveDotGit = true;
};
postPatch = '' postPatch = ''
substituteInPlace Makefile \
--replace 'git rev-parse --short=8 HEAD' 'echo ${shortRev}'
substituteInPlace Makefile \ substituteInPlace Makefile \
--replace 'CC = gcc' 'CC = clang' --replace 'CC = gcc' 'CC = clang'
patchShebangs scripts patchShebangs scripts

View file

@ -14,18 +14,21 @@ with pkgs; let
imx8mq-firmware = pkgs.callPackage ./imx8mq-firmware.nix {}; imx8mq-firmware = pkgs.callPackage ./imx8mq-firmware.nix {};
imx8mq-uboot = pkgs.callPackage ./imx8mq-uboot.nix {}; imx8mq-uboot = pkgs.callPackage ./imx8mq-uboot.nix {};
imx8mq-optee-os = pkgs.callPackage ./imx8mq-optee-os.nix {}; imx8mq-optee-os = pkgs.callPackage ./imx8mq-optee-os.nix {};
src = pkgs.fetchgit {
url = "https://github.com/nxp-imx/imx-mkimage.git";
rev = "c4365450fb115d87f245df2864fee1604d97c06a";
sha256 = "sha256-KVIVHwBpAwd1RKy3RrYxGIniE45CDlN5RQTXsMg1Jwk=";
};
shortRev = builtins.substring 0 8 src.rev;
in { in {
imx8m-boot = pkgs.stdenv.mkDerivation rec { imx8m-boot = pkgs.stdenv.mkDerivation rec {
inherit src;
name = "imx8mq-mkimage"; name = "imx8mq-mkimage";
version = "lf-6.1.55-2.2.0"; version = "lf-6.1.55-2.2.0";
src = pkgs.fetchgit {
url = "https://github.com/nxp-imx/imx-mkimage.git";
rev = "c4365450fb115d87f245df2864fee1604d97c06a";
sha256 = "sha256-xycEaWKVM63BlDyBKNN0OefyK6iX/fQOTvv4fRVM55U=";
leaveDotGit = true;
};
postPatch = '' postPatch = ''
substituteInPlace Makefile \
--replace 'git rev-parse --short=8 HEAD' 'echo ${shortRev}'
substituteInPlace Makefile \ substituteInPlace Makefile \
--replace 'CC = gcc' 'CC = clang' --replace 'CC = gcc' 'CC = clang'
patchShebangs scripts patchShebangs scripts

View file

@ -8,6 +8,7 @@
./cpu-revision.nix ./cpu-revision.nix
./digi-amp-plus.nix ./digi-amp-plus.nix
./dwc2.nix ./dwc2.nix
./gpio.nix
./i2c.nix ./i2c.nix
./leds.nix ./leds.nix
./modesetting.nix ./modesetting.nix

36
raspberry-pi/4/gpio.nix Normal file
View file

@ -0,0 +1,36 @@
{ pkgs, lib, config, ... }:
{
options.hardware.raspberry-pi."4".gpio = {
enable = lib.mkOption {
type = lib.types.bool;
description =
"Enable udev rules and kernelParams that make lgpio and pigpio work";
default = false;
};
};
config = let
cfg = config.hardware.raspberry-pi."4".gpio;
in
lib.mkIf cfg.enable {
users.groups.gpio = lib.mkDefault { };
# the bit that matters to lgpio here is
# "${pkgs.coreutils}/bin/chgrp gpio /dev/%k && chmod 660 /dev/%k"
# see https://github.com/NixOS/nixpkgs/pull/352308
# sudo udevadm test --action=add /dev/gpiochip0 to test
# import lgpio; lgpio.gpiochip_open(0) should show "1" and not raise
# an exception
services.udev.extraRules = lib.mkBefore ''
KERNEL=="gpiomem", GROUP="gpio", MODE="0660"
SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="${pkgs.bash}/bin/bash -c '${pkgs.coreutils}/bin/chgrp gpio /dev/%k && chmod 660 /dev/%k && ${pkgs.coreutils}/bin/chgrp -R gpio /sys/class/gpio && ${pkgs.coreutils}/bin/chmod -R g=u /sys/class/gpio'"
SUBSYSTEM=="gpio", ACTION=="add", PROGRAM="${pkgs.bash}/bin/bash -c '${pkgs.coreutils}/bin/chgrp -R gpio /sys%p && ${pkgs.coreutils}/bin/chmod -R g=u /sys%p'"
'';
boot.kernelParams = [
"iomem=relaxed" # for pigpiod
];
};
}