tree-wide: use "_" rather than "-" as separator in kernel cmdline options

Most of our kernel cmdline options use underscores as word separators in
kernel cmdline options, but there were some exceptions. Let's fix those,
and also use underscores.

Since our /proc/cmdline parsers don't distinguish between the two
characters anyway this should not break anything, but makes sure our own
codebase (and in particular docs and log messages) are internally
consistent.
This commit is contained in:
Lennart Poettering 2024-02-28 15:31:27 +01:00
parent 78816ce72e
commit 78266a54f1
18 changed files with 55 additions and 55 deletions

24
NEWS
View file

@ -1390,7 +1390,7 @@ CHANGES WITH 254:
user is notified (graphically via Plymouth if available as well
as in text form on the console), and the system is turned off after a
10s delay. The feature can be disabled by passing
systemd.battery-check=0 through the kernel command line.
systemd.battery_check=0 through the kernel command line.
* The 'passwdqc' library is now supported as an alternative to the
'pwquality' library and can be selected at build time.
@ -3718,7 +3718,7 @@ CHANGES WITH 250:
interfaces. The Kind= setting in .netdev file accepts "ipoib". And
systemd.netdev files gained the [IPoIB] section.
* systemd-networkd and systemd-udevd now support net.ifname-policy=
* systemd-networkd and systemd-udevd now support net.ifname_policy=
option on the kernel command-line. This is implemented through the
systemd-network-generator service that automatically generates
appropriate .link, .network, and .netdev files.
@ -4290,7 +4290,7 @@ CHANGES WITH 249:
- Invalid characters in interface names are replaced with "_".
The new version of the net naming scheme is "v249". The previous
scheme can be selected via the "net.naming-scheme=v247" kernel
scheme can be selected via the "net.naming_scheme=v247" kernel
command line parameter.
* sd-bus' sd_bus_is_ready() and sd_bus_is_open() calls now accept a
@ -5821,7 +5821,7 @@ CHANGES WITH 247:
bridge. Since this is a naming scheme incompatibility on systems that
possess hardware like this it has been introduced as new naming
scheme "v247". The previous scheme can be selected via the
"net.naming-scheme=v245" kernel command line parameter.
"net.naming_scheme=v245" kernel command line parameter.
* ConditionFirstBoot= semantics have been modified to be safe towards
abnormal system power-off during first boot. Specifically, the
@ -6034,12 +6034,12 @@ CHANGES WITH 246:
added, which may be used to turn off automatic activation of swap
devices listed in /etc/fstab.
* New kernel command line options systemd.condition-needs-update= and
systemd.condition-first-boot= have been added, which override the
* New kernel command line options systemd.condition_needs_update= and
systemd.condition_first_boot= have been added, which override the
result of the ConditionNeedsUpdate= and ConditionFirstBoot=
conditions.
* A new kernel command line option systemd.clock-usec= has been added
* A new kernel command line option systemd.clock_usec= has been added
that allows setting the system clock to the specified time in µs
since Jan 1st, 1970 early during boot. This is in particular useful
in order to make test cases more reliable.
@ -6726,7 +6726,7 @@ CHANGES WITH 245:
multiple containers whose names all begin with the same prefix. Since
this changes the primary interface names pointing to containers if
truncation happens, the old scheme may still be requested by
selecting an older naming scheme, via the net.naming-scheme= kernel
selecting an older naming scheme, via the net.naming_scheme= kernel
command line option.
* PrivateUsers= in service files now works in services run by the
@ -7256,9 +7256,9 @@ CHANGES WITH 243:
Moreover, the "en" prefix was dropped from the ID_NET_NAME_ONBOARD
udev property.
Those two changes form a new net.naming-policy-scheme= entry.
Distributions which want to preserve naming stability may want to set
the -Ddefault-net-naming-scheme= configuration option.
Those two changes form a new net.naming_scheme= entry. Distributions
which want to preserve naming stability may want to set the
-Ddefault-net-naming-scheme= configuration option.
* systemd-networkd now supports MACsec, nlmon, IPVTAP and Xfrm
interfaces natively.
@ -8333,7 +8333,7 @@ CHANGES WITH 240:
name as argument.
* systemd-udevd's network naming logic now understands a new
net.naming-scheme= kernel command line switch, which may be used to
net.naming_scheme= kernel command line switch, which may be used to
pick a specific version of the naming scheme. This helps stabilizing
interface names even as systemd/udev are updated and the naming logic
is improved.

View file

@ -252,7 +252,7 @@ All tools:
when determining stable network interface names. This may be used to revert
to naming schemes of older udev versions, in order to provide more stable
naming across updates. This environment variable takes precedence over the
kernel command line option `net.naming-scheme=`, except if the value is
kernel command line option `net.naming_scheme=`, except if the value is
prefixed with `:` in which case the kernel command line option takes
precedence, if it is specified as well.

View file

@ -317,7 +317,7 @@
<term><varname>udev.blockdev_read_only</varname></term>
<term><varname>rd.udev.blockdev_read_only</varname></term>
<term><varname>net.ifnames=</varname></term>
<term><varname>net.naming-scheme=</varname></term>
<term><varname>net.naming_scheme=</varname></term>
<listitem>
<para>Parameters understood by the device event managing
@ -609,7 +609,7 @@
<citerefentry><refentrytitle>systemd-homed-firstboot.service</refentrytitle><manvolnum>1</manvolnum></citerefentry>
will not query the user for basic system settings, even if the system boots up for the first time and
the relevant settings are not initialized yet. Not to be confused with
<varname>systemd.condition-first-boot=</varname> (see below), which overrides the result of the
<varname>systemd.condition_first_boot=</varname> (see below), which overrides the result of the
<varname>ConditionFirstBoot=</varname> unit file condition, and thus controls more than just
<filename>systemd-firstboot.service</filename> behaviour.</para>
@ -617,7 +617,7 @@
</varlistentry>
<varlistentry>
<term><varname>systemd.condition-needs-update=</varname></term>
<term><varname>systemd.condition_needs_update=</varname></term>
<listitem><para>Takes a boolean argument. If specified, overrides the result of
<varname>ConditionNeedsUpdate=</varname> unit condition checks. See
@ -628,7 +628,7 @@
</varlistentry>
<varlistentry>
<term><varname>systemd.condition-first-boot=</varname></term>
<term><varname>systemd.condition_first_boot=</varname></term>
<listitem><para>Takes a boolean argument. If specified, overrides the result of
<varname>ConditionFirstBoot=</varname> unit condition checks. See
@ -641,7 +641,7 @@
</varlistentry>
<varlistentry>
<term><varname>systemd.clock-usec=</varname></term>
<term><varname>systemd.clock_usec=</varname></term>
<listitem><para>Takes a decimal, numeric timestamp in μs since January 1st 1970, 00:00am, to set the
system clock to. The system time is set to the specified timestamp early during boot. It is not
@ -651,7 +651,7 @@
</varlistentry>
<varlistentry>
<term><varname>systemd.random-seed=</varname></term>
<term><varname>systemd.random_seed=</varname></term>
<listitem><para>Takes a base64 encoded random seed value to credit with full entropy to the kernel's
random pool during early service manager initialization. This option is useful in testing

View file

@ -66,7 +66,7 @@
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>systemd.battery-check=<replaceable>BOOL</replaceable></varname></term>
<term><varname>systemd.battery_check=<replaceable>BOOL</replaceable></varname></term>
<listitem>
<para>Takes a boolean. If specified with false, <command>systemd-battery-check</command> command

View file

@ -76,7 +76,7 @@
<varlistentry>
<term><varname>ifname=</varname></term>
<term><varname>net.ifname-policy=</varname></term>
<term><varname>net.ifname_policy=</varname></term>
<listitem>
<para>Translated into
<citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>

View file

@ -236,7 +236,7 @@
</listitem>
</varlistentry>
<varlistentry>
<term><varname>net.naming-scheme=</varname></term>
<term><varname>net.naming_scheme=</varname></term>
<listitem>
<para>Network interfaces are renamed to give them predictable names when possible (unless
<varname>net.ifnames=0</varname> is specified, see above). With this kernel command line option it
@ -255,7 +255,7 @@
</listitem>
</varlistentry>
<varlistentry>
<term><varname>net.ifname-policy=<replaceable>policy1</replaceable>[,<replaceable>policy2</replaceable>,…][,<replaceable>MAC</replaceable>]</varname></term>
<term><varname>net.ifname_policy=<replaceable>policy1</replaceable>[,<replaceable>policy2</replaceable>,…][,<replaceable>MAC</replaceable>]</varname></term>
<listitem>
<para>Specifies naming policies applied when renaming network interfaces. Takes a list of
policies and an optional MAC address separated with comma. Each policy value must be one of
@ -273,8 +273,8 @@
enabled.</para>
<para>Example:
<programlisting>net.ifname-policy=keep,kernel,path,slot,onboard,01:23:45:67:89:ab
net.ifname-policy=keep,kernel,path,slot,onboard,mac</programlisting>
<programlisting>net.ifname_policy=keep,kernel,path,slot,onboard,01:23:45:67:89:ab
net.ifname_policy=keep,kernel,path,slot,onboard,mac</programlisting>
This is mostly equivalent to creating the following .link files:
<programlisting># 91-name-policy-with-mac.link
[Match]

View file

@ -58,7 +58,7 @@
<citerefentry project='man-pages'><refentrytitle>touch</refentrytitle><manvolnum>1</manvolnum></citerefentry>
on it.</para>
<para>Note that if the <varname>systemd.condition-needs-update=</varname> kernel command line option is
<para>Note that if the <varname>systemd.condition_needs_update=</varname> kernel command line option is
used it overrides the <varname>ConditionNeedsUpdate=</varname> unit condition checks. In that case
<filename>systemd-update-done.service</filename> will not reset the condition state until a follow-up
reboot where the kernel switch is not specified anymore.</para>

View file

@ -38,7 +38,7 @@
implemented version, but it is also possible to set one of the older versions to preserve
compatibility. This may be useful for example for distributions, which may introduce new versions of
systemd in stable releases without changing the naming scheme. The naming scheme may also be overridden
using the <varname>net.naming-scheme=</varname> kernel command line switch, see
using the <varname>net.naming_scheme=</varname> kernel command line switch, see
<citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
Available naming schemes are described below.</para>
@ -326,7 +326,7 @@
<title>History</title>
<para>The following "naming schemes" have been defined (which may be chosen at system boot-up time via
the <varname>net.naming-scheme=</varname> kernel command line switch, see above):</para>
the <varname>net.naming_scheme=</varname> kernel command line switch, see above):</para>
<variablelist>
<varlistentry>

View file

@ -1624,7 +1624,7 @@
to make sure they run before the stamp file's modification time gets reset indicating a completed
update.</para>
<para>If the <varname>systemd.condition-needs-update=</varname> option is specified on the kernel
<para>If the <varname>systemd.condition_needs_update=</varname> option is specified on the kernel
command line (taking a boolean), it will override the result of this condition check, taking
precedence over any file modification time checks. If the kernel command line option is used,
<filename>systemd-update-done.service</filename> will not have immediate effect on any following
@ -1673,7 +1673,7 @@
<varname>Wants=</varname>. This ensures that in a case of an aborted first boot, these units will
be re-run during the next system startup.</para>
<para>If the <varname>systemd.condition-first-boot=</varname> option is specified on the kernel
<para>If the <varname>systemd.condition_first_boot=</varname> option is specified on the kernel
command line (taking a boolean), it will override the result of this condition check, taking
precedence over <filename>/etc/machine-id</filename> existence checks.</para>

View file

@ -2757,8 +2757,8 @@ summary({
'default LLMNR mode' : default_llmnr,
'default DNS servers' : dns_servers.split(' '),
'default NTP servers' : ntp_servers.split(' '),
'default net.naming-scheme value' : default_net_naming_scheme,
'default KillUserProcesses value' : kill_user_processes,
'default net.naming_scheme= value': default_net_naming_scheme,
'default KillUserProcesses= value': kill_user_processes,
'default locale' : default_locale,
'default nspawn locale' : nspawn_locale,
'default status unit format' : status_unit_format_default,

View file

@ -230,9 +230,9 @@ option('default-hierarchy', type : 'combo',
choices : ['legacy', 'hybrid', 'unified'], deprecated : true,
description : '''This option is deprecated and will be removed in a future release''')
option('extra-net-naming-schemes', type : 'string',
description : 'comma-separated list of extra net.naming-scheme= definitions')
description : 'comma-separated list of extra net.naming_scheme= definitions')
option('default-net-naming-scheme', type : 'string', value : 'latest',
description : 'default net.naming-scheme= value')
description : 'default net.naming_scheme= value')
option('status-unit-format-default', type : 'combo',
choices : ['auto', 'description', 'name', 'combined'],
description : 'use unit name or description in messages by default')

View file

@ -123,9 +123,9 @@ static int run(int argc, char *argv[]) {
log_setup();
r = proc_cmdline_get_bool("systemd.battery-check", PROC_CMDLINE_STRIP_RD_PREFIX|PROC_CMDLINE_TRUE_WHEN_MISSING, &arg_doit);
r = proc_cmdline_get_bool("systemd.battery_check", PROC_CMDLINE_STRIP_RD_PREFIX|PROC_CMDLINE_TRUE_WHEN_MISSING, &arg_doit);
if (r < 0)
log_warning_errno(r, "Failed to parse systemd.battery-check= kernel command line option, ignoring: %m");
log_warning_errno(r, "Failed to parse systemd.battery_check= kernel command line option, ignoring: %m");
r = parse_argv(argc, argv);
if (r <= 0)

View file

@ -2202,9 +2202,9 @@ static void log_execution_mode(bool *ret_first_boot) {
/* Let's check whether we are in first boot. First, check if an override was
* specified on the kernel command line. If yes, we honour that. */
r = proc_cmdline_get_bool("systemd.condition-first-boot", /* flags = */ 0, &first_boot);
r = proc_cmdline_get_bool("systemd.condition_first_boot", /* flags = */ 0, &first_boot);
if (r < 0)
log_debug_errno(r, "Failed to parse systemd.condition-first-boot= kernel command line argument, ignoring: %m");
log_debug_errno(r, "Failed to parse systemd.condition_first_boot= kernel command line argument, ignoring: %m");
if (r > 0)
log_full(first_boot ? LOG_INFO : LOG_DEBUG,

View file

@ -27,7 +27,7 @@
# .link
ifname=<interface>:<MAC>
net.ifname-policy=policy1[,policy2,...][,<MAC>] # This is an original rule, not supported by other tools.
net.ifname_policy=policy1[,policy2,...][,<MAC>] # This is an original rule, not supported by other tools.
# .netdev
vlan=<vlanname>:<phydevice>
@ -1114,7 +1114,7 @@ static int parse_cmdline_ifname_policy(Context *context, const char *key, const
assert(context);
assert(key);
/* net.ifname-policy=policy1[,policy2,...][,<MAC>] */
/* net.ifname_policy=policy1[,policy2,...][,<MAC>] */
if (proc_cmdline_value_missing(key, value))
return -EINVAL;
@ -1172,23 +1172,23 @@ int parse_cmdline_item(const char *key, const char *value, void *data) {
assert(key);
if (streq(key, "ip"))
if (proc_cmdline_key_streq(key, "ip"))
return parse_cmdline_ip(context, key, value);
if (streq(key, "rd.route"))
if (proc_cmdline_key_streq(key, "rd.route"))
return parse_cmdline_rd_route(context, key, value);
if (streq(key, "nameserver"))
if (proc_cmdline_key_streq(key, "nameserver"))
return parse_cmdline_nameserver(context, key, value);
if (streq(key, "rd.peerdns"))
if (proc_cmdline_key_streq(key, "rd.peerdns"))
return parse_cmdline_rd_peerdns(context, key, value);
if (streq(key, "vlan"))
if (proc_cmdline_key_streq(key, "vlan"))
return parse_cmdline_vlan(context, key, value);
if (streq(key, "bridge"))
if (proc_cmdline_key_streq(key, "bridge"))
return parse_cmdline_bridge(context, key, value);
if (streq(key, "bond"))
if (proc_cmdline_key_streq(key, "bond"))
return parse_cmdline_bond(context, key, value);
if (streq(key, "ifname"))
if (proc_cmdline_key_streq(key, "ifname"))
return parse_cmdline_ifname(context, key, value);
if (streq(key, "net.ifname-policy"))
if (proc_cmdline_key_streq(key, "net.ifname_policy"))
return parse_cmdline_ifname_policy(context, key, value);
return 0;

View file

@ -751,9 +751,9 @@ static int condition_test_needs_update(Condition *c, char **env) {
assert(c->parameter);
assert(c->type == CONDITION_NEEDS_UPDATE);
r = proc_cmdline_get_bool("systemd.condition-needs-update", /* flags = */ 0, &b);
r = proc_cmdline_get_bool("systemd.condition_needs_update", /* flags = */ 0, &b);
if (r < 0)
log_debug_errno(r, "Failed to parse systemd.condition-needs-update= kernel command line argument, ignoring: %m");
log_debug_errno(r, "Failed to parse systemd.condition_needs_update= kernel command line argument, ignoring: %m");
if (r > 0)
return b;

View file

@ -53,7 +53,7 @@ const NamingScheme* naming_scheme(void) {
return cache;
/* Acquire setting from the kernel command line */
(void) proc_cmdline_get_key("net.naming-scheme", 0, &buffer);
(void) proc_cmdline_get_key("net.naming_scheme", 0, &buffer);
/* Also acquire it from an env var */
e = getenv("NET_NAMING_SCHEME");

View file

@ -20,10 +20,10 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
assert(key);
if (proc_cmdline_key_streq(key, "systemd.tpm2-wait")) {
if (proc_cmdline_key_streq(key, "systemd.tpm2_wait")) {
r = value ? parse_boolean(value) : 1;
if (r < 0)
log_warning_errno(r, "Failed to parse 'systemd.tpm2-wait' kernel command line argument, ignoring: %s", value);
log_warning_errno(r, "Failed to parse 'systemd.tpm2_wait=' kernel command line argument, ignoring: %s", value);
else
arg_tpm2_wait = r;
}

View file

@ -12,7 +12,7 @@ Description=Check battery level during early boot
Documentation=man:systemd-battery-check.service(8)
ConditionVirtualization=no
ConditionDirectoryNotEmpty=/sys/class/power_supply/
ConditionKernelCommandLine=!systemd.battery-check=0
ConditionKernelCommandLine=!systemd.battery_check=0
AssertPathExists=/etc/initrd-release
DefaultDependencies=no
After=plymouth-start.service