diff options
Diffstat (limited to 'pkgs/os-specific/linux/kmod/aggregator.nix')
-rw-r--r-- | pkgs/os-specific/linux/kmod/aggregator.nix | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/kmod/aggregator.nix b/pkgs/os-specific/linux/kmod/aggregator.nix new file mode 100644 index 00000000000..161af38ff60 --- /dev/null +++ b/pkgs/os-specific/linux/kmod/aggregator.nix @@ -0,0 +1,27 @@ +{ stdenv, kmod, modules, buildEnv }: + +buildEnv { + name = "kernel-modules"; + + paths = modules; + + postBuild = + '' + source ${stdenv}/setup + + kernelVersion=$(cd $out/lib/modules && ls -d *) + if test "$(echo $kernelVersion | wc -w)" != 1; then + echo "inconsistent kernel versions: $kernelVersion" + exit 1 + fi + + echo "kernel version is $kernelVersion" + + # Regenerate the depmod map files. Be sure to pass an explicit + # kernel version number, otherwise depmod will use `uname -r'. + if test -w $out/lib/modules/$kernelVersion; then + rm -f $out/lib/modules/$kernelVersion/modules.* + ${kmod}/sbin/depmod -b $out -a $kernelVersion + fi + ''; +} |