diff --git a/pkgs/os-specific/linux/bbswitch/default.nix b/pkgs/os-specific/linux/bbswitch/default.nix index 6d55fe64d23b..7e5828101ef8 100644 --- a/pkgs/os-specific/linux/bbswitch/default.nix +++ b/pkgs/os-specific/linux/bbswitch/default.nix @@ -34,15 +34,17 @@ stdenv.mkDerivation (finalAttrs: { preBuild = '' substituteInPlace Makefile \ - --replace "/lib/modules" "${kernel.dev}/lib/modules" + --replace-fail "/lib/modules" "${kernel.dev}/lib/modules" ''; - makeFlags = kernelModuleMakeFlags; - - installPhase = '' - mkdir -p $out/lib/modules/${kernel.modDirVersion}/misc - cp bbswitch.ko $out/lib/modules/${kernel.modDirVersion}/misc + makeFlags = kernelModuleMakeFlags ++ [ + "INSTALL_MOD_PATH=${placeholder "out"}" + "INSTALL_MOD_DIR=kernel/misc" + "INSTALL_MOD_STRIP=1" + "DEPMOD=true" + ]; + postInstall = '' mkdir -p $out/bin tee $out/bin/discrete_vga_poweroff << EOF #!${runtimeShell} @@ -57,6 +59,13 @@ stdenv.mkDerivation (finalAttrs: { chmod +x $out/bin/discrete_vga_poweroff $out/bin/discrete_vga_poweron ''; + installFlags = [ + "-C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "M=$(PWD)" + ]; + + installTargets = [ "modules_install" ]; + meta = { description = "Module for powering off hybrid GPUs"; platforms = [