nixos/initrd-network: add udhcpc.extraArgs option (#36305)

This can be used to fix issues where udhcpc times out before
acquiring a lease. For example of these issues, see:

https://bugs.alpinelinux.org/issues/3105#note-8

Signed-off-by: Dino A. Dai Zovi <ddz@theta44.org>

Changed files
+13 -1
nixos
modules
system
+13 -1
nixos/modules/system/boot/initrd-network.nix
···
fi
'';
+
udhcpcArgs = toString cfg.udhcpc.extraArgs;
+
in
{
···
You should add the module(s) required for your network card to
boot.initrd.availableKernelModules. lspci -v -s &lt;ethernet controller&gt;
will tell you which.
+
'';
+
};
+
+
boot.initrd.network.udhcpc.extraArgs = mkOption {
+
default = [];
+
type = types.listOf types.str;
+
description = ''
+
Additional command-line arguments passed verbatim to udhcpc if
+
<option>boot.initrd.network.enable</option> and <option>networking.useDHCP</option>
+
are enabled.
'';
};
···
# Acquire a DHCP lease.
echo "acquiring IP address via DHCP..."
-
udhcpc --quit --now --script ${udhcpcScript} && hasNetwork=1
+
udhcpc --quit --now --script ${udhcpcScript} ${udhcpcArgs} && hasNetwork=1
fi
''