pull module blacklist from Ubuntu and use it by default
People often have serious problems due to bogus modules like *fb.
This commit is contained in:
parent
849b383f4d
commit
5acaa980a5
@ -68,7 +68,10 @@ with pkgs.lib;
|
|||||||
|
|
||||||
config = mkIf (!config.boot.isContainer) {
|
config = mkIf (!config.boot.isContainer) {
|
||||||
|
|
||||||
environment.etc = singleton
|
environment.etc = [
|
||||||
|
{ source = "${pkgs.kmod-blacklist-ubuntu}/modprobe.conf";
|
||||||
|
target = "modprobe.d/ubuntu.conf";
|
||||||
|
}
|
||||||
{ source = pkgs.writeText "modprobe.conf"
|
{ source = pkgs.writeText "modprobe.conf"
|
||||||
''
|
''
|
||||||
${flip concatMapStrings config.boot.blacklistedKernelModules (name: ''
|
${flip concatMapStrings config.boot.blacklistedKernelModules (name: ''
|
||||||
@ -77,26 +80,11 @@ with pkgs.lib;
|
|||||||
${config.boot.extraModprobeConfig}
|
${config.boot.extraModprobeConfig}
|
||||||
'';
|
'';
|
||||||
target = "modprobe.d/nixos.conf";
|
target = "modprobe.d/nixos.conf";
|
||||||
};
|
}
|
||||||
|
];
|
||||||
|
|
||||||
environment.systemPackages = [ config.system.sbin.modprobe pkgs.kmod ];
|
environment.systemPackages = [ config.system.sbin.modprobe pkgs.kmod ];
|
||||||
|
|
||||||
boot.blacklistedKernelModules =
|
|
||||||
[ # This module is for debugging and generates gigantic amounts
|
|
||||||
# of log output, so it should never be loaded automatically.
|
|
||||||
"evbug"
|
|
||||||
|
|
||||||
# This module causes ALSA to occassionally select the wrong
|
|
||||||
# default sound device, and is little more than an annoyance
|
|
||||||
# on modern machines.
|
|
||||||
"snd_pcsp"
|
|
||||||
|
|
||||||
# The cirrusfb module prevents X11 from starting. FIXME:
|
|
||||||
# Ubuntu blacklists all framebuffer devices because they're
|
|
||||||
# "buggy" and cause suspend problems. Maybe we should too?
|
|
||||||
"cirrusfb"
|
|
||||||
];
|
|
||||||
|
|
||||||
system.activationScripts.modprobe =
|
system.activationScripts.modprobe =
|
||||||
''
|
''
|
||||||
# Allow the kernel to find our wrapped modprobe (which searches
|
# Allow the kernel to find our wrapped modprobe (which searches
|
||||||
|
28
pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix
Normal file
28
pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{ stdenv, fetchbzr }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "blacklist-ubuntu-${builtins.toString src.revision}"; # Saucy
|
||||||
|
|
||||||
|
src = fetchbzr {
|
||||||
|
url = meta.homepage;
|
||||||
|
sha256 = "0ci4b5dxzirc27zvgpr3s0pa78gjmfjwprmvyplxhwxb765la9v9";
|
||||||
|
revision = 13;
|
||||||
|
};
|
||||||
|
|
||||||
|
unpackPhase = "true";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir "$out"
|
||||||
|
for f in "$src"/debian/modprobe.d/*.conf; do
|
||||||
|
echo "''\n''\n## file: "`basename "$f"`"''\n''\n" >> "$out"/modprobe.conf
|
||||||
|
cat "$f" >> "$out"/modprobe.conf
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
#TODO: iwlwifi.conf has some strange references
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = https://code.launchpad.net/~ubuntu-branches/ubuntu/saucy/kmod/saucy;
|
||||||
|
description = "Linux kernel module blacklists from Ubuntu";
|
||||||
|
};
|
||||||
|
}
|
@ -6835,6 +6835,8 @@ let
|
|||||||
|
|
||||||
kmod = callPackage ../os-specific/linux/kmod { };
|
kmod = callPackage ../os-specific/linux/kmod { };
|
||||||
|
|
||||||
|
kmod-blacklist-ubuntu = callPackage ../os-specific/linux/kmod-blacklist-ubuntu { };
|
||||||
|
|
||||||
kvm = qemu_kvm;
|
kvm = qemu_kvm;
|
||||||
|
|
||||||
libcap = callPackage ../os-specific/linux/libcap { };
|
libcap = callPackage ../os-specific/linux/libcap { };
|
||||||
|
Loading…
Reference in New Issue
Block a user