* services.udev.addUdevPkgs -> services.udev.packages.
* Simplified the udev rules generation: merged nixRules into services.udev.extraRules, and handle services.udev.extraRules using services.udev.packages. svn path=/nixos/trunk/; revision=16655
This commit is contained in:
parent
0d35699507
commit
b3c0061a91
@ -53,17 +53,9 @@ mkIf config.hardware.pcmcia.enable {
|
|||||||
options
|
options
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot.kernelModules = [ "pcmcia" ];
|
||||||
kernelModules = [ "pcmcia" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services.udev.packages = [ pcmciaUtils ];
|
||||||
udev = {
|
|
||||||
addUdevPkgs = [ pcmciaUtils ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment = {
|
environment.systemPackages = [ pcmciaUtils ];
|
||||||
extraPackages = [ pcmciaUtils ];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@ -8,18 +8,10 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
boot = {
|
boot.extraModulePackages = [wisGo7007Pkg];
|
||||||
extraModulePackages = wisGo7007Pkg;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment = {
|
environment.extraPackages = [wisGo7007Pkg];
|
||||||
extraPackages = wisGo7007Pkg;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services.udev.addFirmware = [wisGo7007Firmware];
|
||||||
udev = {
|
services.udev.packages = [wisGo7007Pkg];
|
||||||
addFirmware = wisGo7007Firmware;
|
|
||||||
addUdevPkgs = wisGo7007Pkg;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ in
|
|||||||
exec = "${hal}/sbin/hald --daemon=no";
|
exec = "${hal}/sbin/hald --daemon=no";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.udev.addUdevPkgs = [hal];
|
services.udev.packages = [hal];
|
||||||
|
|
||||||
services.dbus.enable = true;
|
services.dbus.enable = true;
|
||||||
services.dbus.packages = [hal];
|
services.dbus.packages = [hal];
|
||||||
|
@ -12,22 +12,18 @@ let
|
|||||||
src = ./udev-firmware-loader.sh;
|
src = ./udev-firmware-loader.sh;
|
||||||
path = "${stdenv.coreutils}/bin";
|
path = "${stdenv.coreutils}/bin";
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
inherit firmwareDirs;
|
firmwareDirs = cfg.addFirmware;
|
||||||
};
|
};
|
||||||
|
|
||||||
firmwareDirs = config.services.udev.addFirmware;
|
extraUdevRules = pkgs.writeTextFile {
|
||||||
|
name = "extra-udev-rules";
|
||||||
extraUdevPkgs = config.services.udev.addUdevPkgs
|
text = cfg.extraRules;
|
||||||
++ pkgs.lib.optional (cfg.extraRules != "")
|
destination = "/etc/udev/rules.d/10-local.rules";
|
||||||
(pkgs.writeTextFile {
|
};
|
||||||
name = "extra-udev-rules";
|
|
||||||
text = cfg.extraRules;
|
|
||||||
destination = "/custom/udev/rules.d/10-local.rules";
|
|
||||||
});
|
|
||||||
|
|
||||||
modprobe = config.system.sbin.modprobe;
|
modprobe = config.system.sbin.modprobe;
|
||||||
|
|
||||||
nixRules = writeText "90-nix.rules" ''
|
nixosRules = ''
|
||||||
|
|
||||||
# Miscellaneous devices.
|
# Miscellaneous devices.
|
||||||
KERNEL=="sonypi", MODE="0666"
|
KERNEL=="sonypi", MODE="0666"
|
||||||
@ -60,10 +56,14 @@ let
|
|||||||
#src = cleanSource ./udev-rules;
|
#src = cleanSource ./udev-rules;
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
ensureDir $out
|
ensureDir $out
|
||||||
ln -s ${nixRules} $out/${nixRules.name}
|
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
|
|
||||||
|
# Use all the default udev rules.
|
||||||
cp ${udev}/*/udev/rules.d/*.rules $out/
|
cp ${udev}/*/udev/rules.d/*.rules $out/
|
||||||
|
|
||||||
|
# If auto-configuration is disabled, then remove
|
||||||
|
# udev's 80-drivers.rules file, which contains rules for
|
||||||
|
# automatically calling modprobe.
|
||||||
${if config.boot.hardwareScan then
|
${if config.boot.hardwareScan then
|
||||||
''
|
''
|
||||||
substituteInPlace $out/80-drivers.rules \
|
substituteInPlace $out/80-drivers.rules \
|
||||||
@ -74,7 +74,9 @@ let
|
|||||||
rm $out/80-drivers.rules
|
rm $out/80-drivers.rules
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
for i in ${toString extraUdevPkgs}; do
|
|
||||||
|
# Add the udev rules from other packages.
|
||||||
|
for i in ${toString cfg.packages}; do
|
||||||
for j in $i/*/udev/rules.d/*; do
|
for j in $i/*/udev/rules.d/*; do
|
||||||
ln -s $j $out/$(basename $j)
|
ln -s $j $out/$(basename $j)
|
||||||
done
|
done
|
||||||
@ -122,23 +124,24 @@ in
|
|||||||
addFirmware = mkOption {
|
addFirmware = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
example = ["/mnt/big-storage/firmware/"];
|
example = ["/mnt/big-storage/firmware/"];
|
||||||
|
merge = mergeListOption;
|
||||||
description = ''
|
description = ''
|
||||||
To specify firmware that is not too spread to ensure
|
To specify firmware that is not too spread to ensure
|
||||||
a package, or have an interactive process of extraction
|
a package, or have an interactive process of extraction
|
||||||
and cannot be redistributed.
|
and cannot be redistributed.
|
||||||
'';
|
'';
|
||||||
merge = pkgs.lib.mergeListOption;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
addUdevPkgs = mkOption {
|
packages = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
|
merge = mergeListOption;
|
||||||
description = ''
|
description = ''
|
||||||
List of packages containing <command>udev</command> rules.
|
List of packages containing <command>udev</command> rules.
|
||||||
All files found in
|
All files found in
|
||||||
<filename><replaceable>pkg</replaceable>/udev/rules.d</filename>
|
<filename><replaceable>pkg</replaceable>/etc/udev/rules.d</filename> and
|
||||||
|
<filename><replaceable>pkg</replaceable>/lib/udev/rules.d</filename>
|
||||||
will be included.
|
will be included.
|
||||||
'';
|
'';
|
||||||
merge = pkgs.lib.mergeListOption;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extraRules = mkOption {
|
extraRules = mkOption {
|
||||||
@ -146,6 +149,7 @@ in
|
|||||||
example = ''
|
example = ''
|
||||||
KERNEL=="eth*", ATTR{address}=="00:1D:60:B9:6D:4F", NAME="my_fast_network_card"
|
KERNEL=="eth*", ATTR{address}=="00:1D:60:B9:6D:4F", NAME="my_fast_network_card"
|
||||||
'';
|
'';
|
||||||
|
merge = mergeStringOption;
|
||||||
description = ''
|
description = ''
|
||||||
Additional <command>udev</command> rules. They'll be written
|
Additional <command>udev</command> rules. They'll be written
|
||||||
into file <filename>10-local.rules</filename>. Thus they are
|
into file <filename>10-local.rules</filename>. Thus they are
|
||||||
@ -172,6 +176,10 @@ in
|
|||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
|
||||||
|
services.udev.extraRules = nixosRules;
|
||||||
|
|
||||||
|
services.udev.packages = [extraUdevRules];
|
||||||
|
|
||||||
jobs = singleton
|
jobs = singleton
|
||||||
{ name = "udev";
|
{ name = "udev";
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user