ma filepimp.r: clean up hardware, add disk
This commit is contained in:
parent
11f67addff
commit
0cee117f0f
|
@ -1,26 +1,13 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
# nix-shell -p wol --run 'wol C8:CB:B8:CF:E4:DC --passwd=CA-FE-BA-BE-13-37'
|
||||||
let
|
let
|
||||||
byid = dev: "/dev/disk/by-id/" + dev;
|
itf = config.makefu.server.primary-itf;
|
||||||
part1 = disk: disk + "-part1";
|
|
||||||
rootDisk = byid "ata-SanDisk_SDSSDP064G_140237402890";
|
|
||||||
primary-interface = "enp3s0"; # c8:cb:b8:cf:e4:dc
|
|
||||||
# N54L Chassis:
|
|
||||||
# ____________________
|
|
||||||
# |______FRONT_______|
|
|
||||||
# | [ ]|
|
|
||||||
# | [ d1 ** d3 d4 ]|
|
|
||||||
# |___[_____________]|
|
|
||||||
jDisk1 = byid "ata-ST4000DM000-1F2168_Z3040NEA";
|
|
||||||
|
|
||||||
# transfer to omo
|
|
||||||
# jDisk0 = byid "ata-ST4000DM000-1F2168_Z303HVSG";
|
|
||||||
jDisk2 = byid "ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0621363";
|
|
||||||
jDisk3 = byid "ata-TOSHIBA_MD04ACA400_156GK89OFSBA";
|
|
||||||
allDisks = [ rootDisk jDisk1 jDisk2 jDisk3 ];
|
|
||||||
in {
|
in {
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
|
./hw.nix
|
||||||
<stockholm/makefu>
|
<stockholm/makefu>
|
||||||
|
<stockholm/makefu/2configs/home-manager>
|
||||||
<stockholm/makefu/2configs/fs/single-partition-ext4.nix>
|
<stockholm/makefu/2configs/fs/single-partition-ext4.nix>
|
||||||
<stockholm/makefu/2configs/smart-monitor.nix>
|
<stockholm/makefu/2configs/smart-monitor.nix>
|
||||||
<stockholm/makefu/2configs/tinc/retiolum.nix>
|
<stockholm/makefu/2configs/tinc/retiolum.nix>
|
||||||
|
@ -28,64 +15,12 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
krebs.build.host = config.krebs.hosts.filepimp;
|
krebs.build.host = config.krebs.hosts.filepimp;
|
||||||
# AMD N54L
|
|
||||||
boot = {
|
|
||||||
loader.grub.device = rootDisk;
|
|
||||||
|
|
||||||
initrd.availableKernelModules = [
|
networking.firewall.trustedInterfaces = [ itf ];
|
||||||
"ahci"
|
|
||||||
"ohci_pci"
|
|
||||||
"ehci_pci"
|
|
||||||
"pata_atiixp"
|
|
||||||
"usb_storage"
|
|
||||||
"usbhid"
|
|
||||||
];
|
|
||||||
|
|
||||||
kernelModules = [ "kvm-amd" ];
|
|
||||||
extraModulePackages = [ ];
|
|
||||||
};
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
|
||||||
|
|
||||||
zramSwap.enable = true;
|
|
||||||
|
|
||||||
makefu.snapraid = let
|
|
||||||
toMedia = name: "/media/" + name;
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
# todo combine creation when enabling the mount point
|
|
||||||
disks = map toMedia [
|
|
||||||
# "j0"
|
|
||||||
"j1"
|
|
||||||
"j2"
|
|
||||||
];
|
|
||||||
parity = toMedia "par0";
|
|
||||||
};
|
|
||||||
# TODO: refactor, copy-paste from omo
|
|
||||||
services.smartd.devices = builtins.map (x: { device = x; }) allDisks;
|
|
||||||
powerManagement.powerUpCommands = lib.concatStrings (map (disk: ''
|
|
||||||
${pkgs.hdparm}/sbin/hdparm -S 100 ${disk}
|
|
||||||
${pkgs.hdparm}/sbin/hdparm -B 127 ${disk}
|
|
||||||
${pkgs.hdparm}/sbin/hdparm -y ${disk}
|
|
||||||
'') allDisks);
|
|
||||||
fileSystems = let
|
|
||||||
xfsmount = name: dev:
|
|
||||||
{ "/media/${name}" = {
|
|
||||||
device = dev; fsType = "xfs";
|
|
||||||
options = [ "nofail" ];
|
|
||||||
}; };
|
|
||||||
in
|
|
||||||
# (xfsmount "j0" (part1 jDisk0)) //
|
|
||||||
(xfsmount "j1" (part1 jDisk1)) //
|
|
||||||
(xfsmount "j2" (part1 jDisk2)) //
|
|
||||||
(xfsmount "par0" (part1 jDisk3))
|
|
||||||
;
|
|
||||||
|
|
||||||
networking.firewall.trustedInterfaces = [ primary-interface ];
|
|
||||||
|
|
||||||
services.wakeonlan.interfaces = [
|
services.wakeonlan.interfaces = [
|
||||||
{
|
{
|
||||||
interface = primary-interface;
|
interface = itf ;
|
||||||
method = "password";
|
method = "password";
|
||||||
password = "CA:FE:BA:BE:13:37";
|
password = "CA:FE:BA:BE:13:37";
|
||||||
}
|
}
|
||||||
|
|
83
1systems/filepimp/hw.nix
Normal file
83
1systems/filepimp/hw.nix
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
byid = dev: "/dev/disk/by-id/" + dev;
|
||||||
|
part1 = disk: disk + "-part1";
|
||||||
|
rootDisk = byid "ata-SanDisk_SDSSDP064G_140237402890";
|
||||||
|
primary-interface = "enp3s0"; # c8:cb:b8:cf:e4:dc
|
||||||
|
# N54L Chassis:
|
||||||
|
# ____________________
|
||||||
|
# |______FRONT_______|
|
||||||
|
# | [ ]|
|
||||||
|
# | [ d1 d0 d3 d4 ]|
|
||||||
|
# |___[_____________]|
|
||||||
|
jDisk1 = byid "ata-ST4000DM000-1F2168_Z3040NEA";
|
||||||
|
|
||||||
|
# transfer to omo
|
||||||
|
jDisk0 = byid "ata-ST4000DM000-1F2168_Z303HVSG";
|
||||||
|
jDisk2 = byid "ata-WDC_WD40EFRX-68WT0N0_WD-WCC4E0621363";
|
||||||
|
jDisk3 = byid "ata-TOSHIBA_MD04ACA400_156GK89OFSBA";
|
||||||
|
allDisks = [ rootDisk jDisk0 jDisk1 jDisk2 jDisk3 ];
|
||||||
|
in {
|
||||||
|
boot = {
|
||||||
|
loader.grub.device = rootDisk;
|
||||||
|
|
||||||
|
initrd.availableKernelModules = [
|
||||||
|
"ahci"
|
||||||
|
"ohci_pci"
|
||||||
|
"ehci_pci"
|
||||||
|
"pata_atiixp"
|
||||||
|
"usb_storage"
|
||||||
|
"usbhid"
|
||||||
|
];
|
||||||
|
|
||||||
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
};
|
||||||
|
makefu.server.primary-itf = primary-interface;
|
||||||
|
|
||||||
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
hardware.cpu.amd.updateMicrocode = true;
|
||||||
|
|
||||||
|
zramSwap.enable = true;
|
||||||
|
|
||||||
|
makefu.snapraid = let
|
||||||
|
toMedia = name: "/media/" + name;
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
# todo combine creation when enabling the mount point
|
||||||
|
disks = map toMedia [
|
||||||
|
"j0"
|
||||||
|
"j1"
|
||||||
|
"j2"
|
||||||
|
];
|
||||||
|
parity = toMedia "par0";
|
||||||
|
};
|
||||||
|
# TODO: refactor, copy-paste from omo
|
||||||
|
services.smartd.devices = builtins.map (x: { device = x; }) allDisks;
|
||||||
|
powerManagement.powerUpCommands = lib.concatStrings (map (disk: ''
|
||||||
|
${pkgs.hdparm}/sbin/hdparm -S 100 ${disk}
|
||||||
|
${pkgs.hdparm}/sbin/hdparm -B 127 ${disk}
|
||||||
|
${pkgs.hdparm}/sbin/hdparm -y ${disk}
|
||||||
|
'') allDisks);
|
||||||
|
fileSystems = let
|
||||||
|
xfsmount = name: dev:
|
||||||
|
{ "/media/${name}" = {
|
||||||
|
device = dev; fsType = "xfs";
|
||||||
|
options = [ "nofail" ];
|
||||||
|
}; };
|
||||||
|
tomedia = id: "/media/${id}";
|
||||||
|
in
|
||||||
|
(xfsmount "j0" (part1 jDisk0)) //
|
||||||
|
(xfsmount "j1" (part1 jDisk1)) //
|
||||||
|
(xfsmount "j2" (part1 jDisk2)) //
|
||||||
|
(xfsmount "par0" (part1 jDisk3)) //
|
||||||
|
{ "/media/jX" = {
|
||||||
|
device = (lib.concatMapStringsSep ":" (d: (tomedia d)) ["j0" "j1" "j2" ]);
|
||||||
|
fsType = "mergerfs";
|
||||||
|
noCheck = true;
|
||||||
|
options = [ "defaults" "allow_other" "nofail" "nonempty" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
environment.systemPackages = [ pkgs.mergerfs ];
|
||||||
|
}
|
|
@ -1,3 +1,4 @@
|
||||||
{
|
{
|
||||||
name="filepimp";
|
name="filepimp";
|
||||||
|
home-manager = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue