mirror of
https://github.com/aviallon/nixos-lib.git
synced 2026-04-05 17:27:50 +00:00
[Boot/Packages/Kernel] Add kvdo kernel module
This commit is contained in:
parent
6b5f69bece
commit
c25820247c
3 changed files with 59 additions and 0 deletions
4
boot.nix
4
boot.nix
|
|
@ -60,6 +60,7 @@ in
|
|||
x32abi = {
|
||||
enable = mkEnableOption "X32 kernel ABI";
|
||||
};
|
||||
kvdo.enable = mkEnableOption "dm-kvdo kernel module";
|
||||
efi = mkOption rec {
|
||||
description = "Use EFI bootloader";
|
||||
default = builtins.pathExists "/sys/firmware/efi";
|
||||
|
|
@ -114,6 +115,9 @@ in
|
|||
kernelPatches = concatLists [
|
||||
(optional cfg.x32abi.enable customKernelPatches.enableX32ABI)
|
||||
];
|
||||
extraModulePackages = concatLists [
|
||||
(optional cfg.kvdo.enable pkgs.kvdo)
|
||||
];
|
||||
|
||||
loader.grub.enable = cfg.useGrub || (!cfg.efi);
|
||||
loader.grub = {
|
||||
|
|
|
|||
|
|
@ -127,6 +127,8 @@ in
|
|||
# chromium = self.ungoogled-chromium;
|
||||
|
||||
myFirefox = (import ./packages/firefox.nix { pkgs = self; inherit lib; });
|
||||
|
||||
kvdo = config.boot.kernelPackages.callPackage ./packages/kvdo.nix { };
|
||||
})
|
||||
];
|
||||
|
||||
|
|
|
|||
53
packages/kvdo.nix
Normal file
53
packages/kvdo.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{ stdenv, lib, fetchFromGitHub, kernel }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kvdo";
|
||||
|
||||
_tag = "8.1.1.371";
|
||||
version = "${_tag}-${kernel.version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dm-vdo";
|
||||
repo = "kvdo";
|
||||
rev = "${_tag}";
|
||||
sha256 = "sha256:1nwprbyql5vzhhgl2zmgnp5ax50ys7crgq8ff11zr8fhcna4fmmw";
|
||||
};
|
||||
|
||||
nativeBuildInputs = kernel.moduleBuildDependencies;
|
||||
|
||||
KERNEL_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
dontConfigure = true;
|
||||
|
||||
MAKEFLAGS = with lib; concatStringsSep " " (
|
||||
[]
|
||||
++ optional enableParallelBuilding "-j$(nproc)"
|
||||
++ optional enableParallelBuilding "-l$(nproc)"
|
||||
);
|
||||
|
||||
buildPhase = ''
|
||||
BASE_DIR=$(pwd)
|
||||
make -C ${KERNEL_DIR} M=$BASE_DIR/uds modules
|
||||
make -C ${KERNEL_DIR} M=$BASE_DIR/vdo \
|
||||
KBUILD_EXTRA_SYMBOLS=$BASE_DIR/uds/Module.symvers modules
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
modDir=$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/block/
|
||||
mkdir -p $modDir
|
||||
for d in uds vdo; do
|
||||
mv -v $d/*.ko $modDir/
|
||||
done
|
||||
'';
|
||||
|
||||
hardeningDisable = [ "pic" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A pair of kernel modules which provide pools of deduplicated and/or compressed block storage";
|
||||
homepage = "https://github.com/dm-vdo/kvdo";
|
||||
license = licenses.gpl2Only;
|
||||
# maintainers = [ maintainers.makefu ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue