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
parent 753176b57b
commit 9b51a7a1f7
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 ];
};