diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2010-01-07 22:39:35 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2010-01-07 22:39:35 +0000 |
commit | 6f8a3ba7c74199b245fbec0f03efcd5b81d76c0e (patch) | |
tree | 90d0bb0819748a332c620b1aeabf90434169a098 /modules/services/hardware/udev.nix | |
parent | fa2a6f835f1447e3bc347e370b633942fb865b15 (diff) | |
download | nixpkgs-6f8a3ba7c74199b245fbec0f03efcd5b81d76c0e.tar nixpkgs-6f8a3ba7c74199b245fbec0f03efcd5b81d76c0e.tar.gz nixpkgs-6f8a3ba7c74199b245fbec0f03efcd5b81d76c0e.tar.bz2 nixpkgs-6f8a3ba7c74199b245fbec0f03efcd5b81d76c0e.tar.lz nixpkgs-6f8a3ba7c74199b245fbec0f03efcd5b81d76c0e.tar.xz nixpkgs-6f8a3ba7c74199b245fbec0f03efcd5b81d76c0e.tar.zst nixpkgs-6f8a3ba7c74199b245fbec0f03efcd5b81d76c0e.zip |
* Create devicemapper/lvm device nodes from udev (using the rules
supplied by the lvm package). This makes the "lvm" Upstart task unnecessary. Also, we now get /dev/disk/by-{label,uuid} symlinks for LVM logical disks. svn path=/nixos/trunk/; revision=19300
Diffstat (limited to 'modules/services/hardware/udev.nix')
-rw-r--r-- | modules/services/hardware/udev.nix | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/modules/services/hardware/udev.nix b/modules/services/hardware/udev.nix index 798b9a4e381..af653f59c88 100644 --- a/modules/services/hardware/udev.nix +++ b/modules/services/hardware/udev.nix @@ -44,12 +44,21 @@ let # called by 50-firmware.rules works properly. echo 'ENV{FIRMWARE_DIRS}="${toString config.hardware.firmware}"' >> $out/00-path.rules - # Fix some paths in the standard udev rules. + # Add the udev rules from other packages. + for i in ${toString cfg.packages}; do + for j in $i/*/udev/rules.d/*; do + ln -s $j $out/$(basename $j) + done + done + + # Fix some paths in the standard udev rules. Hacky. for i in $out/*.rules; do substituteInPlace $i \ --replace /sbin/modprobe ${modprobe}/sbin/modprobe \ --replace /sbin/blkid ${pkgs.utillinux}/sbin/blkid \ - --replace /sbin/mdadm ${pkgs.mdadm}/sbin/madm + --replace /sbin/mdadm ${pkgs.mdadm}/sbin/madm \ + --replace '$env{DM_SBIN_PATH}/blkid' ${pkgs.utillinux}/sbin/blkid \ + --replace 'ENV{DM_SBIN_PATH}="/sbin"' 'ENV{DM_SBIN_PATH}="${pkgs.lvm2}/sbin"' done # If auto-configuration is disabled, then remove @@ -57,13 +66,6 @@ let # automatically calling modprobe. ${if !config.boot.hardwareScan then "rm $out/80-drivers.rules" else ""} - # Add the udev rules from other packages. - for i in ${toString cfg.packages}; do - for j in $i/*/udev/rules.d/*; do - ln -s $j $out/$(basename $j) - done - done - # Use the persistent device rules (naming for CD/DVD and # network devices) stored in # /var/lib/udev/rules.d/70-persistent-{cd,net}.rules. These are @@ -186,8 +188,12 @@ in '' # Let udev create device nodes for all modules that have already # been loaded into the kernel (or for which support is built into - # the kernel). + # the kernel). The `STARTUP' variable is needed to force + # the LVM rules to create device nodes. See + # http://www.mail-archive.com/fedora-devel-list@redhat.com/msg10261.html + ${udev}/sbin/udevadm control --env=STARTUP=1 ${udev}/sbin/udevadm trigger + ${udev}/sbin/udevadm control --env=STARTUP= ${udev}/sbin/udevadm settle # wait for udev to finish initctl emit -n new-devices |