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 = {
|
x32abi = {
|
||||||
enable = mkEnableOption "X32 kernel ABI";
|
enable = mkEnableOption "X32 kernel ABI";
|
||||||
};
|
};
|
||||||
|
kvdo.enable = mkEnableOption "dm-kvdo kernel module";
|
||||||
efi = mkOption rec {
|
efi = mkOption rec {
|
||||||
description = "Use EFI bootloader";
|
description = "Use EFI bootloader";
|
||||||
default = builtins.pathExists "/sys/firmware/efi";
|
default = builtins.pathExists "/sys/firmware/efi";
|
||||||
|
|
@ -114,6 +115,9 @@ in
|
||||||
kernelPatches = concatLists [
|
kernelPatches = concatLists [
|
||||||
(optional cfg.x32abi.enable customKernelPatches.enableX32ABI)
|
(optional cfg.x32abi.enable customKernelPatches.enableX32ABI)
|
||||||
];
|
];
|
||||||
|
extraModulePackages = concatLists [
|
||||||
|
(optional cfg.kvdo.enable pkgs.kvdo)
|
||||||
|
];
|
||||||
|
|
||||||
loader.grub.enable = cfg.useGrub || (!cfg.efi);
|
loader.grub.enable = cfg.useGrub || (!cfg.efi);
|
||||||
loader.grub = {
|
loader.grub = {
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,8 @@ in
|
||||||
# chromium = self.ungoogled-chromium;
|
# chromium = self.ungoogled-chromium;
|
||||||
|
|
||||||
myFirefox = (import ./packages/firefox.nix { pkgs = self; inherit lib; });
|
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