diff options
author | Franz Pletz <fpletz@fnordicwalking.de> | 2019-09-22 17:14:47 +0200 |
---|---|---|
committer | Franz Pletz <fpletz@fnordicwalking.de> | 2020-02-08 14:04:02 +0100 |
commit | 44e289f93bcf6d04c3eab231bac57dade06fc0c6 (patch) | |
tree | 64adee07c42dfd1ba9bdb0c14c263a0e1f588067 /nixos/modules/system/boot/stage-1.nix | |
parent | cfd4d4557af9f26dcd760fc5ee4a982d0b7867df (diff) | |
download | nixpkgs-44e289f93bcf6d04c3eab231bac57dade06fc0c6.tar nixpkgs-44e289f93bcf6d04c3eab231bac57dade06fc0c6.tar.gz nixpkgs-44e289f93bcf6d04c3eab231bac57dade06fc0c6.tar.bz2 nixpkgs-44e289f93bcf6d04c3eab231bac57dade06fc0c6.tar.lz nixpkgs-44e289f93bcf6d04c3eab231bac57dade06fc0c6.tar.xz nixpkgs-44e289f93bcf6d04c3eab231bac57dade06fc0c6.tar.zst nixpkgs-44e289f93bcf6d04c3eab231bac57dade06fc0c6.zip |
nixos/stage-1: fix predictable interfaces names
This makes predictable interfaces names available as soon as possible with udev by adding the default network link units to initrd which are read by udev. Also adds some udev rules that are needed but which would normally loaded from the udev store path which is not included in the initrd.
Diffstat (limited to 'nixos/modules/system/boot/stage-1.nix')
-rw-r--r-- | nixos/modules/system/boot/stage-1.nix | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index 4c2d130d5a5..26117cffeda 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -120,6 +120,7 @@ let # Copy udev. copy_bin_and_libs ${udev}/lib/systemd/systemd-udevd + copy_bin_and_libs ${udev}/lib/systemd/systemd-sysctl copy_bin_and_libs ${udev}/bin/udevadm for BIN in ${udev}/lib/udev/*_id; do copy_bin_and_libs $BIN @@ -198,6 +199,14 @@ let ''; # */ + linkUnits = pkgs.runCommand "link-units" { + allowedReferences = [ extraUtils ]; + preferLocalBuild = true; + } '' + mkdir -p $out + cp -v ${udev}/lib/systemd/network/*.link $out/ + ''; + udevRules = pkgs.runCommand "udev-rules" { allowedReferences = [ extraUtils ]; preferLocalBuild = true; @@ -208,7 +217,9 @@ let cp -v ${udev}/lib/udev/rules.d/60-cdrom_id.rules $out/ cp -v ${udev}/lib/udev/rules.d/60-persistent-storage.rules $out/ + cp -v ${udev}/lib/udev/rules.d/75-net-description.rules $out/ cp -v ${udev}/lib/udev/rules.d/80-drivers.rules $out/ + cp -v ${udev}/lib/udev/rules.d/80-net-setup-link.rules $out/ cp -v ${pkgs.lvm2}/lib/udev/rules.d/*.rules $out/ ${config.boot.initrd.extraUdevRulesCommands} @@ -222,7 +233,7 @@ let --replace ${pkgs.lvm2}/sbin ${extraUtils}/bin \ --replace ${pkgs.mdadm}/sbin ${extraUtils}/sbin \ --replace ${pkgs.bash}/bin/sh ${extraUtils}/bin/sh \ - --replace ${udev}/bin/udevadm ${extraUtils}/bin/udevadm + --replace ${udev} ${extraUtils} done # Work around a bug in QEMU, which doesn't implement the "READ @@ -257,7 +268,7 @@ let ${pkgs.buildPackages.busybox}/bin/ash -n $target ''; - inherit udevRules extraUtils modulesClosure; + inherit linkUnits udevRules extraUtils modulesClosure; inherit (config.boot) resumeDevice; |