summaryrefslogtreecommitdiffstats
path: root/nixos
diff options
context:
space:
mode:
authorRobert Schütz <robert.schuetz@stud.uni-heidelberg.de>2018-04-10 09:13:36 +0200
committerRobert Schütz <robert.schuetz@stud.uni-heidelberg.de>2018-04-10 09:13:36 +0200
commit80fc5f2a24fc626218be6b9c24d3bf6ef86444fe (patch)
tree2fa67fa3181544f6bea4ee8a7f071461c55b4d92 /nixos
parent0aa59a08d65461149552f68c638655ed2b474510 (diff)
parentc4f555a505f7cb2e7453459a5c734682532645e4 (diff)
Merge branch 'master' into staging
Diffstat (limited to 'nixos')
-rw-r--r--nixos/lib/make-ext4-fs.nix15
-rw-r--r--nixos/modules/hardware/onlykey.nix33
-rw-r--r--nixos/modules/hardware/onlykey.udev4
-rw-r--r--nixos/modules/module-list.nix1
4 files changed, 45 insertions, 8 deletions
diff --git a/nixos/lib/make-ext4-fs.nix b/nixos/lib/make-ext4-fs.nix
index 21c69ed560a3..986d80ff1b99 100644
--- a/nixos/lib/make-ext4-fs.nix
+++ b/nixos/lib/make-ext4-fs.nix
@@ -7,23 +7,22 @@
, volumeLabel
}:
+let
+ sdClosureInfo = pkgs.closureInfo { rootPaths = storePaths; };
+in
+
pkgs.stdenv.mkDerivation {
name = "ext4-fs.img";
nativeBuildInputs = with pkgs; [e2fsprogs libfaketime perl];
- # For obtaining the closure of `storePaths'.
- exportReferencesGraph =
- map (x: [("closure-" + baseNameOf x) x]) storePaths;
-
buildCommand =
''
# Add the closures of the top-level store objects.
- storePaths=$(perl ${pkgs.pathsFromGraph} closure-*)
+ storePaths=$(cat ${sdClosureInfo}/store-paths)
- # Also include a manifest of the closures in a format suitable
- # for nix-store --load-db.
- printRegistration=1 perl ${pkgs.pathsFromGraph} closure-* > nix-path-registration
+ # Also include a manifest of the closures in a format suitable for nix-store --load-db.
+ cp ${sdClosureInfo}/registration nix-path-registration
# Make a crude approximation of the size of the target image.
# If the script starts failing, increase the fudge factors here.
diff --git a/nixos/modules/hardware/onlykey.nix b/nixos/modules/hardware/onlykey.nix
new file mode 100644
index 000000000000..b6820fe01911
--- /dev/null
+++ b/nixos/modules/hardware/onlykey.nix
@@ -0,0 +1,33 @@
+{ config, lib, ... }:
+
+with lib;
+
+{
+
+ ####### interface
+
+ options = {
+
+ hardware.onlykey = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Enable OnlyKey device (https://crp.to/p/) support.
+ '';
+ };
+ };
+
+ };
+
+ ## As per OnlyKey's documentation piece (hhttps://docs.google.com/document/d/1Go_Rs218fKUx-j_JKhddbSVTqY6P0vQO831t2MKCJC8),
+ ## it is important to add udev rule for OnlyKey for it to work on Linux
+
+ ####### implementation
+
+ config = mkIf config.hardware.onlykey.enable {
+ services.udev.extraRules = builtin.readFile ./onlykey.udev;
+ };
+
+
+}
diff --git a/nixos/modules/hardware/onlykey.udev b/nixos/modules/hardware/onlykey.udev
new file mode 100644
index 000000000000..6583530e5684
--- /dev/null
+++ b/nixos/modules/hardware/onlykey.udev
@@ -0,0 +1,4 @@
+ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1"
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", GROUP+="plugdev"
+KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", GROUP+="plugdev"
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 2f9b1083ef1d..63e463370d1f 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -41,6 +41,7 @@
./hardware/pcmcia.nix
./hardware/raid/hpsa.nix
./hardware/usb-wwan.nix
+ ./hardware/onlykey.nix
./hardware/video/amdgpu.nix
./hardware/video/amdgpu-pro.nix
./hardware/video/ati.nix