|
|
|
@ -8,41 +8,6 @@ with lib; |
|
|
|
|
|
|
|
|
|
options = { |
|
|
|
|
|
|
|
|
|
system.sbin.modprobe = mkOption { |
|
|
|
|
internal = true; |
|
|
|
|
default = pkgs.stdenv.mkDerivation { |
|
|
|
|
name = "modprobe"; |
|
|
|
|
buildCommand = '' |
|
|
|
|
mkdir -p $out/bin |
|
|
|
|
for i in ${pkgs.kmod}/sbin/*; do |
|
|
|
|
name=$(basename $i) |
|
|
|
|
echo "$text" > $out/bin/$name |
|
|
|
|
echo 'exec '$i' "$@"' >> $out/bin/$name |
|
|
|
|
chmod +x $out/bin/$name |
|
|
|
|
done |
|
|
|
|
ln -s bin $out/sbin |
|
|
|
|
''; |
|
|
|
|
text = |
|
|
|
|
'' |
|
|
|
|
#! ${pkgs.stdenv.shell} |
|
|
|
|
export MODULE_DIR=/run/current-system/kernel-modules/lib/modules |
|
|
|
|
|
|
|
|
|
# Fall back to the kernel modules used at boot time if the |
|
|
|
|
# modules in the current configuration don't match the |
|
|
|
|
# running kernel. |
|
|
|
|
if [ ! -d "$MODULE_DIR/$(${pkgs.coreutils}/bin/uname -r)" ]; then |
|
|
|
|
MODULE_DIR=/run/booted-system/kernel-modules/lib/modules/ |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
''; |
|
|
|
|
meta.priority = 4; |
|
|
|
|
}; |
|
|
|
|
description = '' |
|
|
|
|
Wrapper around modprobe that sets the path to the modules |
|
|
|
|
tree. |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
boot.blacklistedKernelModules = mkOption { |
|
|
|
|
type = types.listOf types.str; |
|
|
|
|
default = []; |
|
|
|
@ -87,7 +52,7 @@ with lib; |
|
|
|
|
''; |
|
|
|
|
environment.etc."modprobe.d/debian.conf".source = pkgs.kmod-debian-aliases; |
|
|
|
|
|
|
|
|
|
environment.systemPackages = [ config.system.sbin.modprobe pkgs.kmod ]; |
|
|
|
|
environment.systemPackages = [ pkgs.kmod ]; |
|
|
|
|
|
|
|
|
|
system.activationScripts.modprobe = |
|
|
|
|
'' |
|
|
|
@ -95,7 +60,7 @@ with lib; |
|
|
|
|
# in the right location in the Nix store for kernel modules). |
|
|
|
|
# We need this when the kernel (or some module) auto-loads a |
|
|
|
|
# module. |
|
|
|
|
echo ${config.system.sbin.modprobe}/sbin/modprobe > /proc/sys/kernel/modprobe |
|
|
|
|
echo ${pkgs.kmod}/bin/modprobe > /proc/sys/kernel/modprobe |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
environment.sessionVariables.MODULE_DIR = "/run/current-system/kernel-modules/lib/modules"; |
|
|
|
|