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.
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.
- 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
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
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.
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
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.
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.
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.
<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
<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>
</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
</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
</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
</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
<xi:include href="version-info.xml" xpointer="v254"/></listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><varname>systemd.battery_check=</varname></term>
+
+ <listitem><para>Accepts a boolean argument. If false the boot-time battery charge check implemented
+ by
+ <citerefentry><refentrytitle>systemd-battery-check.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ is disabled.</para>
+
+ <xi:include href="version-info.xml" xpointer="v254"/></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ifname=</varname></term>
+ <term><varname>net.ifname_policy=</varname></term>
+
+ <listitem><para>Controls interface naming policies, implemented by
+ <citerefentry><refentrytitle>systemd-network-generator.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+
+ <xi:include href="version-info.xml" xpointer="v245"/></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>systemd.tpm2_wait=</varname></term>
+
+ <listitem><para>Controls whether to wait for a TPM2 device at boot, implemented by
+ <citerefentry><refentrytitle>systemd-tpm2-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+
+ <xi:include href="version-info.xml" xpointer="v256"/></listitem>
+ </varlistentry>
+
</variablelist>
</refsect1>
<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
<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>
</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
</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
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]
<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>
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>
<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>
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
<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>
'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,
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')
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)
/* 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,
# .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>
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;
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;
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;
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");
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;
}
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