purism/librem/5r4: make it usuable without an overlay

In larger installations nixpkgs.overlays adds significant overhead
because it's harder to share nixpkgs between different NixOS machines
i.e. using nixpkgs.pkgs
This commit is contained in:
Jörg Thalheim 2024-05-05 07:13:06 +02:00 committed by mergify[bot]
parent d1659c9eb8
commit 6cb18a6649
5 changed files with 13 additions and 19 deletions

View file

@ -9,7 +9,7 @@
enable = true;
# this is required to correctly configure the modem as PA source/sink
extraConfig = ''
.include ${pkgs.librem5-base}/etc/pulse/librem5.pa
.include ${config.hardware.librem5.package}/etc/pulse/librem5.pa
'';
};

View file

@ -1,8 +1,15 @@
{ config, pkgs, lib, ... }:
let cfg = config.hardware.librem5;
let
cfg = config.hardware.librem5;
linuxPackages_librem5 = pkgs.linuxPackagesFor (pkgs.callPackage ./kernel.nix { });
ubootLibrem5 = pkgs.callPackage ./u-boot { };
in {
options = {
hardware.librem5 = {
package = lib.mkOption {
type = lib.types.package;
default = pkgs.callPackage ./librem5-base { };
};
wifiCard = lib.mkOption {
type = lib.types.enum [ "redpine" "sparklan" "none" ];
description = lib.mdDoc ''
@ -42,15 +49,6 @@ in {
lockdownFix = lib.mkDefault true;
};
nixpkgs.overlays = [
(import ./kernel)
(final: prev: {
ubootLibrem5 = final.callPackage ./u-boot { };
librem5-base = final.callPackage ./librem5-base { };
})
];
boot = {
kernelParams = [ "rootwait" ];
@ -59,12 +57,11 @@ in {
grub.enable = false;
};
kernelPackages = lib.mkDefault pkgs.linuxPackages_librem5;
kernelPackages = lib.mkDefault linuxPackages_librem5;
};
services.udev.packages = lib.mkIf cfg.installUdevPackages [ pkgs.librem5-base ];
environment.systemPackages = with pkgs; [ ubootLibrem5 ];
services.udev.packages = lib.mkIf cfg.installUdevPackages [ config.hardware.librem5.package ];
environment.systemPackages = [ ubootLibrem5 ];
};
}

View file

@ -1,3 +0,0 @@
final: prev: {
linuxPackages_librem5 = final.linuxPackagesFor (final.callPackage ./kernel.nix { });
}

View file

@ -11,7 +11,7 @@ lib.mkIf config.hardware.librem5.lockdownFix {
systemd.services.librem5-lockdown-support = {
description = "Set up drivers for the orientation and proximity sensors on Librem 5";
serviceConfig.Type = "oneshot";
serviceConfig.ExecStart = "${pkgs.librem5-base}/bin/lockdown-support.sh";
serviceConfig.ExecStart = "${config.hardware.librem5.package}/bin/lockdown-support.sh";
wantedBy = [ "default.target" ];
path = [ pkgs.kmod ];
};