commit dracut for openSUSE:Factory
Hello community,
here is the log from the commit of package dracut for openSUSE:Factory checked in at 2019-05-31 09:41:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
and /work/SRC/openSUSE:Factory/.dracut.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dracut"
Fri May 31 09:41:33 2019 rev:139 rq: version:044.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes 2019-05-28 09:40:43.993896426 +0200
+++ /work/SRC/openSUSE:Factory/.dracut.new.5148/dracut.changes 2019-05-31 09:42:01.702401574 +0200
@@ -2,229 +1,0 @@
-Sat May 25 19:40:09 UTC 2019 - Daniel Molkentin
From e4a8408698ea1a4d77b1c6d9ba76a7eab93b024a Mon Sep 17 00:00:00 2001 From: Pawel Wieczorkiewicz
Date: Tue, 8 Apr 2014 08:50:55 +0200 Subject: 40network: Fix race condition when wait for networks
If no network related params are specific, but rd.neednet=1 is set,
the default initqueue action is to wait until one of the network
interfaces is marked as setup properly.
This also help with initqueue's race condition when the network interface
shows upd late
References: bnc#866771
Signed-off-by: Hannes Reinecke
From a9a919e44e0ce5cc5bc4167889a31d87626058e4 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Wed, 4 Jun 2014 12:04:10 +0200 Subject: 40network: always start netroot in ifup.sh
It's totally irrelevant how the network is configured when
trying to setup netroot. It only matters if it could be
configured at all.
So change the logic the check for correct network setup
and then start netroot.
References: bnc#881235
Signed-off-by: Hannes Reinecke
From 3b7df07e27efd2ef2df4d9d40253ee8185eb4152 Mon Sep 17 00:00:00 2001 From: Pavel Wieczorkiewicz
Date: Mon, 7 Apr 2014 16:26:57 +0200 Subject: 40network: replace dhclient with wickedd-dhcp-supplicant
SLES12 is using wickedd, so we need to replace dhclient with
wickedd-dhcp-supplicant.
References: bnc#866771
Signed-off-by: Hannes Reinecke
From 7995f23a106e28afa0204b5eca68671cb514b1d9 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Tue, 21 Jan 2014 14:32:09 +0100 Subject: [PATCH] Add new s390x-specific rule files
With the new s390x configuration tool the naming of the udev
rules files have changed. So add these to the existing ones
to be compatible with existing and new installations.
References: bnc#856585
Signed-off-by: Hannes Reinecke
From afc08d7bbee93db0b81d20aef00f538fde3209e3 Mon Sep 17 00:00:00 2001 From: Pawel Wieczorkiewicz
Date: Tue, 8 Apr 2014 08:48:27 +0200 Subject: 45ifcfg: use distro-specific scripts
Detect the system flavor and write the ifcfg files accordingly.
- Do not move ifcfg to -suse and -redhat files to avoid re-diffing after
each upgrade. Handle this in the spec file and a separate
write-ifcfg-suse.sh source file
- Also revert upstream commit f34e1d6, to not forcibly include 45ifcfg
and thus the whole network stack (bsc#960669)
Signed-off-by: Hannes Reinecke
From 8792c2c46d3841ea11b9bd30e388eaeb64549fdc Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Thu, 5 Dec 2013 09:29:28 +0100 Subject: [PATCH] 00warpclock: Set correct timezone
Add module for setting correct timezone.
References: bnc#830060
Signed-off-by: Hannes Reinecke
From c4a980a8fa7a2a9d5e25063b0d5b5070e59aa2cc Mon Sep 17 00:00:00 2001 From: Thomas Renninger
Date: Tue, 8 Apr 2014 08:53:59 +0200 Subject: [PATCH] 95dcssblk: Add new module for DCSS block devices
Add s390 dcssblk driver and introduce rd.dcssblk= to pass mounts
that should get activated at initrd stage.
References: FATE#308263
Signed-off-by: Hannes Reinecke
From 3a951a971fdaa4b51f5375d9b77af0db3c67414e Mon Sep 17 00:00:00 2001 From: Pawel Wieczorkiewicz
Date: Tue, 27 May 2014 11:48:43 +0200 Subject: 40network: Only enable network interfaces if explicitly requested
Currently all available network interfaces are started whenever
40network is pulled in. This causes massive delays during bootup.
This patch modifies the behaviour to start interfaces only if
rd.neednet is specified.
References: bnc#879038
Signed-off-by: Pawel Wieczorkiewicz
From a15945f1cd7cac0ad472807ca7979726dd34288b Mon Sep 17 00:00:00 2001 From: Marcus Meissner
Date: Mon, 2 Jun 2014 15:02:04 +0200 Subject: [PATCH] 01fips: fixup loading issues
Adjust the FIPS module list to avoid loading issues
References: bnc#875855
Signed-off-by: Marcus Meissner
From b53bc39cb35dda350b0629036a3eb87d90debe56 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Thu, 12 Jun 2014 09:26:20 +0200 Subject: 01fips: Include some more hmacs
Include the several hmacs needed for FIPS integrity checking
of cryptsetup, libgcrypt, libfipscheck1. Also add the openssl
HMACs too as someone else seems to use those too.
Signed-off-by: Marcus Meissner
From 5473e4b5d8d9bbf9bd995dff815647de0ed1b30b Mon Sep 17 00:00:00 2001 From: Jeff Mahoney
Date: Thu, 12 Jun 2014 09:30:01 +0200 Subject: dracut: add warning when including unsupported modules
With self-built kernels (often used for debugging by both internal and
external development), it's a common mistake to not set up
Module.supported properly. As a result, modules can end up without the
supported tag. "make install" will happily build an initramfs, via
dracut, that will not boot due to the kernel refusing to load the
unsupported modules.
This patch adds a --check-supported option to check whether all modules
added to the initramfs are marked supported and warn if they are not.
It will not cause the initramfs creation to fail.
The option is intended to be called via /sbin/installkernel, which will
check to see if the kernel has CONFIG_SUSE_KERNEL_SUPPORTED before using
the option.
Signed-off-by: Jeff Mahoney
From 1202041ec3f7b2d8dd58999e72a309c9fba9069f Mon Sep 17 00:00:00 2001 From: Thomas Renninger
Date: Wed, 4 Jun 2014 12:56:50 +0200 Subject: 99suse: Add SUSE-specific initrd parsing
Add a module to implement mkinitrd-compatible kernel parameter parsing
Signed-off-by: Thomas Renninger
From 105e96464320c8acae22ee730717e071e156aa0b Mon Sep 17 00:00:00 2001 From: Pawel Wieczorkiewicz
Date: Wed, 4 Jun 2014 13:00:06 +0200 Subject: 45ifcfg: Add SUSE-specific write-ifcfg file
Signed-off-by: Pawel Wieczorkiewicz
From 7104ea8c873ef89c9aacdd12a542bc71fc738aaa Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Wed, 4 Jun 2014 13:12:31 +0200 Subject: 45ifcfg: Fixup error message in write-ifcfg-suse
A fix was missing in write-ifcfg-suse.sh, cause dracut to issue
a warning for a non-existent file.
References: bnc#881286
Signed-off-by: Hannes Reinecke
From 1ab0a485f8e3a3b0ba62ea2f920fd3457039e7f1 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Wed, 18 Jun 2014 15:10:46 +0200 Subject: 95dasd_rules: enable parsing of rd.dasd= commandline parameter
Dracut documents the 'rd.dasd=' parameter, so we should be
enabling the usage of this parameter, too.
Signed-off-by: Hannes Reinecke
From 7a725ea4a1cb606edd3f060f46818250f2a82a1a Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Wed, 18 Jun 2014 15:17:21 +0200 Subject: Correctly set cio_ignore for dynamic s390 rules
When converting 'rd.zfcp' and 'rd.dasd' into udev rules we
need to make sure the enable those device ids via cio_ignore,
otherwise the rules might never be called.
Signed-off-by: Hannes Reinecke
From b302dd2a53864bdd4ff271275fa244f654cb92ca Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Thu, 26 Jun 2014 10:49:03 +0200 Subject: 95dasd_rules: fixup rd.dasd parsing
There were some errors when rd.dasd parsing, resulting in the
device never to be activated. And we should check for
cio_ignore even if a udev rules has been found.
Signed-off-by: Hannes Reinecke
From 3e2e526a74cdad48d40a1ec58dac9f709d8fef0e Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Thu, 26 Jun 2014 10:50:43 +0200 Subject: 95dasd_rules: print out 'rd.dasd' commandline
From 95dc2742b9304029068a2b320e011bdfcc4087ea Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Thu, 26 Jun 2014 10:53:01 +0200 Subject: 95dasd_mod: do not set module parameters if dasd_cio_free is not
When a DASD is found to be required for the rootfs we should
be printing out a 'rd.dasd' commandline parameter. This not
only enables us to correctly enable the device with cio_ignore,
we can also inspect the resulting initrd to figure out which
devices are required to mount the rootfs.
Signed-off-by: Hannes Reinecke
From 90b21dafd469ce4a8ac56944ce825f90c0782b16 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Thu, 26 Jun 2014 11:52:29 +0200 Subject: 95zfcp_rules: Fixup rd.zfcp parsing
There were some errors when parsing rd.zfcp, causing the device
never to be activated.
Signed-off-by: Hannes Reinecke
From 3d918eb5be673f243dc75b358a35e1ed307f0ea5 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Thu, 26 Jun 2014 13:44:05 +0200 Subject: 95zfcp_rules: print out rd.zfcp commandline parameter
When called with '--hostonly-cmdline' the module should print
out the configuration.
Signed-off-by: Hannes Reinecke
From 754bda4bcf9698837802b31bd74061702edf6c8c Mon Sep 17 00:00:00 2001 From: Hannes Reinecke
Date: Thu, 26 Jun 2014 14:01:33 +0200 Subject: 95zfcp_rules: Auto-generate udev rule for ipl device
We should auto-generate an udev rule for the ipl device; it'll be
enabled anyway.
Signed-off-by: Hannes Reinecke From 96af5adcdc4ec9bdbaff4dc053f415060eee301a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke We should be generating a udev rule for the ipl device; it'll
be enabled anyway.
Signed-off-by: Hannes Reinecke From 78329f4df2afc9fae11ea30dd11839d956d4af08 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke Add new module to update the dracut commandline values
during booting with the values found in the file
dracut-cmdline.conf on the device specified by
rd.zipl.
Signed-off-by: Hannes Reinecke From 16a940a8fb1fe6697474dc4abb1ce5b5ee281068 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke wicked requires the /var/lib/wicked directory to be present.
This is just a work-around; it should be fixed in wicked itself.
References: bnc#885141
Signed-off-by: Hannes Reinecke From dccbc0fc7f1b814ad8a03f380a31bed2c9d86a9b Mon Sep 17 00:00:00 2001
From: Thomas Renninger To get installed it must not have systemd included in initramfs which is
an unsupported scenario for SUSE.
This gets also rid of the error in its check function.
Signed-off-by: Thomas Renninger From edfae68d9a9af81cd1ff230b72b9c320d4c58e82 Mon Sep 17 00:00:00 2001
From: Thomas Renninger all others should not add biosdevname on purpose. Do not complain about it.
Signed-off-by: Thomas Renninger From a345cf3c3d7c15cfca5735c531f825062235c135 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke To simplify static configurate we should be pulling in the
existing 'ifcfg' files when running in hostonly mode.
With that we can implement the shortcut 'ip=<ifname>:static'
to use the existing configuration from the ifcfg file.
Signed-off-by: Hannes Reinecke From b723f5fabf7ca5396fbd451e8b2d6ee6b82888c8 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke Signed-off-by: Hannes Reinecke From 0d9482bf68e9d8f1c9b13d4beb9cecc660dda017 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke The 'rd.zipl' command was only printed and never stored in the
initramfs itself.
Signed-off-by: Hannes Reinecke From 0299c9f31fb0c5794747a6a7f62c32abd9a49754 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke 'for_each_host_dev_and_slaves' would stop at the first found
device, so the cmdline() call would never list all required
devices. Use 'for_each_host_dev_and_slaves_all' instead and
filter out duplicates.
Signed-off-by: Hannes Reinecke From 0be3d022964d54e8ab769ebed4006ba8b8d65078 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke 'for_each_host_dev_and_slaves' would stop at the first found
device, so the cmdline() call would never list all required
devices. Use 'for_each_host_dev_and_slaves_all' instead and
filter out duplicates.
Signed-off-by: Hannes Reinecke From 488cf7ad86eee4cd9138d5e58c1baefeeb5e8c98 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke initqueue will only work with executable scripts, so we need to
mark it as such.
Signed-off-by: Hannes Reinecke From 12131d99811c9829ed1c19e164f2ef22634ba4e5 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke 91zipl tries to read the filesystem for the /boot/zipl device.
On SLE12, however, the ext2 and ext3 filesystems are handled
by the ext4 module.
And due to bug#886839 no error is registered and booting fails.
So implement a band-aid to translate it into ext4.
Signed-off-by: Hannes Reinecke From 941b55f8d9d50b3ba20ba0a2bb64c7509d38ee72 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke All scripts need to be marked as executable, otherwise dracut
won't be running them.
References: bnc#887010
Signed-off-by: Hannes Reinecke From 22c039c79eb496af10fbc811854e07822b063616 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke For creating dynamic udev rules parse-dasd.sh look for the device
type in sysfs, which of course does not exist if cio_ignore is
active. So first enable the device before checking.
Signed-off-by: Hannes Reinecke From d4245680ba1cd00a15b86f5ccecd4b8be124f6e5 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke For creating dynamic udev rules parse-dasd.sh look for the device
type in sysfs, which of course does not exist if cio_ignore is
active. So first enable the device before checking.
Signed-off-by: Hannes Reinecke From 05bee849390ba39a5a441cbcc921634ddc298232 Mon Sep 17 00:00:00 2001
From: Thomas Renninger In lsinitrd and /usr/bin/dracut
bnc#882306
Signed-off-by: Thomas Renninger From 9e0bf05cd6e0a0ff50502dbce31a8d5031219fe7 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke module_setup.sh has a typo preventing it from saving the correct
dracut commandline.
References: bnc#887582
Signed-off-by: Hannes Reinecke From de870b8879974927873264010b6294a70b6c7980 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke IPv6 addresses should be specified in brackets so that the
ip= scanning code doesn't get confused.
References: bnc#887542
Signed-off-by: Hannes Reinecke From de3ab1c75c5f97a9935db4ce9f0cba332e5ca1ee Mon Sep 17 00:00:00 2001
From: Hannes Reinecke The 'mask' parameter is used for both, the (IPv4) netmask and
the prefix length. As both are in different format separate them
out into 'mask' for the netmask and 'prefix' for the prefix length.
And also prefer the use of 'prefix' where possible to ease
calculation and better IPv6 support.
References: bnc#887542
Signed-off-by: Hannes Reinecke From 58f937144d9f206c06052791456599e48c37c417 Mon Sep 17 00:00:00 2001
From: Marcus Meissner References: bnc#875855
Signed-off-by: Marcus Meissner From 68b8183fc65c2ff1c7d178e782ea5bff7be74d70 Mon Sep 17 00:00:00 2001
From: Thomas Renninger Signed-off-by: Thomas Renninger From 520f0e9185774956e5739841ce87474fcee52594 Mon Sep 17 00:00:00 2001
From: Thomas Renninger bnc#887906
Signed-off-by: Thomas Renninger From fc03504435d8bf5d0a31b8c566c2e783fbb96ec6 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke If an IP address is given with prefix length ifup should be
parsing that correctly. And we should assume a prefix length
of /64 for IPv6 resp /24 for IPv4 if none were given.
References: bnc#880108
Signed-off-by: Hannes Reinecke From 6fd2c01a1cd2dcbd7d2fc3bbe6e62c7d8336bf24 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke The static network configuration was broken; the 'gateway' was
written as the complete 'ip' command line, but simply sourced
later on.
The patch fixes the gateway registration that the '.gw' file
holds entire 'ip route' command lines, which just needs to
be evaluated later on.
Signed-off-by: Hannes Reinecke From 114aadff326cb6ac63d2b3926fafe944b1670a62 Mon Sep 17 00:00:00 2001
From: Julian Wolf Signed-off-by: Julian Wolf From 6a85f188d671723ad76bb729307c12e89199b7bd Mon Sep 17 00:00:00 2001
From: Marcus Meissner Signed-off-by: Thomas Renninger From d74cd280562cc316cbf94db71cb30fd935d26b8b Mon Sep 17 00:00:00 2001
From: Marcus Meissner References: bsc#914126
Signed-off-by: Marcus Meissner From 2477f53068b4a59af89b2ad89dd2fa174eab7db3 Mon Sep 17 00:00:00 2001
From: Marcus Meissner Adjust the kernel module list to match the SLES12 SP2 kernel.
References: bsc#976577
Signed-off-by: Marcus Meissner From fac3fb787b0a74cf8d9d32939dd6d6831342a25d Mon Sep 17 00:00:00 2001
From: Julian Wolf Signed-off-by: Julian Wolf From 7f4dea242398cc369ff3fecd599faa00d81a522c Mon Sep 17 00:00:00 2001
From: Julian Wolf blkid is not available when this function is called, so block_uuid.map is put into
the initrd, mapping block devices from /etc/crypttab to UUIDs.
This fixes a bug where udev rules were created by mistake as crypttab_contains()
returned false for devices specified by path in /etc/crypttab which resulted in
error messages during boot.
Signed-off-by: Julian Wolf From 4b0e5841ce7dbeca5186e0d47f8835b00007cd6e Mon Sep 17 00:00:00 2001
From: Hannes Reinecke 'static' configuration means 'apply the settings from the ifcfg file'.
Which might be either static or dhcp.
And for multiple configurations the first configuration can be
either dhcp or static; only the following configurations must
be static.
References: bnc#892801
Signed-off-by: Hannes Reinecke From b5a5fb4486dee09287df825ecd1d2f8b76a98682 Mon Sep 17 00:00:00 2001
From: Martin Wilck Signed-off-by: Thomas Renninger From 7067073ca16b10749edd6a508e3c4b1c38c3c7c2 Mon Sep 17 00:00:00 2001
From: Thomas Renninger bnc#892187
Signed-off-by: Thomas Renninger From 75faba5ea84fe53df7d3ca3e4f4b6cf390c824bb Mon Sep 17 00:00:00 2001
From: Jan Loeser bnc#895331
Fixed-by: Fabian Vogt From 2a73a8c956bd3b34f19cadd17b44303d8c104a53 Mon Sep 17 00:00:00 2001
From: Thomas Renninger bnc#896464, bnc#896259
Signed-off-by: Thomas Renninger From 61d345654fbdd895a406a5a7517f01a7c984a7ed Mon Sep 17 00:00:00 2001
From: Hannes Reinecke When NPIV is enabled and the allow_lun_scan parameter is set to 'Y'
the HBA will initiate a LUN scan automatically, so there is no need
to specify the WWPN and LUN number manually.
References: bsc#964456
Signed-off-by: Hannes Reinecke From b4216546ff3254f2ca21c6b29c745e1bfd4956cc Mon Sep 17 00:00:00 2001
From: Pawel Wieczorkiewicz - Request ipv6 lease in proper mode: auto when auto6+dhcp6 requested
otherwise managed mode
- wait for DAD results in case of ipv6
Signed-off-by: Pawel Wieczorkiewicz From 4ef054c0510f24e8652726674461833a33643b26 Mon Sep 17 00:00:00 2001
From: Thomas Renninger bnc#897972
Author: Werner Fink From 76396977ee19d97697226bda13de007030433854 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= dracut-shutdown.service invokes dracut-initramfs-restore script which
will never work in openSUSE because initrd images are named initrd not
initramfs.
---
dracut-initramfs-restore.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: dracut-042/dracut-initramfs-restore.sh
===================================================================
--- dracut-042.orig/dracut-initramfs-restore.sh 2015-06-11 17:39:47.000000000 +0200
+++ dracut-042/dracut-initramfs-restore.sh 2015-06-24 18:02:34.238788260 +0200
@@ -19,7 +19,7 @@ mount -o ro /boot &>/dev/null
if [[ $MACHINE_ID ]] && [[ -d /boot/${MACHINE_ID} || -L /boot/${MACHINE_ID} ]] ; then
IMG="/boot/${MACHINE_ID}/${KERNEL_VERSION}/initrd"
fi
-[[ -f $IMG ]] || IMG="/boot/initramfs-${KERNEL_VERSION}.img"
+[[ -f $IMG ]] || IMG="/boot/initrd-${KERNEL_VERSION}"
cd /run/initramfs
++++++ 0168-remove_plymouth_logo_file.patch ++++++ From 280d52085fe2876bc08ce1dcdbf1522f8861801c Mon Sep 17 00:00:00 2001
From: Shawn W Dunn Remove PLYMOUTH_LOGO_FILE from plymouth-populate-initrd.sh
References: bnc#910952
Signed-off-by: Shawn W Dunn From b27ca9cfcb5df2066e87f673cb5c060bcf4016fa Mon Sep 17 00:00:00 2001
From: Pawel Wieczorkiewicz References: boo#959803
Signed-off-by: Pawel Wieczorkiewicz From e5d14a8adbfc875517e5d873bea18bf9d997b91f Mon Sep 17 00:00:00 2001
From: Thomas Renninger References: bsc#953361
Signed-off-by: Thomas Renninger From 5f56e6a34ddbc27eee6f7fbe5776bd23629b2e4d Mon Sep 17 00:00:00 2001
From: Fabian Vogt References: bsc#943312, bsc#932981
Signed-off-by: Fabian Vogt From 11d6560d7bbd8a4c4610a39c0985e50d728920fb Mon Sep 17 00:00:00 2001
From: Fabian Vogt - dracut replaced every instance of "-i" in the cmdline,
even if it was part of a kernel image name, e.g. "vmlinuz-i"
- Fixes boo#908452
Signed-off-by: Fabian Vogt From d774a6f49771b9f55de2956c3c0038a7655b6e94 Mon Sep 17 00:00:00 2001
From: Fabian Vogt - Caused by add_drivers+=" " in dracut.conf (bsc#923116)
Signed-off-by: Fabian Vogt From c426dc773fe654aed309375e20e398e9299ca34e Mon Sep 17 00:00:00 2001
From: Thomas Blume iscsistart allows for a single connection only, and offers no means
or terminating or re-establishing another one.
So replace iscsistart with iscsiadm to allow several connection for
multipath booting and also to ease maintenance in case of error.
Signed-off-by: Thomas Blume From 3944cdfd4d99c3d7cd8e801f786e75ed6d254e51 Mon Sep 17 00:00:00 2001
From: Thomas Renninger References: bsc#951003
Signed-off-by: Thomas Renninger From 4287dca195e2435c7ab20265db6225f97b576fd3 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke qla4xxx can store boot sessions in flash, which will then
not show up with iBFT. These boot sesssions will be maintained
by the driver; no specific network configuration is required
here. So suppress network setup for these cases.
References: bsc#935320
Signed-off-by: Hannes Reinecke From c56c855754914283bb930ef1a2b2dd5e8d5a6f25 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke The qla4xxx driver can run with or without open-iscsi support,
depending on the setting of the 'ql4xdisablesysfsboot' module
parameter.
When the parameter is set to '0', dracut needs to call
'iscsiadm -m fw' to trigger iSCSI login, so we need to set
the 'rd.iscsi.firmware' dracut variable. But this will then
fail if the parameter is set to '1', as in these cases the
list of firmware targets is empty.
To cover both scenarios this patch reshuffles 'handle_firmware'
in iscsiroot.sh to continue if iscsiadm -m fw fails but iscsi
sessions are present.
References: bsc#951003
Signed-off-by: Hannes Reinecke From fbd1ae50f37d4d904dc69844de869ff2daf02ded Mon Sep 17 00:00:00 2001
From: Hannes Reinecke rd.iscsi.waitnet should default to false in order for dracut to
wait for any network devices to come up.
References: bsc#997598
Signed-off-by: Thomas Blume From 796000a6afd2fa20dc40eae053ee71480b16b49c Mon Sep 17 00:00:00 2001
From: Hannes Reinecke References: bsc#930019
If rootfs is on multipath, but platform does not have an /etc/multipath.conf
file which is not urgently needed, they system will not boot, due to:
multipathd is not started and rootfs and swap are not found:
systemctl status multipathd.service
* multipathd.service - Device-Mapper Multipath Device Controller
Loaded: loaded (/usr/lib/systemd/system/multipathd.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Condition: start condition failed at Thu 2015-05-07 11:49:11 CEST; 7min ago
ConditionPathExists=/etc/multipath.conf was not met
and exit to dracut shell.
---
modules.d/90multipath/multipathd.service | 1 -
1 file changed, 1 deletion(-)
diff --git a/modules.d/90multipath/multipathd.service b/modules.d/90multipath/multipathd.service
index b64b02c..f7bc65f 100644
--- a/modules.d/90multipath/multipathd.service
+++ b/modules.d/90multipath/multipathd.service
@@ -6,7 +6,6 @@ Conflicts=shutdown.target
ConditionKernelCommandLine=!nompath
ConditionKernelCommandLine=!rd.multipath=0
ConditionKernelCommandLine=!rd_NO_MULTIPATH
-ConditionPathExists=/etc/multipath.conf
[Service]
Type=simple
--
2.6.6
++++++ 0201-fix_nfs_with_ip_instead_of_hostname.patch ++++++ From 7b4b832aded41e25cebbb8807b8e60bf58fd122e Mon Sep 17 00:00:00 2001
From: Thomas Renninger Signed-off-by: Thomas Renninger From a7996e5e33c0456c96764dfb1ab35c0a59134ccc Mon Sep 17 00:00:00 2001
From: Fabian Vogt - Fixes bsc#935563
Signed-off-by: Fabian Vogt From c5fd4748ecff45dfaf707af30b649153ae88ea20 Mon Sep 17 00:00:00 2001
From: Fabian Vogt References: boo#965477
fcoe-uefi gets included by default on EFI systems,
as it does not do the same check that fcoe does,
therefore needlessly pulling in network modules.
This patch copies the check from fcoe to fcoe-uefi.
---
modules.d/95fcoe-uefi/module-setup.sh | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/modules.d/95fcoe-uefi/module-setup.sh b/modules.d/95fcoe-uefi/module-setup.sh
index 5d8477c..66af804 100755
--- a/modules.d/95fcoe-uefi/module-setup.sh
+++ b/modules.d/95fcoe-uefi/module-setup.sh
@@ -4,6 +4,11 @@
check() {
[[ $hostonly ]] || [[ $mount_needs ]] && {
[ -d /sys/firmware/efi ] || return 255
+ for c in /sys/bus/fcoe/devices/ctlr_* ; do
+ [ -L $c ] || continue
+ fcoe_ctlr=$c
+ done
+ [ -z "$fcoe_ctlr" ] && return 255
}
require_binaries dcbtool fipvlan lldpad ip readlink || return 1
return 0
--
2.6.6
++++++ 0212-fcoe_reorder_init_path.patch ++++++ From 77b3a15c6673dfce2dbd76cceffb7d5d4819c694 Mon Sep 17 00:00:00 2001
From: Johannes Thumshirn References: bsc#982588
Signed-off-by: Johannes Thumshirn From 234283235ba52a50b84b396b85ff8cf6e16d80a0 Mon Sep 17 00:00:00 2001
From: Fabian Vogt For MAP=lt, dracut would choose lt.std.map instead of lt.map.
References: bsc#942896
---
modules.d/10i18n/module-setup.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index 4fd0b26..e5bf5eb 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -30,8 +30,9 @@ install() {
# This is from 10redhat-i18n.
findkeymap () {
local MAP=$1
+ local MAPNAME=${1%.map*}
[[ ! -f $MAP ]] && \
- MAP=$(find ${kbddir}/keymaps -type f -name $MAP -o -name $MAP.\* | head -n1)
+ MAP=$(find ${kbddir}/keymaps -type f -name ${MAPNAME} -o -name ${MAPNAME}.map -o -name ${MAPNAME}.map.\* | head -n1)
[[ " $KEYMAPS " = *" $MAP "* ]] && return
KEYMAPS="$KEYMAPS $MAP"
case $MAP in
--
2.6.6
++++++ 0214-95fcoe-Do-not-overwrite-FCoE-configuration.patch ++++++ From 581b48e2e171f1afb01b89a9a4089400d9b20829 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke If the installation already has a FCoE configuration we should
not attempt to overwrite it but rather use the pre-defined
configuration.
References: bsc#993861
Signed-off-by: Hannes Reinecke From 46736da0be28e579b53ac3c0dd982f3765d48f4a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke The file '/etc/hba.conf' got dropped by an updated fcoe-utils
package, so do not complain if it doesn't exist.
References: bsc#980539
Signed-off-by: Hannes Reinecke From 4d9ec023b6c4a20cc7ffc6ea4ccf86b008a3cbcf Mon Sep 17 00:00:00 2001
From: Hannes Reinecke From 77a524b3659529b14abfdb574094b92216b59af5 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke When lldpad is not running, any calls to 'dcbtool' will be printing
out a warning. As it perfectly legit to have FCoE running without
DCB we should not be printing out the error.
Signed-off-by: Hannes Reinecke From 47831cf386dd4d49c2b56f3bbbaf719348b9862f Mon Sep 17 00:00:00 2001
From: Hannes Reinecke We are using persistent interface names even for kernel device
names on SLES, so we should be removing the warning.
References: bsc#995284
Signed-off-by: Hannes Reinecke From 4f19de16df2746b0b742bfbecfb493728a150c86 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke Now that we are using persistent network names we can switch
to using the interface names when specifying the fcoe configuration.
With that we can print the fcoe configuration only once.
Signed-off-by: Hannes Reinecke From fdbb581a9df74db58c306141aca24dc824e72dec Mon Sep 17 00:00:00 2001
From: Hannes Reinecke fcoemon is well capable of figuring out whether a vlan should
be used, so there's no need to disable the AUTO_VLAN feature.
References: bsc#995019
Signed-off-by: Hannes Reinecke From 2a5b570b7a6020d63ab6c4cbdb9e926d88b32639 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke We should be disabling the FCoE connection (which triggers sending
a LOGO internally) to logout from the target; this resets the target
and will avoid hitting a busy condition during reboots.
References: bsc#994860
Signed-off-by: Hannes Reinecke From 885b133ecd7913990449e7598526d0965ebc3458 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke When calling the shutdown script we need to take care of traversing
the device-mapper tables, otherwise we might end up trying to remove
a device-mapper device which still has another one stacked on top
and the removal will fail.
References: bsc#994860
Signed-off-by: Hannes Reinecke From e35fe0828445a36284b2ba0852247bf6671a2680 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke DM devices might be located on top of MD devices, so we need to
call the DM shutdown script before MD shutdown. The exception
here are multipath devices, which are below MD devices.
So skip removing multipath devices here to avoid spurious errors.
References: bsc#994860
Signed-off-by: Hannes Reinecke From 3ac0a07b762d115b385aa05abcb0c1559f932319 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke bnx2i offload connections do not have a corresponding network
device, but needs the 'iscsiuio' daemon to be started.
References: bsc#997598
Signed-off-by: Hannes Reinecke From 6e779051fd7ac96cf7db758df3ffe240ae3f8880 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke With the latest changes to fcoe the fcoemon got started twice for
bnx2 installations.
References: bsc#1001512
Signed-off-by: Hannes Reinecke From 9a3027a11ea5bac05c474a85da355e4e74793006 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke Signed-off-by: Thomas Renninger From 64929793cb6f58c865b7d87d241524d9d9cd7a4e Mon Sep 17 00:00:00 2001
From: Fabian Vogt - There's a bug in systemd's locale-setup code, ignoring /etc/locale.conf
- Work around it by providing /etc/sysconfig/language directly
- May be the best way to support ROOT_USES_LANG in the initrd properly anyway,
so this patch can be kept even after the original systemd bug is fixed
---
modules.d/10i18n/module-setup.sh | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index e5bf5eb..d6aab19 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -25,6 +25,7 @@ install() {
KBDSUBDIRS=consolefonts,consoletrans,keymaps,unimaps
DEFAULT_FONT="${i18n_default_font:-LatArCyrHeb-16}"
I18N_CONF="/etc/locale.conf"
+ I18N_CONF_SUSE="/etc/sysconfig/language"
VCONFIG_CONF="/etc/vconsole.conf"
# This is from 10redhat-i18n.
@@ -212,9 +213,10 @@ install() {
if dracut_module_included "systemd" && [[ -f ${I18N_CONF} ]]; then
inst_simple ${I18N_CONF}
- else
- mksubdirs ${initdir}${I18N_CONF}
- print_vars LC_ALL LANG >> ${initdir}${I18N_CONF}
+ fi
+
+ if dracut_module_included "systemd" && [[ -f ${I18N_CONF_SUSE} ]]; then
+ inst_simple ${I18N_CONF_SUSE}
fi
if dracut_module_included "systemd" && [[ -f ${VCONFIG_CONF} ]]; then
--
2.6.6
++++++ 0302-Revert-90multipath-add-hostonly-multipath.conf-in-ca.patch ++++++ From 269941f54e5cf0c601ae284207cdeab865ccc18d Mon Sep 17 00:00:00 2001
From: Dave Young Patch is incompatible with SUSE, which doesn't have mpathconf.
Signed-off-by: Thomas Renninger From 72e51c9d9eed05a8a012b944494306eddd92eae4 Mon Sep 17 00:00:00 2001
From: Fabian Vogt Although no device uses multipath, the module checks
for presence of the multipath binary first, printing a
warning if not present. This patch fixes the wrong ordering.
---
modules.d/90multipath/module-setup.sh | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index c2c85c4..d4bd6e1 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -3,8 +3,6 @@
# called by dracut
check() {
local _rootdev
- # if there's no multipath binary, no go.
- require_binaries multipath || return 1
is_mpath() {
local _dev=$1
@@ -17,6 +15,9 @@ check() {
for_each_host_dev_and_slaves is_mpath || return 255
}
+ # if there's no multipath binary, no go.
+ require_binaries multipath || return 1
+
return 0
}
--
2.6.6
++++++ 0304-90multipath-Start-daemon-after-udev-settle.patch ++++++ From d72902ee8f789ccdb6db0f7fb31b9a3adf06670f Mon Sep 17 00:00:00 2001
From: Hannes Reinecke We need to wait until udev has processed all events, otherwise we'll
risk of misdetecting devices. This might cause a temporary interruption
during which multipath removes a device-mapper device, which then
causes a booting failure.
References: bsc#986734
Signed-off-by: Hannes Reinecke From 457e1bd3a8707d82aa7b73294be84316b4658c61 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke As the 'multipath' program will be triggered directly from
udev events it will be called before the multipath service
unit has started up. Which means we cannot rely on the
service unit to load the module for us, but we rather
have to do it early before udev is started.
References: bsc#986734
Signed-off-by: Hannes Reinecke From 800cfd66abb60fe9524d321df77717435ed96e35 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke As the device-mapper module is removing all device-mapper tables
during shutdown we need to make sure to disable queuing on the
multipath devices; otherwise there might still be I/O pending
and the removal will fail.
References: bsc#994860
Signed-off-by: Hannes Reinecke From 8997862e7a72ee3322bc17002e321ec1969c1260 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke SLES11 provided a kernel commandline option 'multipath=off',
so dracut should be parsing the option, too.
References: bsc#1001691
Signed-off-by: Hannes Reinecke From ec36a74a94d7d96670c25c89cffbbca1e964df0b Mon Sep 17 00:00:00 2001
From: Hannes Reinecke There is no point trying to delete partitions; dmraid works
happily even with them. On the contrary trying to delete partitions
can even be harmful when eg dmraid should _not_ be started.
References: bsc#998860
Signed-off-by: Hannes Reinecke From 7cafbd9fe0f0799dc1a5c795d716e6732deb47ce Mon Sep 17 00:00:00 2001
From: Hannes Reinecke The iSCSI configuration is started after dracut checks for resume,
so we run into a timeout here. Additionally it's questionable if
resume on iSCSI makes sense (or is even supported on the platform),
so disable it for now.
References: bsc#999663
Signed-off-by: Hannes Reinecke From d6ad4e35af406a344fd1a1a3e872e941e7e59c86 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke Upstream deprecated 'ip=ibft', so update module-setup.sh to
emit the correct command-line argument.
References: bsc#1004437
Signed-off-by: Hannes Reinecke From cc2bdf6b3bf0fcaa6597ee652c024027da24b501 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke We need to check if the file /tmp/net.X.conf exists before trying
to read from it; not doing so will create a warning during boot.
References: bsc#1004437
Signed-off-by: Hannes Reinecke From 91ab88b0bda124816724dcea4c532259add83e41 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke We cannot call 'mdadm' from a RUN udev event key or use the
initqueue, as 'mdadm -I' will remove the partitions before
assembling the array. This is only safe to be called directly
from the udev rule (eg by the IMPORT or PROGRAM key), as then
udev will prevent any events for the partition devices to
be processed.
If 'mdadm -I' is called _after_ the event is processed it will
race with udev processing the events for the partitions devices,
and induce random boot failures.
References: bsc#998860
Signed-off-by: Hannes Reinecke From 2e176c1a99db334756c91c6c0e10e029993e56c7 Mon Sep 17 00:00:00 2001
From: Fabian Vogt - Port 0169-Enabled-Warning-for-failed-kernel-modules-per-defaul.patch:
Subject: Enable warning for failed kernel moduiles
Enabled Warning for failed kernel modules per default
and added summary of those to the end of dracut output
References: bnc#886839
- Disable inline warnings in favour of summary
Signed-off-by: Fabian Vogt From 55adce6c6676c83f9130c3b6e0391bfcb5c92320 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke Using the module option 'scsi_mod.scan=manual'
this implements LUN masking by selectively enable only those
devices required for booting.
References: bsc#954600,FATE#319786
Signed-off-by: Hannes Reinecke From 033e11927e1f7f3d1163ba78dfd5e7a6bad41ee7 Mon Sep 17 00:00:00 2001
From: Mark Fasheh Allow filesystem modules to install a fs-specific text file with
instructions on what to do when mount fails. This is printed when we go into
an emergency shell.
Signed-off-by: Mark Fasheh From 8ebcb9c3ded888ecd5c6fc0bbf4c9f490c3cdb56 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Based on a patch by Tomasz Paweł Gajc From d4efc0aeeecc470d9a267b7f3c130f472488905c Mon Sep 17 00:00:00 2001
From: Harald Hoyer ---
modules.d/01systemd-initrd/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/01systemd-initrd/module-setup.sh b/modules.d/01systemd-initrd/module-setup.sh
index fb6a9ea..c1ccd2a 100755
--- a/modules.d/01systemd-initrd/module-setup.sh
+++ b/modules.d/01systemd-initrd/module-setup.sh
@@ -28,6 +28,7 @@ install() {
inst_multiple -o \
$systemdsystemunitdir/initrd.target \
$systemdsystemunitdir/initrd-fs.target \
+ $systemdsystemunitdir/initrd-root-device.target \
$systemdsystemunitdir/initrd-root-fs.target \
$systemdsystemunitdir/initrd-switch-root.target \
$systemdsystemunitdir/initrd-switch-root.service \
--
2.10.0
++++++ 0452-Always-try-to-add-pinctrl-cherryview.patch ++++++ From 9ffab3f3a5105691b4b640649c3a99e3cce39c1a Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Contrary to previous intel pinctrl drivers, the cherryview driver can be
and usually is built as a module. However, it sets up the SDIO pinout
so sdhci can make use of the SD card reader, which may subsequently
hold a root file system on a card (bsc#998440).
---
modules.d/90kernel-modules/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
Index: dracut-044/modules.d/90kernel-modules/module-setup.sh
===================================================================
--- dracut-044.orig/modules.d/90kernel-modules/module-setup.sh
+++ dracut-044/modules.d/90kernel-modules/module-setup.sh
@@ -39,7 +39,8 @@ installkernel() {
ehci-hcd ehci-pci ehci-platform \
ohci-hcd ohci-pci \
uhci-hcd \
- xhci-hcd xhci-pci xhci-plat-hcd
+ xhci-hcd xhci-pci xhci-plat-hcd \
+ pinctrl-cherryview
instmods \
"=drivers/hid" \
++++++ 0453-Resolve-symbolic-links-for-i-and-k-parameters-bsc-90.patch ++++++ From 7957bd01b097507a601495ed7cd2c8480c2af67b Mon Sep 17 00:00:00 2001
From: Daniel Molkentin ---
mkinitrd-suse.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh
index 0f2b3c4..bc49d73 100755
--- a/mkinitrd-suse.sh
+++ b/mkinitrd-suse.sh
@@ -237,11 +237,13 @@ while (($# > 0)); do
-k) # Would be nice to get a list of images here
read_arg kernel_images "$@" || shift $?
for kernel_image in $kernel_images;do
+ [ -L "/boot/$kernel_image" ] && kernel_image="$(readlink "/boot/$kernel_image")"
kernels="$kernels ${kernel_image#*-}"
done
;;
-i) read_arg initrd_images "$@" || shift $?
for initrd_image in $initrd_images;do
+ [ -L "/boot/$initrd_image" ] && initrd_image="$(readlink "/boot/$initrd_image")"
# Check if the initrd_image contains a path.
# if not, then add the default boot_dir
dname=`dirname $initrd_image`
--
2.10.0
++++++ 0454-Add-md4-and-arc4-modules-for-ntlm.patch ++++++ From e69da98de1a4175fb3c745570471fc3a7d567a33 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Some crashkernel targets still use legacy NTLM auth, which
require those (bsc#869496). This patch enumerates all dependent
hash algorithems, because even though most of them are probably
compiled in, older ones (e.g. md4 and arc4) usually aren't.
---
modules.d/95cifs/module-setup.sh | 6 ++++++
1 file changed, 6 insertions(+)
Index: dracut-044/modules.d/95cifs/module-setup.sh
===================================================================
--- dracut-044.orig/modules.d/95cifs/module-setup.sh
+++ dracut-044/modules.d/95cifs/module-setup.sh
@@ -24,6 +24,12 @@ depends() {
# called by dracut
installkernel() {
instmods cifs ipv6
+ # hash algos
+ instmods md4 md5 sha256
+ # ciphers
+ instmods aes arc4 des ecb
+ # macs
+ instmods hmac cmac
}
# called by dracut
++++++ 0500-Reset-IFS-variable.patch ++++++ From bcaa0a11b41765be7cbb92e2641750b5adb8e326 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke Setting and unsetting the IFS variable is tricky. To be on the
safe side we should always reset the IFS variable to its original
value after parsing.
Signed-off-by: Hannes Reinecke From d8b28c14e3f350acdda42a0cc2c60ce71b9c53a2 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke bsc#989313
Signed-off-by: Thomas Renninger From 0db98910a11c12a454eac4c8e86dc7a7bbc764a4 Mon Sep 17 00:00:00 2001
From: Andreas Stieger Fixes: 5f2c30d9bcd614d546d5c55c6897e33f88b9ab90
Previously fixed CVE-2012-4453: e1b48995c26c4f06d1a718539cb1bd5b0179af91
Signed-off-by: Andreas Stieger From 7eb60d945d6007a794530aba0ca103bef3853174 Mon Sep 17 00:00:00 2001
From: Thomas Blume ---
modules.d/40network/net-lib.sh | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index d17209a..749dc47 100755
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -270,10 +270,12 @@ ibft_to_cmdline() {
[ -e /tmp/net.${dev}.has_ibft_config ] && continue
[ -e ${iface}/flags ] && flags=$(read a < ${iface}/flags; echo $a)
- # Skip invalid interfaces
- (( $flags & 1 )) || continue
- # Skip interfaces not used for booting
- (( $flags & 2 )) || continue
+ # Skip invalid/non-booting interfaces
+ # Per spec, Bits 0 and 1 are valid and bootable,
+ # respectively, but some firmware only sets Bit 1,
+ # so just accept either bit
+ (( $flags & 3 )) || continue
+
[ -e ${iface}/dhcp ] && dhcp=$(read a < ${iface}/dhcp; echo $a)
[ -e ${iface}/origin ] && origin=$(read a < ${iface}/origin; echo $a)
[ -e ${iface}/ip-addr ] && ip=$(read a < ${iface}/ip-addr; echo $a)
--
2.10.2
++++++ 0505-Allow-booting-from-degraded-MD-RAID-arrays.patch ++++++ From a113e853f71050aa6f05982ecf16660603f98825 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin bnc#1017695
---
modules.d/90mdraid/module-setup.sh | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
index 13ef9fe..962b3a4 100755
--- a/modules.d/90mdraid/module-setup.sh
+++ b/modules.d/90mdraid/module-setup.sh
@@ -119,6 +119,12 @@ install() {
if [ -e $systemdsystemunitdir/mdmon@.service ]; then
inst_simple $systemdsystemunitdir/mdmon@.service
fi
+ if [ -e $systemdsystemunitdir/mdadm-last-resort@.service ]; then
+ inst_simple $systemdsystemunitdir/mdadm-last-resort@.service
+ fi
+ if [ -e $systemdsystemunitdir/mdadm-last-resort@.timer ]; then
+ inst_simple $systemdsystemunitdir/mdadm-last-resort@.timer
+ fi
fi
inst_hook pre-shutdown 30 "$moddir/mdmon-pre-shutdown.sh"
}
--
2.10.2
++++++ 0506-Boot-on-s390x-with-fips-1-on-the-kernel-commnad-line.patch ++++++ From e9e5b0424648bc0d81e865d1fe54d10639a10182 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin On s390, the kernel image that is bootet from is called 'image'.
(bnc#1021687)
Original-Patch-By: Marcus Meissner From efc65e27554cfb2278dd46eba0e6cba0b58b7e35 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Certain rescue/recovery operations, e.g. xfs_repair need
that liberty (bsc#1019938).
---
modules.d/98dracut-systemd/dracut-emergency.service | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/98dracut-systemd/dracut-emergency.service b/modules.d/98dracut-systemd/dracut-emergency.service
index a523671..620b565 100644
--- a/modules.d/98dracut-systemd/dracut-emergency.service
+++ b/modules.d/98dracut-systemd/dracut-emergency.service
@@ -27,6 +27,7 @@ StandardOutput=inherit
StandardError=inherit
KillMode=process
IgnoreSIGPIPE=no
+TasksMax=infinity
# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash
# terminates cleanly.
--
2.10.2
++++++ 0508-90multipath-start-before-local-fs-pre.target.patch ++++++ From 172a873a599bbea5546b64fe12802aa903a0738c Mon Sep 17 00:00:00 2001
From: Martin Wilck local-fs-pre.target serves as a separator between the code for
detecting block devices and systemd's fsck/mount logic. This
patch ensures that multipathd is started before local-fs-pre.target
in the initrd. By adding a "Wants=" line for local-fs-pre.target,
it makes sure that this target is started at all.
References: bsc#1006118
Signed-off-by: Martin Wilck From 17eff2759ab2d5e3622864fb06a7657c7f95bfd3 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin zlib has been removed from the upstream kernel, affecting SLE12SP3.
This patch must not be backported to SLE12SP2 and earlier (bsc#1020063).
---
modules.d/01fips/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index 0bca7a1..e29af08 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -17,7 +17,7 @@ installkernel() {
_fipsmodules+="ctr cts deflate drbg "
_fipsmodules+="ecb fcrypt gcm ghash_generic khazad md4 michael_mic rmd128 "
_fipsmodules+="rmd160 rmd256 rmd320 seed "
- _fipsmodules+="sha512_generic tcrypt tea wp512 xts zlib "
+ _fipsmodules+="sha512_generic tcrypt tea wp512 xts "
_fipsmodules+="aes_s390 des_s390 sha256_s390 ghash_s390 sha1_s390 sha512_s390 "
_fipsmodules+="gf128mul "
_fipsmodules+="cmac vmac xcbc salsa20_generic salsa20_x86_64 camellia_generic camellia_x86_64 pcbc tgr192 anubis "
--
2.10.2
++++++ 0510-01fips-Some-modules-use-separators-other-than.patch ++++++ From e8804fc3d2052000d66661ced4a03103e0176e63 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin We need to account for that in our exception list
of modules that are fine to fail. This only happened
on non-Intel machines, because the intel modules
use "_" as separator.
Original-Patch-By: Marcus Meissner From d31f6dc51b26ac4110b2e5357a46f9b74ebd80e2 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin More modules are x86_64 only but are not matchable
by the generic postfix checks. Others are helper modules
that are not strictly needed on all platforms. Ensure
we pass FIPS init without them.
Finally, cbc is not always compiled into the kernel -- try
adding as a module.
Relates-to: e8804fc3d2052000d66661ced4a03103e0176e63
Reference: bsc#1021687
---
modules.d/01fips/fips.sh | 3 +++
modules.d/01fips/module-setup.sh | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
index 30f53b4..a005b0f 100755
--- a/modules.d/01fips/fips.sh
+++ b/modules.d/01fips/fips.sh
@@ -110,6 +110,9 @@ do_fips()
-o "$_module" != "${_module%x86_64}" \
-o "$_module" != "${_module%z90}" \
-o "$_module" != "${_module%s390}" \
+ -o "$_module" == "twofish_x86_64_3way" \
+ -o "$_module" == "ablk_helper" \
+ -o "$_module" == "glue_helper" \
]; then
_found=1
fi
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index e29af08..beeb2f6 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -23,7 +23,7 @@ installkernel() {
_fipsmodules+="cmac vmac xcbc salsa20_generic salsa20_x86_64 camellia_generic camellia_x86_64 pcbc tgr192 anubis "
_fipsmodules+="cast6_generic cast5_generic cast_common sha512_ssse3 serpent_sse2_x86_64 serpent_generic twofish_generic "
_fipsmodules+="ablk_helper cryptd twofish_x86_64_3way lrw glue_helper twofish_x86_64 twofish_common blowfish_generic "
- _fipsmodules+="blowfish_x86_64 blowfish_common des_generic "
+ _fipsmodules+="blowfish_x86_64 blowfish_common des_generic cbc "
mkdir -m 0755 -p "${initdir}/etc/modprobe.d"
--
2.10.2
++++++ 0512-Make-binutils-optional-when-elfutils-are-available.patch ++++++ From a7970811473e4d351e82de8a523ecf46572c3e8c Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This is intended for minimum host OSes where 36 MB used by binutils
are deemed too expensive. We only need "strip", which exists as eu-strip
in elfutils, which in turn is < 1 MB in size.
Note that the tests (TEST-04-FULL-SYSTEMD/test.sh) still depend on
strip from binutils. It could use sstrip in the future.
---
dracut.sh | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index d25da8e3..f4794d1d 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1624,7 +1624,11 @@ fi
# strip binaries
if [[ $do_strip = yes ]] ; then
- for p in strip xargs find; do
+ # Prefer strip from elfutils for package size
+ declare strip_cmd=$(command -v eu-strip)
+ test -z "$strip_cmd" && strip_cmd="strip"
+
+ for p in $strip_cmd xargs find; do
if ! type -P $p >/dev/null; then
dinfo "Could not find '$p'. Not stripping the initramfs."
do_strip=no
@@ -1636,14 +1640,14 @@ if [[ $do_strip = yes ]] && ! [[ $DRACUT_FIPS_MODE ]]; then
dinfo "*** Stripping files ***"
find "$initdir" -type f \
-executable -not -path '*/lib/modules/*.ko' -print0 \
- | xargs -r -0 strip -g 2>/dev/null
+ | xargs -r -0 $strip_cmd -g 2>/dev/null
# strip kernel modules, but do not touch signed modules
find "$initdir" -type f -path '*/lib/modules/*.ko' -print0 \
| while read -r -d $'\0' f || [ -n "$f" ]; do
SIG=$(tail -c 28 "$f" | tr -d '\000')
[[ $SIG == '~Module signature appended~' ]] || { printf "%s\000" "$f"; }
- done | xargs -r -0 strip -g
+ done | xargs -r -0 $strip_cmd -g
dinfo "*** Stripping files done ***"
fi
--
2.12.0
++++++ 0513-Fix-regression-caused-by-6f9bf2b8ac436259bdccb110545.patch ++++++ From 31445aa3a415f9586f3bd6f6b14f0ae668d30ff9 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This was trying to fix bsc#998860, but introduced a regression:
62-md-dracut-uuid.rules was not generated in /etc/udev/rules.d and
therefore not processed.
Also, force reassembly of raid arrays given at the command line
and ensure IMSM_NO_PLATFORM is set correctly.
Reference: bsc#1028542
Signed-Off-By: Daniel Molkentin From fff87a6a53c322448ddd42a47c839570091cb824 Mon Sep 17 00:00:00 2001
From: Lidong Zhong For example under x86, someone maybe missunderstand that the vmlinuz
is the link /boot/vmlinuz points to a specific kernel image and use
the following command directly.
mkinitrd -k vmlinuz
---
mkinitrd-suse.8.asc | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/mkinitrd-suse.8.asc b/mkinitrd-suse.8.asc
index cdb8e3aa..91ec4695 100644
--- a/mkinitrd-suse.8.asc
+++ b/mkinitrd-suse.8.asc
@@ -29,8 +29,9 @@ OPTIONS
**-k** _ From a929c6f1b19cc945c119802feff2d8e111954f5c Mon Sep 17 00:00:00 2001
From: Daniel Molkentin The code finds relevant modules by symbol. Some drivers, such as
the hisi_sas has two slightly different implementations with
a common backend which contain the relevant symbols. However,
we also need to include the modules that depend on these
implementations.
Ex: hisi_sas_v{1,2}_hw -> hisi_sas_main
We use a simple reverse lookup for all modules via modules.dep to
include direct reverse dependencies.
Reference: bnc#1034597
---
modules.d/90kernel-modules/module-setup.sh | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 67d0e01e..bc00991d 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -3,6 +3,28 @@
# called by dracut
installkernel() {
if [[ -z $drivers ]]; then
+ # modules with symbols might have abstractions that depend on them, so let's add those
+ add_rev_deps() {
+ local _module
+ local _line
+ [[ -f "$srcmods/modules.dep" ]] || return 0
+ while read _module; do
+ local _mod
+ local _deps
+ _module=${_module##$srcmods/}
+ printf "%s\n" "$_module"
+ egrep ".*:.*$_module.*" $srcmods/modules.dep | (
+ local _OLDIFS=$IFS
+ IFS=:
+ while read _mod _deps; do
+ printf "%s\n" "$srcmods/$_mod"
+ done
+ IFS=$_OLDIFS
+ )
+ done | sort -u
+ return 0
+ }
+
block_module_filter() {
local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host'
# subfunctions inherit following FDs
@@ -65,7 +87,7 @@ installkernel() {
instmods virtio virtio_blk virtio_ring virtio_pci virtio_scsi \
"=drivers/pcmcia" =ide "=drivers/usb/storage"
- find_kernel_modules | block_module_filter | instmods
+ find_kernel_modules | block_module_filter | add_rev_deps | instmods
# if not on hostonly mode, install all known filesystems,
# if the required list is not set via the filesystems variable
--
2.12.0
++++++ 0516-mkinitrd-suse.sh-Fix-prefix-calculation.patch ++++++ From 7cf2c21798b537a5553ecc23df5ce8cfda631e9c Mon Sep 17 00:00:00 2001
From: Daniel Molkentin The previous algorithm was incorrect and would return
incorrect results e.g. for a /20 mask. Also gets rid
of an undocumented depencency on bc(1).
Reference: bsc#1035743
---
mkinitrd-suse.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh
index bc49d731..d9de81b9 100755
--- a/mkinitrd-suse.sh
+++ b/mkinitrd-suse.sh
@@ -104,7 +104,7 @@ calc_netmask() {
local prefix=$1
[ -z "$prefix" ] && return
- mask=$(echo "(2 ^ 32) - (2 ^ $prefix)" | bc -l)
+ mask=$(( 0xffffffff << (32 - $prefix) ))
byte1=$(( mask >> 24 ))
byte2=$(( mask >> 16 ))
byte3=$(( mask >> 8 ))
--
2.12.0
++++++ 0517-95fcoe-fixup-fcoe-genrules.sh-for-VN2VN-mode.patch ++++++ From c3c16d6b7c74cbd00d6e925f83c983f6e50cf7cd Mon Sep 17 00:00:00 2001
From: Hannes Reinecke The 'mode' argument was never referenced in the printf format, causing
invalid rules to be written.
References: bsc#1036323
Signed-off-by: Hannes Reinecke From 5e23b376c39c8fcea8a02115d5c233dbb476c13a Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Next to the cherrytrail module, more modules need to be part of
initrd to make e.g. the backlight control work properly.
Reference: boo#1034785
Original-Patch-By: Takashi Iwai From d1680a249acfde2b889b25c231a04429a6e17c2e Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Reference: bnc#1034893
---
modules.d/90kernel-modules/module-setup.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 566edd77..77b6bcae 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -64,6 +64,9 @@ installkernel() {
xhci-hcd xhci-pci xhci-plat-hcd \
pinctrl-cherryview pwm-lpss pwm-lpss-platform
+ # ensure early availability for e.g. emmc phys
+ instmods "=drivers/phy"
+
instmods \
"=drivers/hid" \
"=drivers/input/serio" \
--
2.12.0
++++++ 0520-Ignore-module-resolution-errors.patch ++++++ From 7ede212132383c7f4a6624f3d1e999f1a4a70bb4 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Can occur with version-unique modules names for kgraft.
Reference: bsc#1037120
diff --git a/dracut.sh b/dracut.sh
index f4794d1d..69833cab 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1237,7 +1237,7 @@ if [[ $hostonly ]]; then
host_modules["$alias"]=1
done
# mod might be an alias in the target kernel, find the real module
- mod_filename=$(modinfo -k "$kernel" "$mod" -F filename)
+ mod_filename=$(modinfo -k "$kernel" "$mod" -F filename 2>/dev/null)
[ $? -ne 0 ] && continue
host_modules["$(basename -s .ko "$mod_filename")"]=1
done
--
2.12.0
++++++ 0521-Ensure-udev-persistent-storage-compat-rules-get-crea.patch ++++++ From 3f9e2420fbb180672a566cbcab6e9dfdaa914c0e Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Reference: bsc#1040153
---
modules.d/95udev-rules/module-setup.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
index 6a0625aa..5e3f444d 100755
--- a/modules.d/95udev-rules/module-setup.sh
+++ b/modules.d/95udev-rules/module-setup.sh
@@ -56,6 +56,10 @@ install() {
# eudev rules
inst_rules 80-drivers-modprobe.rules
+ # bsc#1040153
+ inst_rules 61-persistent-storage-compat.rules
+ inst_multiple -o ${udevdir}/compat-symlink-generation
+
if dracut_module_included "systemd"; then
inst_multiple -o ${systemdutildir}/network/*.link
[[ $hostonly ]] && inst_multiple -H -o /etc/systemd/network/*.link
--
2.12.3
++++++ 0522-Fix-typo-from-commit-3f1cdb520.patch ++++++ From 4ed5df996e5b1ac86ad855152c3e54cdf72294ff Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Reference: bsc#1033238
---
modules.d/01fips/fips.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
index a005b0f0..ddf03994 100755
--- a/modules.d/01fips/fips.sh
+++ b/modules.d/01fips/fips.sh
@@ -83,7 +83,7 @@ do_fips()
KERNEL=$(uname -r)
if ! [ -e "/boot/.${_vmname}-${KERNEL}.hmac" ]; then
- warn "/boot/.${_vname}-${KERNEL}.hmac does not exist"
+ warn "/boot/.${_vmname}-${KERNEL}.hmac does not exist"
return 1
fi
--
2.12.3
++++++ 0523-98dracut-systemd-Fix-module-force-loading-with-syste.patch ++++++ From cf7069480ebad261ca76e1e074f0fddf1c38497b Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This used to work only when specified via the command line
or if systemd was not being used. However, the exisistence of
20_force_driver.conf also requires dracut-pre-udev.service
to be run.
Reference: bsc#986216
---
modules.d/98dracut-systemd/dracut-pre-udev.service | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/98dracut-systemd/dracut-pre-udev.service b/modules.d/98dracut-systemd/dracut-pre-udev.service
index 73740bef..43408f3e 100644
--- a/modules.d/98dracut-systemd/dracut-pre-udev.service
+++ b/modules.d/98dracut-systemd/dracut-pre-udev.service
@@ -15,6 +15,7 @@ Before=systemd-udevd.service dracut-pre-trigger.service
After=dracut-cmdline.service
Wants=dracut-cmdline.service
ConditionPathExists=/usr/lib/initrd-release
+ConditionPathExists=|/etc/cmdline.d/20-force_drivers.conf
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-udev
ConditionKernelCommandLine=|rd.break=pre-udev
ConditionKernelCommandLine=|rd.driver.blacklist
--
2.12.3
++++++ 0524-Suppress-nonsensical-error-message-bsc-1032029.patch ++++++ From a651341debaf284101cb32c27373ed9a0dec7107 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin ---
dracut.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/dracut.sh b/dracut.sh
index 69833cab..1016d5ae 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -788,6 +788,7 @@ declare -A suse_mod_deps
while read -r line; do
_suse_mod="${line##*SUSE INITRD: }"
_suse_mod="${_suse_mod%% REQUIRES*}"
+ test -z $_suse_mod && continue
suse_mod_deps["$_suse_mod"]="${suse_mod_deps["$_suse_mod"]} ${line##*REQUIRES }"
done <<< "$(grep -h "^# SUSE INITRD: " /etc/modprobe.d/[0-9][0-9]*.conf)"
--
2.12.3
++++++ 0525-backport-bail-out-if-module-directory-does-not-exist.patch ++++++ From cb1c81fc7f6bc72a72de1f87847924572aa39b54 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin this basically reverts commit
05214a0bedc084a41c35a128609745ad04a0c6cf
if people want to build the initramfs without kernel modules,
then --no-kernel should be specified
Upstream-Commit: 106255afd46ea2be1d035aca0c5695186a3f2c41
---
dracut.sh | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 1016d5ae..492ecbf7 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -632,12 +632,6 @@ if ! [[ $kernel ]]; then
kernel=$(uname -r)
fi
-if [[ $kernel ]]; then
- if ! [[ -d /lib/modules/$kernel ]] && [[ $no_kernel != yes ]]; then
- printf -- "Kernel version $kernel has no module directory /lib/modules/$kernel\n" >&2
- fi
-fi
-
if ! [[ $outfile ]]; then
[[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id
@@ -892,6 +886,12 @@ else
exit 1
fi
+if [[ $no_kernel != yes ]] && ! [[ -d $srcmods ]]; then
+ printf "%s\n" "dracut: Cannot find module directory $srcmods" >&2
+ printf "%s\n" "dracut: and --no-kernel was not specified" >&2
+ exit 1
+fi
+
if ! [[ $print_cmdline ]]; then
inst /bin/sh
if ! $DRACUT_INSTALL ${initdir:+-D "$initdir"} -R "$initdir/bin/sh" &>/dev/null; then
--
2.12.3
++++++ 0526-iscsiroot-call-handle_firmware-only-for-non-iface-in.patch ++++++ From d9e0e5682daeda83e5b1096d2fe570f2d38e65a5 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This partially reverts the "setup bnx2i offload connections properly"
patch to the original version from bsc#997598.
Patch-by: Martin Wilck From 3a1abe58f68fbdee31f7370314432ff903954daa Mon Sep 17 00:00:00 2001
From: Marcus Meissner ---
modules.d/01fips/fips.sh | 19 ++++++++++++++++---
modules.d/01fips/module-setup.sh | 10 ++++++++++
suse/dracut.spec | 1 +
3 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
index ddf03994..081dba95 100755
--- a/modules.d/01fips/fips.sh
+++ b/modules.d/01fips/fips.sh
@@ -57,9 +57,15 @@ do_rhevh_check()
{
KERNEL=$(uname -r)
kpath=${1}
-
+ FIPSCHECK=/usr/lib64/libkcapi/fipscheck
+ if [ ! -f $FIPSCHECK ]; then
+ FIPSCHECK=/usr/lib/libkcapi/fipscheck
+ fi
+ if [ ! -f $FIPSCHECK ]; then
+ FIPSCHECK=/usr/bin/fipscheck
+ fi
# If we're on RHEV-H, the kernel is in /run/initramfs/live/vmlinuz0
- if fipscheck $NEWROOT/boot/vmlinuz-${KERNEL} ; then
+ if $FIPSCHECK $NEWROOT/boot/vmlinuz-${KERNEL} ; then
warn "HMAC sum mismatch"
return 1
fi
@@ -81,6 +87,13 @@ do_fips()
fi
KERNEL=$(uname -r)
+ FIPSCHECK=/usr/lib64/libkcapi/fipscheck
+ if [ ! -f $FIPSCHECK ]; then
+ FIPSCHECK=/usr/lib/libkcapi/fipscheck
+ fi
+ if [ ! -f $FIPSCHECK ]; then
+ FIPSCHECK=/usr/bin/fipscheck
+ fi
if ! [ -e "/boot/.${_vmname}-${KERNEL}.hmac" ]; then
warn "/boot/.${_vmname}-${KERNEL}.hmac does not exist"
@@ -134,7 +147,7 @@ do_fips()
elif [ -e "/run/initramfs/live/isolinux/vmlinuz0" ]; then
do_rhevh_check /run/initramfs/live/isolinux/vmlinuz0 || return 1
else
- fipscheck "/boot/${_vmname}-${KERNEL}" || return 1
+ $FIPSCHECK "/boot/${_vmname}-${KERNEL}" || return 1
fi
info "All initrd crypto checks done"
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index beeb2f6d..9e5eca4f 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -24,6 +24,7 @@ installkernel() {
_fipsmodules+="cast6_generic cast5_generic cast_common sha512_ssse3 serpent_sse2_x86_64 serpent_generic twofish_generic "
_fipsmodules+="ablk_helper cryptd twofish_x86_64_3way lrw glue_helper twofish_x86_64 twofish_common blowfish_generic "
_fipsmodules+="blowfish_x86_64 blowfish_common des_generic cbc "
+ _fipsmodules+="algif_hash af_alg crypto_user "
mkdir -m 0755 -p "${initdir}/etc/modprobe.d"
@@ -54,9 +55,18 @@ install() {
.libgcrypt.so.20.hmac \
libfreeblpriv3.so libfreeblpriv3.chk
+ if [ -f /usr/lib64/libkcapi/.fipscheck.hmac ]; then
+ inst_simple /usr/lib64/libkcapi/.fipscheck.hmac
+ inst_simple /usr/lib64/libkcapi/fipscheck
+ else
+ inst_simple /usr/lib/libkcapi/.fipscheck.hmac
+ inst_simple /usr/lib/libkcapi/fipscheck
+ fi
+
# we do not use prelink at SUSE
#inst_multiple -o prelink
inst_simple /etc/system-fips
+
}
--
2.12.3
++++++ 0528-Ensure-dracut.sh-responds-properly-to-hostonly_cmdli.patch ++++++ From 469d28c50718de7761c91db07ccc7f40821f2d8b Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Reference: bsc#1048748
---
dracut.conf.5.asc | 2 +-
dracut.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
index 0460d4ff..3497f349 100644
--- a/dracut.conf.5.asc
+++ b/dracut.conf.5.asc
@@ -97,7 +97,7 @@ Configuration files must have the extension .conf; other extensions are ignored.
instead of a generic host and generate host-specific configuration.
*hostonly_cmdline=*"__{yes|no}__"::
- If set, store the kernel command line arguments needed in the initramfs
+ If set to "yes", store the kernel command line arguments needed in the initramfs
*persistent_policy=*"__<policy>__"::
Use _<policy>_ to address disks and partitions.
diff --git a/dracut.sh b/dracut.sh
index 492ecbf7..35d7e134 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1708,7 +1708,7 @@ if ! ( echo $PARMS_TO_STORE > $initdir/lib/dracut/build-parameter.txt ); then
exit 1
fi
-if [[ $hostonly_cmdline ]] ; then
+if [[ $hostonly_cmdline == "yes" ]] ; then
unset _stored_cmdline
if [ -d $initdir/etc/cmdline.d ];then
dinfo "Stored kernel commandline:"
--
2.12.3
++++++ 0529-systemd-add-missing-.slice-unit.patch ++++++ From 1a4ff58c7451a88206bc119d19eb88f04936569e Mon Sep 17 00:00:00 2001
From: Harald Hoyer ---
modules.d/00systemd/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
index d3133b23..86728208 100755
--- a/modules.d/00systemd/module-setup.sh
+++ b/modules.d/00systemd/module-setup.sh
@@ -122,6 +122,7 @@ install() {
\
$systemdsystemunitdir/slices.target \
$systemdsystemunitdir/system.slice \
+ $systemdsystemunitdir/-.slice \
\
$tmpfilesdir/systemd.conf \
\
--
2.12.3
++++++ 0530-dracut-systemd-dracut-cmdline-ask-fix-dracut-kernel-.patch ++++++ From e053630ec37e31f1d7a9bcc22a4c67b2aae7c8e4 Mon Sep 17 00:00:00 2001
From: Evgeny Vereshchagin How to reproduce:
host# dracut --kernel-cmdline='rd.cmdline=ask' initramfs.img
host# qemu-system-x86_64 -initrd initramfs.img ... -append root=/dev/sda1 ...
...
qemu-host# journalctl -b | grep dracut-cmdline-ask
...
Feb 15 08:45:36 localhost systemd[1]: dracut-cmdline-ask.service: Installed new job dracut-cmdline-ask.service/start as 42
Feb 15 08:45:36 localhost systemd[1]: dracut-cmdline-ask.service: ConditionKernelCommandLine=rd.cmdline=ask failed.
Feb 15 08:45:36 localhost systemd[1]: dracut-cmdline-ask.service: Starting requested but condition failed. Not starting unit.
Feb 15 08:45:36 localhost systemd[1]: dracut-cmdline-ask.service: Job dracut-cmdline-ask.service/start finished, result=done
...
Signed-off-by: Evgeny Vereshchagin From 326c5cb2c0b280f158d587f9ad77eff80a28b9dd Mon Sep 17 00:00:00 2001
From: Harald Hoyer make reboot/poweroff/halt work
also conflict with emergency.target
---
modules.d/98dracut-systemd/dracut-cmdline-ask.service | 2 ++
modules.d/98dracut-systemd/dracut-cmdline.service | 2 ++
modules.d/98dracut-systemd/dracut-emergency.service | 5 +++--
modules.d/98dracut-systemd/dracut-initqueue.service | 2 ++
modules.d/98dracut-systemd/dracut-mount.service | 2 ++
modules.d/98dracut-systemd/dracut-pre-mount.service | 2 ++
modules.d/98dracut-systemd/dracut-pre-pivot.service | 3 +++
modules.d/98dracut-systemd/dracut-pre-trigger.service | 2 ++
modules.d/98dracut-systemd/dracut-pre-udev.service | 2 ++
modules.d/98dracut-systemd/emergency.service | 2 ++
10 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/modules.d/98dracut-systemd/dracut-cmdline-ask.service b/modules.d/98dracut-systemd/dracut-cmdline-ask.service
index 8bc7d809..1685479a 100644
--- a/modules.d/98dracut-systemd/dracut-cmdline-ask.service
+++ b/modules.d/98dracut-systemd/dracut-cmdline-ask.service
@@ -16,6 +16,8 @@ Wants=systemd-journald.socket
ConditionPathExists=/usr/lib/initrd-release
ConditionKernelCommandLine=|rd.cmdline=ask
ConditionPathExistsGlob=|/etc/cmdline.d/*.conf
+Conflicts=shutdown.target emergency.target
+Before=shutdown.target emergency.target
[Service]
Environment=DRACUT_SYSTEMD=1
diff --git a/modules.d/98dracut-systemd/dracut-cmdline.service b/modules.d/98dracut-systemd/dracut-cmdline.service
index 6eeb991a..c22856e2 100644
--- a/modules.d/98dracut-systemd/dracut-cmdline.service
+++ b/modules.d/98dracut-systemd/dracut-cmdline.service
@@ -20,6 +20,8 @@ ConditionDirectoryNotEmpty=|/lib/dracut/hooks/cmdline
ConditionKernelCommandLine=|rd.break=cmdline
ConditionKernelCommandLine=|resume
ConditionKernelCommandLine=|noresume
+Conflicts=shutdown.target emergency.target
+Before=shutdown.target emergency.target
[Service]
Environment=DRACUT_SYSTEMD=1
diff --git a/modules.d/98dracut-systemd/dracut-emergency.service b/modules.d/98dracut-systemd/dracut-emergency.service
index 620b565f..3f1e0125 100644
--- a/modules.d/98dracut-systemd/dracut-emergency.service
+++ b/modules.d/98dracut-systemd/dracut-emergency.service
@@ -12,14 +12,15 @@ Description=Dracut Emergency Shell
DefaultDependencies=no
After=systemd-vconsole-setup.service
Wants=systemd-vconsole-setup.service
-Conflicts=emergency.service emergency.target
+Conflicts=shutdown.target emergency.target
+Before=shutdown.target emergency.target
[Service]
Environment=HOME=/
Environment=DRACUT_SYSTEMD=1
Environment=NEWROOT=/sysroot
WorkingDirectory=/
-ExecStart=/bin/dracut-emergency
+ExecStart=-/bin/dracut-emergency
ExecStopPost=-/bin/rm -f -- /.console_lock
Type=oneshot
StandardInput=tty-force
diff --git a/modules.d/98dracut-systemd/dracut-initqueue.service b/modules.d/98dracut-systemd/dracut-initqueue.service
index fa5ca561..20d6a8c2 100644
--- a/modules.d/98dracut-systemd/dracut-initqueue.service
+++ b/modules.d/98dracut-systemd/dracut-initqueue.service
@@ -18,6 +18,8 @@ Wants=systemd-udev-trigger.service
ConditionPathExists=/usr/lib/initrd-release
ConditionPathExists=|/lib/dracut/need-initqueue
ConditionKernelCommandLine=|rd.break=initqueue
+Conflicts=shutdown.target emergency.target
+Before=shutdown.target emergency.target
[Service]
Environment=DRACUT_SYSTEMD=1
diff --git a/modules.d/98dracut-systemd/dracut-mount.service b/modules.d/98dracut-systemd/dracut-mount.service
index 1b14f4a3..baa8edbc 100644
--- a/modules.d/98dracut-systemd/dracut-mount.service
+++ b/modules.d/98dracut-systemd/dracut-mount.service
@@ -15,6 +15,8 @@ After=dracut-initqueue.service dracut-pre-mount.service
ConditionPathExists=/usr/lib/initrd-release
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/mount
ConditionKernelCommandLine=|rd.break=mount
+Conflicts=shutdown.target emergency.target
+Before=shutdown.target emergency.target
[Service]
Environment=DRACUT_SYSTEMD=1
diff --git a/modules.d/98dracut-systemd/dracut-pre-mount.service b/modules.d/98dracut-systemd/dracut-pre-mount.service
index 1e4e29f0..c7b123cc 100644
--- a/modules.d/98dracut-systemd/dracut-pre-mount.service
+++ b/modules.d/98dracut-systemd/dracut-pre-mount.service
@@ -17,6 +17,8 @@ After=cryptsetup.target
ConditionPathExists=/usr/lib/initrd-release
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-mount
ConditionKernelCommandLine=|rd.break=pre-mount
+Conflicts=shutdown.target emergency.target
+Before=shutdown.target emergency.target
[Service]
Environment=DRACUT_SYSTEMD=1
diff --git a/modules.d/98dracut-systemd/dracut-pre-pivot.service b/modules.d/98dracut-systemd/dracut-pre-pivot.service
index f5a85ce0..20a872a7 100644
--- a/modules.d/98dracut-systemd/dracut-pre-pivot.service
+++ b/modules.d/98dracut-systemd/dracut-pre-pivot.service
@@ -10,6 +10,7 @@
[Unit]
Description=dracut pre-pivot and cleanup hook
Documentation=man:dracut-pre-pivot.service(8)
+DefaultDependencies=no
After=initrd.target initrd-parse-etc.service sysroot.mount
After=dracut-initqueue.service dracut-pre-mount.service dracut-mount.service
Before=initrd-cleanup.service
@@ -23,6 +24,8 @@ ConditionKernelCommandLine=|rd.break=cleanup
ConditionKernelCommandLine=|rd.break
ConditionPathExists=|/dev/root
ConditionPathExists=|/dev/nfs
+Conflicts=shutdown.target emergency.target
+Before=shutdown.target emergency.target
[Service]
Environment=DRACUT_SYSTEMD=1
diff --git a/modules.d/98dracut-systemd/dracut-pre-trigger.service b/modules.d/98dracut-systemd/dracut-pre-trigger.service
index 826b89b2..2df9d7bf 100644
--- a/modules.d/98dracut-systemd/dracut-pre-trigger.service
+++ b/modules.d/98dracut-systemd/dracut-pre-trigger.service
@@ -17,6 +17,8 @@ Wants=dracut-pre-udev.service systemd-udevd.service
ConditionPathExists=/usr/lib/initrd-release
ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-trigger
ConditionKernelCommandLine=|rd.break=pre-trigger
+Conflicts=shutdown.target emergency.target
+Before=shutdown.target emergency.target
[Service]
Environment=DRACUT_SYSTEMD=1
diff --git a/modules.d/98dracut-systemd/dracut-pre-udev.service b/modules.d/98dracut-systemd/dracut-pre-udev.service
index 43408f3e..1f71546b 100644
--- a/modules.d/98dracut-systemd/dracut-pre-udev.service
+++ b/modules.d/98dracut-systemd/dracut-pre-udev.service
@@ -21,6 +21,8 @@ ConditionKernelCommandLine=|rd.break=pre-udev
ConditionKernelCommandLine=|rd.driver.blacklist
ConditionKernelCommandLine=|rd.driver.pre
ConditionKernelCommandLine=|rd.driver.post
+Conflicts=shutdown.target emergency.target
+Before=shutdown.target emergency.target
[Service]
Environment=DRACUT_SYSTEMD=1
diff --git a/modules.d/98dracut-systemd/emergency.service b/modules.d/98dracut-systemd/emergency.service
index 35d9c317..969a300e 100644
--- a/modules.d/98dracut-systemd/emergency.service
+++ b/modules.d/98dracut-systemd/emergency.service
@@ -12,6 +12,8 @@ Description=Emergency Shell
DefaultDependencies=no
After=systemd-vconsole-setup.service
Wants=systemd-vconsole-setup.service
+Conflicts=shutdown.target
+Before=shutdown.target
[Service]
Environment=HOME=/
--
2.12.3
++++++ 0532-List-drivers-rather-than-looking-for-reverse-depende.patch ++++++ From a233d68d230de2e6cd53c557999ad7cb3184cc46 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Adding all reverse dependencies for a driver shot over the top too often
(e.g. boo#1037344).
This reverts "90kernel-modules: also add block device driver reverse dependencies"
(commit 8a679916e597a2c589334c5aeaef8996b18debab)
Reference: boo#1037344
Reference: bsc#1034597
---
modules.d/90kernel-modules/module-setup.sh | 28 +++++-----------------------
1 file changed, 5 insertions(+), 23 deletions(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 77b6bcae..e1880725 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -3,28 +3,6 @@
# called by dracut
installkernel() {
if [[ -z $drivers ]]; then
- # modules with symbols might have abstractions that depend on them, so let's add those
- add_rev_deps() {
- local _module
- local _line
- [[ -f "$srcmods/modules.dep" ]] || return 0
- while read _module; do
- local _mod
- local _deps
- _module=${_module##$srcmods/}
- printf "%s\n" "$_module"
- egrep ".*:.*$_module.*" $srcmods/modules.dep | (
- local _OLDIFS=$IFS
- IFS=:
- while read _mod _deps; do
- printf "%s\n" "$srcmods/$_mod"
- done
- IFS=$_OLDIFS
- )
- done | sort -u
- return 0
- }
-
block_module_filter() {
local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host'
# subfunctions inherit following FDs
@@ -90,7 +68,11 @@ installkernel() {
instmods virtio virtio_blk virtio_ring virtio_pci virtio_scsi \
"=drivers/pcmcia" =ide "=drivers/usb/storage"
- find_kernel_modules | block_module_filter | add_rev_deps | instmods
+ find_kernel_modules | block_module_filter | instmods
+
+ # modules that will fail block_module_filter because their implementation
+ # is spread over multiple modules (bsc#1034597)
+ instmods hisi_sas_v1_hw hisi_sas_v2_hw # symbols in dep hisi_sas_main
# if not on hostonly mode, install all known filesystems,
# if the required list is not set via the filesystems variable
--
2.12.3
++++++ 0533-instmods-check-modules.builtin-in-srcmods.patch ++++++ From 41c4ef96400cd1dbcce175a4b909ebdbd429e5a2 Mon Sep 17 00:00:00 2001
From: Martin Wilck Running dracut with --kmoddir causes lots of errors like this:
grep: /lib/modules/4.4.73-default/modules.builtin: No such file or directory
Fix this by looking up modules.builtin in the proper path.
Reference: bsc#1048606
---
dracut-init.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut-init.sh b/dracut-init.sh
index c9413907..3f30cc9c 100644
--- a/dracut-init.sh
+++ b/dracut-init.sh
@@ -1137,7 +1137,7 @@ instmods() {
return 0
fi
- if grep -q "/${_mod}.ko" /lib/modules/$kernel/modules.builtin; then
+ if grep -q "/${_mod}.ko" $srcmods/modules.builtin; then
# Module is built-in
return 0
fi
--
2.12.3
++++++ 0534-ssh-client-Include-nss_-libraries.patch ++++++ From 9c2c061b2f1760c96b3cc9bcd38d7c1b5f25061d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Koutn=C3=BD?= SSH uses passwd database and thus need various NSS plugin libraries,
depending upon setting in nsswitch.conf.
SSH binary fails within the dracut environment without the libraries:
#:/ ssh
No user exist for uid 0
---
modules.d/95ssh-client/module-setup.sh | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/modules.d/95ssh-client/module-setup.sh b/modules.d/95ssh-client/module-setup.sh
index 0a0e80cd..a6945c1f 100755
--- a/modules.d/95ssh-client/module-setup.sh
+++ b/modules.d/95ssh-client/module-setup.sh
@@ -56,7 +56,16 @@ inst_sshenv()
# called by dracut
install() {
+ local _nsslibs
+
inst_multiple ssh scp
inst_sshenv
+
+ _nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \
+ | tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
+ _nsslibs=${_nsslibs#|}
+ _nsslibs=${_nsslibs%|}
+
+ inst_libdir_file -n "$_nsslibs" 'libnss_*.so*'
}
--
2.12.3
++++++ 0535-Sync-initramfs-after-creation.patch ++++++ From 6b4f01ef7728cdb4ade4d6ef44313127d7d8f8f3 Mon Sep 17 00:00:00 2001
From: Ankit Kumar If we trigger crash just after creating initramfs, sometimes it is
observed that initramfs is not written to disk causing the subsequent
boot to fail. A sync should resolve this.
Signed-off-by: Ankit Kumar From 684d83b9492b8a8323f4b99d4384e56c7c7b3580 Mon Sep 17 00:00:00 2001
From: Martin Wilck This file is obsolete in SLE-15 and Factory.
Reference: bsc#1054539
---
modules.d/90multipath/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index 4f342c89..85848068 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -118,7 +118,7 @@ install() {
inst_rules 40-multipath.rules 56-multipath.rules \
62-multipath.rules 65-multipath.rules \
- 66-kpartx.rules 67-kpartx-compat.rules \
+ 66-kpartx.rules \
11-dm-mpath.rules
}
--
2.12.3
++++++ 0537-dracut-init.sh-ignore-crc32.ko-in-builtin-test.patch ++++++ From c909fcc8e1b34098e2ec58cd585df0dbb8c3ec3c Mon Sep 17 00:00:00 2001
From: Martin Wilck crc32.ko exists twice in certain kernels (e.g. SLE12): as
/kernel/lib/crc32.ko (SLE12: builtin) and as kernel/crypto/crc32.ko
(SLE12: module). When the latter module is necessary, dracut
falsely classifies it as builtin. Fix that.
Reference: bsc#1054538
---
dracut-init.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut-init.sh b/dracut-init.sh
index 3f30cc9c..65597ffa 100644
--- a/dracut-init.sh
+++ b/dracut-init.sh
@@ -1137,7 +1137,7 @@ instmods() {
return 0
fi
- if grep -q "/${_mod}.ko" $srcmods/modules.builtin; then
+ if [[ ${_mod} != crc32 ]] && grep -q "/${_mod}.ko" $srcmods/modules.builtin; then
# Module is built-in
return 0
fi
--
2.12.3
++++++ 0538-Enable-core-dumps-with-systemd-from-initrd.patch ++++++ From c15c37986d9387c7f7d1020bd7ca17f890ae6276 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin systemd sets /proc/sys/kernel/core_pattern to use systemd-coredump.
However, systemd-coredump is missing from initrd, making dumping
the core in initrd impossible by default.
Reference: bsc#1054809
---
modules.d/00systemd/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
index 86728208..14b3ab07 100755
--- a/modules.d/00systemd/module-setup.sh
+++ b/modules.d/00systemd/module-setup.sh
@@ -33,6 +33,7 @@ install() {
inst_multiple -o \
$systemdutildir/systemd \
+ $systemdutildir/systemd-coredump \
$systemdutildir/systemd-cgroups-agent \
$systemdutildir/systemd-shutdown \
$systemdutildir/systemd-reply-password \
--
2.12.3
++++++ 0539-Add-IMA-functionality-fate-323289.patch ++++++ From 31f5f290cf74a719b93439bced08260f5af47f80 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This is implemented as a sub module analogous to FIPS.
(changes to spec file applied in OBS only)
---
dracut.conf.d/ima.conf.example | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 dracut.conf.d/ima.conf.example
diff --git a/dracut.conf.d/ima.conf.example b/dracut.conf.d/ima.conf.example
new file mode 100644
index 00000000..b4c4eea7
--- /dev/null
+++ b/dracut.conf.d/ima.conf.example
@@ -0,0 +1,3 @@
+# turn on ima modules
+
+add_dracutmodules+=" integrity "
--
2.14.1
++++++ 0540-Check-the-proper-variable-for-a-custom-IMA-keys-dire.patch ++++++ From 551cc3694e32be97084b1f198f76f4daf908d503 Mon Sep 17 00:00:00 2001
From: Jason Dana ---
modules.d/98integrity/ima-keys-load.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/98integrity/ima-keys-load.sh b/modules.d/98integrity/ima-keys-load.sh
index 659b7222..e142f74d 100755
--- a/modules.d/98integrity/ima-keys-load.sh
+++ b/modules.d/98integrity/ima-keys-load.sh
@@ -13,7 +13,7 @@ load_x509_keys()
. ${IMACONFIG}
fi
- if [ -z "${IMAKEYDIR}" ]; then
+ if [ -z "${IMAKEYSDIR}" ]; then
IMAKEYSDIR="/etc/keys/ima"
fi
--
2.14.1
++++++ 0541-Make-sure-70-persistent-net.rules-is-included-in-ini.patch ++++++ From 9ddabe8afc13e0ea038ab5bc8aaf1cffe1c905ed Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This is to support predictable interface names
Note: This should not be backported.
Reference: boo#960669
---
modules.d/95udev-rules/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
index 5e3f444d..38f7726c 100755
--- a/modules.d/95udev-rules/module-setup.sh
+++ b/modules.d/95udev-rules/module-setup.sh
@@ -38,6 +38,7 @@ install() {
60-pcmcia.rules \
60-persistent-storage.rules \
61-persistent-storage-edd.rules \
+ 70-persistent-net.rules \
70-uaccess.rules \
71-seat.rules \
73-seat-late.rules \
--
2.14.1
++++++ 0542-Include-crc32c-intel-module-when-using-btrfs.patch ++++++ From 3c2699fc3f5602a13ec18a0a07d515847dc11fa9 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Reference: bsc#1011554
---
modules.d/90btrfs/module-setup.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh
index 9303dbe2..b0d0058b 100755
--- a/modules.d/90btrfs/module-setup.sh
+++ b/modules.d/90btrfs/module-setup.sh
@@ -26,6 +26,8 @@ depends() {
# called by dracut
installkernel() {
instmods btrfs
+ # Make sure btfs can use fast crc32c implementations where available (bsc#1011554)
+ instmods crc32c-intel
}
# called by dracut
--
2.14.1
++++++ 0543-Remove-00systemd-bootchart.patch ++++++ From d886567080bd53d2efcba43c89cdfb000ffd594b Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This was removed from systemd almost two years ago in
c550f7a9b89d017215af084288bc44f736f774fe, so dracut should drop support
as well.
Reference: bsc#1067279
---
modules.d/00systemd-bootchart/module-setup.sh | 19 -------------------
1 file changed, 19 deletions(-)
delete mode 100755 modules.d/00systemd-bootchart/module-setup.sh
diff --git a/modules.d/00systemd-bootchart/module-setup.sh b/modules.d/00systemd-bootchart/module-setup.sh
deleted file mode 100755
index dcf546e6..00000000
--- a/modules.d/00systemd-bootchart/module-setup.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-# called by dracut
-check() {
- [[ "$mount_needs" ]] && return 1
- require_binaries $systemdutildir/systemd-bootchart || return 1
- return 255
-}
-
-# called by dracut
-depends() {
- return 0
-}
-
-# called by dracut
-install() {
- inst_symlink /init /sbin/init
- inst_multiple $systemdutildir/systemd-bootchart
-}
--
2.13.6
++++++ 0544-40network-Make-ip-dhcp-work.patch ++++++ From 9d4167efa9b6f093f1a37cb07bc744e763a5d292 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This fixes ip=dhcp to behave exactly like ip=<dev>:dhcp, as indicated
in the documentation.
Reference: bsc#1069163
---
modules.d/40network/ifup.sh | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index a684cba0..d9a418e5 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -497,6 +497,19 @@ if [ -z "$ip" ]; then
fi
fi
+bring_online() {
+ > /tmp/net.${netif}.up
+
+ if [ -e /sys/class/net/${netif}/address ]; then
+ > /tmp/net.$(cat /sys/class/net/${netif}/address).up
+ fi
+
+ setup_net $netif
+ source_hook initqueue/online $netif
+ if [ -z "$manualup" ]; then
+ /sbin/netroot $netif
+ fi
+}
# Specific configuration, spin through the kernel command line
# looking for ip= lines
@@ -555,17 +568,7 @@ for p in $(getargs ip=); do
done
if [ $? -eq 0 ]; then
- > /tmp/net.${netif}.up
-
- if [ -e /sys/class/net/${netif}/address ]; then
- > /tmp/net.$(cat /sys/class/net/${netif}/address).up
- fi
-
- setup_net $netif
- source_hook initqueue/online $netif
- if [ -z "$manualup" ]; then
- /sbin/netroot $netif
- fi
+ bring_online
fi
done
@@ -593,6 +596,9 @@ if [ ! -e /tmp/net.${netif}.up ]; then
do_dhcp -4
fi
fi
+ if [ $? -eq 0 ]; then
+ bring_online
+ fi
fi
if [ -e /tmp/net.${netif}.up ]; then
--
2.13.6
++++++ 0545-Add-early-microcode-support-for-AMD-family-16h.patch ++++++ From 8bbdf5f5300fcb234a36fc83b8218b0f5be21b31 Mon Sep 17 00:00:00 2001
From: jonathan-teh <30538043+jonathan-teh@users.noreply.github.com>
Date: Sat, 29 Jul 2017 00:19:19 +0100
Subject: [PATCH 1/2] Add early microcode support for AMD family 16h ---
dracut-functions.sh | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index ebe05a21..93a56f03 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -656,8 +656,10 @@ get_ucode_file ()
local stepping=`grep -E "stepping" /proc/cpuinfo | head -1 | sed s/.*:\ //`
if [[ "$(get_cpu_vendor)" == "AMD" ]]; then
- # If family greater or equal than 0x15
- if [[ $family -ge 21 ]]; then
+ # If family greater than or equal to 0x16
+ if [[ $family -ge 22 ]]; then
+ printf "microcode_amd_fam16h.bin"
+ elif [[ $family -eq 21 ]]; then
printf "microcode_amd_fam15h.bin"
else
printf "microcode_amd.bin"
--
2.13.6
++++++ 0546-Support-Microcode-Updates-for-AMD-CPU-Family-0x17.patch ++++++ From e725f7e919c286c93ee720aefb91ae231f89ec87 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Original-Patch-By: Tom Lendacky From e6e429407845cefe1305315ede997d961f486f99 Mon Sep 17 00:00:00 2001
From: Lidong Zhong ---
modules.d/98dracut-systemd/emergency.service | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/98dracut-systemd/emergency.service b/modules.d/98dracut-systemd/emergency.service
index 969a300e..d8bc779a 100644
--- a/modules.d/98dracut-systemd/emergency.service
+++ b/modules.d/98dracut-systemd/emergency.service
@@ -28,6 +28,7 @@ StandardOutput=inherit
StandardError=inherit
KillMode=process
IgnoreSIGPIPE=no
+TasksMax=infinity
# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash
# terminates cleanly.
--
2.13.6
++++++ 0548-95fcoe-Switch-back-to-using-fipvlan-for-bnx2fc.patch ++++++ From 9353f7e22da71f16a070cb27c139817ba04879c5 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke bnx2fc doesn't _actually_ need fcoemon, so fipvlan is sufficient
to start the FCoE connection.
And, in fact, fcoemon is started for every interface, causing
subsequent invocations to fail with
fcoemon[1157]: error 98 address already in use
and fcoemon tearing down the connection.
References: bsc#1052840
Signed-off-by: Hannes Reinecke From be4084fa2c097cd4b0ca870501e1a9628141de07 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke The bnx2 driver requires some time to complete DCB negotiation,
so we should rather increase the sleep time to avoid FCoE not
being able to start correctly.
References: bsc#1052840
Signed-off-by: Hannes Reinecke From 853356a0d72e5c1a3cc69b9eb09dff66f6e20647 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke Occasionally the FCoE connection might be reset after fipvlan was
called, causing the FCoE connection to be dropped and boot to fail.
For these cases we should be adding a timeout entry for the
initqueue to have a failsave mechanism to re-run fipvlan in
these cases.
References: bsc#1052840
Signed-off-by: Hannes Reinecke From 2a7f2be7475dfaf5090bbafbbf5b7eb3067eef46 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin if /lib/modules/$(uname -r)/modules.fips exists, use that list instead
of the hardcoded dracut module list.
Backported from upstream's master branch
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index 9e5eca4f..709cfc85 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -13,18 +13,22 @@ depends() {
# called by dracut
installkernel() {
local _fipsmodules _mod
- _fipsmodules="ansi_cprng arc4 authenc ccm "
- _fipsmodules+="ctr cts deflate drbg "
- _fipsmodules+="ecb fcrypt gcm ghash_generic khazad md4 michael_mic rmd128 "
- _fipsmodules+="rmd160 rmd256 rmd320 seed "
- _fipsmodules+="sha512_generic tcrypt tea wp512 xts "
- _fipsmodules+="aes_s390 des_s390 sha256_s390 ghash_s390 sha1_s390 sha512_s390 "
- _fipsmodules+="gf128mul "
- _fipsmodules+="cmac vmac xcbc salsa20_generic salsa20_x86_64 camellia_generic camellia_x86_64 pcbc tgr192 anubis "
- _fipsmodules+="cast6_generic cast5_generic cast_common sha512_ssse3 serpent_sse2_x86_64 serpent_generic twofish_generic "
- _fipsmodules+="ablk_helper cryptd twofish_x86_64_3way lrw glue_helper twofish_x86_64 twofish_common blowfish_generic "
- _fipsmodules+="blowfish_x86_64 blowfish_common des_generic cbc "
- _fipsmodules+="algif_hash af_alg crypto_user "
+ if [[ -f "${srcmods}/modules.fips" ]]; then
+ _fipsmodules="$(cat "${srcmods}/modules.fips")"
+ else
+ _fipsmodules="ansi_cprng arc4 authenc ccm "
+ _fipsmodules+="ctr cts deflate drbg "
+ _fipsmodules+="ecb fcrypt gcm ghash_generic khazad md4 michael_mic rmd128 "
+ _fipsmodules+="rmd160 rmd256 rmd320 seed "
+ _fipsmodules+="sha512_generic tcrypt tea wp512 xts "
+ _fipsmodules+="aes_s390 des_s390 sha256_s390 ghash_s390 sha1_s390 sha512_s390 "
+ _fipsmodules+="gf128mul "
+ _fipsmodules+="cmac vmac xcbc salsa20_generic salsa20_x86_64 camellia_generic camellia_x86_64 pcbc tgr192 anubis "
+ _fipsmodules+="cast6_generic cast5_generic cast_common sha512_ssse3 serpent_sse2_x86_64 serpent_generic twofish_generic "
+ _fipsmodules+="ablk_helper cryptd twofish_x86_64_3way lrw glue_helper twofish_x86_64 twofish_common blowfish_generic "
+ _fipsmodules+="blowfish_x86_64 blowfish_common des_generic cbc "
+ _fipsmodules+="algif_hash af_alg crypto_user "
+ fi
mkdir -m 0755 -p "${initdir}/etc/modprobe.d"
--
2.13.6
++++++ 0552-98integrity-support-validating-the-IMA-policy-file-s.patch ++++++ From d31e03d34cc743c6538f532704ec7fc3bc75a03d Mon Sep 17 00:00:00 2001
From: Stefan Berger From 266d28ad09755c1c7016891f356bb75a9861f77c Mon Sep 17 00:00:00 2001
From: Matthias Gerstner IMA validates file signatures based on the security.ima xattr. As of
Linux-4.7, instead of cat'ing the IMA policy into the securityfs policy,
the IMA policy pathname can be written, allowing the IMA policy file
signature to be validated.
This patch first attempts to write the pathname, but on failure falls
back to cat'ing the IMA policy contents .
Signed-off-by: Stefan Berger From 16d52f692c2add82f54f712a7fc60885536dc39a Mon Sep 17 00:00:00 2001
From: Matthias Gerstner Previously if no symmetric key was configured for EVM, then the
initialization process was aborted. It can be a valid use case, however,
to only use EVM digital signatures. In this case only X.509 certificates
need to be loaded.
With this change EVM initialization will continue if any of the
symmetric or X.509 keys could be loaded.
---
modules.d/98integrity/evm-enable.sh | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/modules.d/98integrity/evm-enable.sh b/modules.d/98integrity/evm-enable.sh
index a3ba59fd..5a92b598 100755
--- a/modules.d/98integrity/evm-enable.sh
+++ b/modules.d/98integrity/evm-enable.sh
@@ -125,11 +125,18 @@ enable_evm()
return 0
fi
- # load the EVM encrypted key
- load_evm_key || return 1
+ local evm_configured
+
+ # try to load the EVM encrypted key
+ load_evm_key && evm_configured=1
+
+ # try to load the EVM public key
+ load_evm_x509 && evm_configured=1
- # load the EVM public key, if it exists
- load_evm_x509
+ # only enable EVM if a key or x509 certificate could be loaded
+ if [ -z "$evm_configured" ]; then
+ return 1
+ fi
# initialize EVM
info "Enabling EVM"
--
2.13.6
++++++ 0555-Avoid-executing-emergency-hooks-twice.patch ++++++ From 64511ab0b73df0c9d704e61b14beba641818dd56 Mon Sep 17 00:00:00 2001
From: Ignaz Forster When using systemd emergency hooks were executed twice; this patch will avoid
that by only calling the hook of systemd is not called anyway.
Also see https://github.com/dracutdevs/dracut/pull/374
---
modules.d/99base/dracut-lib.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: dracut-044/modules.d/99base/dracut-lib.sh
===================================================================
--- dracut-044.orig/modules.d/99base/dracut-lib.sh
+++ dracut-044/modules.d/99base/dracut-lib.sh
@@ -1072,6 +1072,7 @@ _emergency_shell()
rm -f -- /.console_lock
else
debug_off
+ source_hook "$hook"
echo
/sbin/rdsosreport
echo 'You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot'
@@ -1122,12 +1123,12 @@ emergency_shell()
echo ; echo
warn "$*"
- source_hook "$hook"
echo
if getargbool 1 rd.shell -d -y rdshell || getarg rd.break -d rdbreak; then
_emergency_shell $_rdshell_name
else
+ source_hook "$hook"
warn "$action has failed. To debug this issue add \"rd.shell rd.debug\" to the kernel command line."
# cause a kernel panic
exit 1
++++++ 0556-95qeth_rules-Add-new-module-to-copy-qeth-rules.patch ++++++ From c4f914a33ac07348245b865dd356c60459d81b42 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Only pick rules for interfaces which have a carrier in the running
system. Those interfaces will be assembled by udev to allow booting
from those devices (i.e. iSCSI).
Reference: FATE#323440
---
modules.d/95qeth_rules/module-setup.sh | 59 ++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
create mode 100755 modules.d/95qeth_rules/module-setup.sh
diff --git a/modules.d/95qeth_rules/module-setup.sh b/modules.d/95qeth_rules/module-setup.sh
new file mode 100755
index 00000000..d4d15118
--- /dev/null
+++ b/modules.d/95qeth_rules/module-setup.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+# called by dracut
+check() {
+ local _arch=$(uname -m)
+ local _online=0
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ require_binaries /usr/lib/udev/collect || return 1
+ dracut_module_included network || return 1
+
+ [[ $hostonly ]] && {
+ for i in /sys/devices/qeth/*/online; do
+ read _online < $i
+ [ $_online -eq 1 ] && return 0
+ done
+ }
+ return 255
+}
+
+# called by dracut
+installkernel() {
+ instmods qeth
+}
+
+# called by dracut
+install() {
+ ccwid() {
+ qeth_path=$(readlink -e -q $1/device)
+ basename "$qeth_path"
+ }
+
+ inst_rules_qeth() {
+ for rule in /etc/udev/rules.d/{4,5}1-qeth-${1}.rules; do
+ # prefer chzdev generated 41- rules
+ if [ -f "$rule" ]; then
+ inst_rules "$rule"
+ break
+ fi
+ done
+ }
+
+ has_carrier() {
+ carrier=0
+ # not readable in qeth interfaces
+ # that have just been assembled, ignore
+ # read error and assume no carrier
+ read carrier 2>/dev/null < "$1/carrier"
+ [ "$carrier" -eq 1 ] && return 0
+ return 1;
+ }
+
+ for dev in /sys/class/net/*; do
+ has_carrier $dev || continue
+ id=$(ccwid $dev)
+ [ -n "$id" ] && inst_rules_qeth $id
+ done
+
+ inst_simple /usr/lib/udev/collect
+}
--
2.13.6
++++++ 0557-40network-make-arping-optional.patch ++++++ From a36a38050e9091b1325bd7cc9e2190a31bb0da26 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke 'arping' is not part of the standard installation on SLE15, so we
should be making it optional.
References: bsc#1078245
Signed-off-by: Hannes Reinecke From dbf455d3cca765be7453104b6c187ad979ac1e03 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin brctl is no longer default in SLE15, and its use has been obsoleted
by iputils2.
References: bsc#1078245
---
modules.d/40network/ifup.sh | 6 +++---
modules.d/40network/module-setup.sh | 1 -
modules.d/40network/parse-bridge.sh | 5 -----
3 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 11377e6b..9775084e 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -440,8 +440,8 @@ if [ -e /tmp/bridge.info ]; then
. /tmp/bridge.info
# start bridge if necessary
if [ "$netif" = "$bridgename" ] && [ ! -e /tmp/net.$bridgename.up ]; then
- brctl addbr $bridgename
- brctl setfd $bridgename 0
+ ip link add name $bridgename type bridge forward_delay 0
+ ip link set dev $bridgename up
for ethname in $bridgeslaves ; do
if [ "$ethname" = "$bondname" ] ; then
DO_BOND_SETUP=yes ifup $bondname -m
@@ -452,7 +452,7 @@ if [ -e /tmp/bridge.info ]; then
else
linkup $ethname
fi
- brctl addif $bridgename $ethname
+ ip link set dev $ethname master $bridgename
done
fi
fi
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
index 18cebc91..f99ca44c 100755
--- a/modules.d/40network/module-setup.sh
+++ b/modules.d/40network/module-setup.sh
@@ -35,7 +35,6 @@ install() {
local _arch _i _dir
inst_multiple ip hostname sed
inst_multiple -o arping ping ping6
- inst_multiple -o brctl
inst_multiple -o teamd teamdctl teamnl
inst_simple /etc/libnl/classid
inst_simple "$WICKEDD_DHCP_PATH/wickedd-dhcp4" "/usr/sbin/wickedd-dhcp4"
diff --git a/modules.d/40network/parse-bridge.sh b/modules.d/40network/parse-bridge.sh
index 212f2595..a15b64e3 100755
--- a/modules.d/40network/parse-bridge.sh
+++ b/modules.d/40network/parse-bridge.sh
@@ -10,11 +10,6 @@
# return if bridge already parsed
[ -n "$bridgename" ] && return
-# Check if bridge parameter is valid
-if getarg bridge= >/dev/null ; then
- command -v brctl >/dev/null 2>&1 || die "No 'brctl' installed"
-fi
-
parsebridge() {
local v=${1}:
set --
--
2.13.6
++++++ 0559-Add-wickedd-duid.xml-and-iaid.xml-if-available.patch ++++++ From 657315ab800d894691b8165329fa6b234a073d6f Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This allows to present the same identity to the dhcp server, and
thus retaining the IP address assigned during initrd phase in the
regular system.
Reference: bsc#1022872, bsc#1082832
---
modules.d/40network/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
index f99ca44c..2dd3630c 100755
--- a/modules.d/40network/module-setup.sh
+++ b/modules.d/40network/module-setup.sh
@@ -61,6 +61,7 @@ install() {
inst_multiple /etc/sysconfig/network/ifcfg-*
inst_multiple -o /etc/sysconfig/network/ifroute-*
inst_simple /etc/sysconfig/network/routes
+ inst_multiple -o /var/lib/wicked/duid.xml /var/lib/wicked/iaid.xml
}
inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \
--
2.13.6
++++++ 0560-90kernel-modules-Ensure-PCI-host-modules-are-include.patch ++++++ From aeee703cca60faf8ca41d21529d37738822576aa Mon Sep 17 00:00:00 2001
From: Daniel Molkentin The includes modules like the Intel Volume Management Device
driver, which is required to boot from disk on some systems.
Reference: boo#1079924
---
modules.d/90kernel-modules/module-setup.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index e1880725..41610a24 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -45,6 +45,8 @@ installkernel() {
# ensure early availability for e.g. emmc phys
instmods "=drivers/phy"
+ instmods "=drivers/pci/host"
+
instmods \
"=drivers/hid" \
"=drivers/input/serio" \
--
2.13.6
++++++ 0561-Add-the-qedi-driver-to-driver-list-for-iscsi-boot.patch ++++++ From 36ffd889434463968da7f3fd16c53f781adf460f Mon Sep 17 00:00:00 2001
From: Lee Duncan Reference: bsc#1084179
---
modules.d/95iscsi/module-setup.sh | 2 +-
modules.d/95iscsi/parse-iscsiroot.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
index a6173f7b..7c5b3099 100755
--- a/modules.d/95iscsi/module-setup.sh
+++ b/modules.d/95iscsi/module-setup.sh
@@ -179,7 +179,7 @@ depends() {
installkernel() {
local _arch=$(uname -m)
- instmods bnx2i qla4xxx cxgb3i cxgb4i be2iscsi
+ instmods bnx2i qla4xxx cxgb3i cxgb4i be2iscsi qedi
hostonly="" instmods iscsi_tcp iscsi_ibft crc32c iscsi_boot_sysfs
iscsi_module_filter() {
local _funcs='iscsi_register_transport'
diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh
index 43b2e088..f884e684 100755
--- a/modules.d/95iscsi/parse-iscsiroot.sh
+++ b/modules.d/95iscsi/parse-iscsiroot.sh
@@ -96,7 +96,7 @@ fi
initqueue --unique --onetime --timeout /sbin/iscsiroot timeout "$netroot" "$NEWROOT"
-initqueue --onetime modprobe --all -b -q qla4xxx cxgb3i cxgb4i bnx2i be2iscsi
+initqueue --onetime modprobe --all -b -q qla4xxx cxgb3i cxgb4i bnx2i be2iscsi qedi
# ISCSI actually supported?
if ! [ -e /sys/module/iscsi_tcp ]; then
--
2.13.6
++++++ 0562-Adjust-driver-list-to-modern-kernels.patch ++++++ From 1229cbc091ac11434b0b628d58630ce4c8fbe8e3 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This particularly enables aarch64 and adds critical drivers of ARM platform.
Reference: bsc#1084272
Full change summary of upstream changes included:
kernel-modules: include all HID driver in hostonly mode
If a kernel is updated in the undocked state and later on docked, some
keyboard modules can be missing.
Thus include all HID drivers.
(cherry picked from commit 8d26b5661ea2fd9fb41c83048b7590e44b1c95df)
kernel-modules: add usb-storage
To save the rdsosreport.txt to a USB stick, the usb-storage module is
needed
(cherry picked from commit b4dd861a0b916368bad9413fdc5d90482fcbd65a)
kernel-modules: join instmods and install all usb/storage
(cherry picked from commit 6bc2096cf58c4b52f23ecc1bf8dc301d6122dfb5)
kernel-modules: add nvme kernel module
(cherry picked from commit a84c391b8771e0238a0edb8b382ecbf7f2d2bfd3)
modules: kernel: add phy and power modules to generic initrd
The phy and power modules are needed by some of the recent ARM
devices that have appeared like CHIP and some exynos devices.
Signed-off-by: Peter Robinson From abb2c4123658ec5e9f7b21d92c80e1af7e879180 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin References: bsc#1078245
---
modules.d/40network/dhclient-script.sh | 6 ++----
modules.d/40network/ifup.sh | 25 ++++++++++++++++---------
modules.d/40network/module-setup.sh | 8 +++-----
modules.d/40network/net-lib.sh | 14 +++++++++-----
4 files changed, 30 insertions(+), 23 deletions(-)
diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/40network/dhclient-script.sh
index f8a558c7..fb9f5858 100755
--- a/modules.d/40network/dhclient-script.sh
+++ b/modules.d/40network/dhclient-script.sh
@@ -113,11 +113,9 @@ case $reason in
if [ -f /sys/class/net/$netif/device/layer2 ]; then
read layer2 < /sys/class/net/$netif/device/layer2
fi
- if ! which arping > /dev/null 2>&1 ; then
- layer2=0
- fi
if [ "$layer2" != "0" ]; then
- if ! arping -f -q -D -c 2 -I $netif $new_ip_address ; then
+ wicked arp verify $netif $new_ip_address 2>/dev/null
+ if [ $? -eq 4 ]; then
warn "Duplicate address detected for $new_ip_address while doing dhcp. retrying"
exit 1
fi
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 9775084e..a51b6a30 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -214,9 +214,9 @@ do_dhcp() {
else
ipv6_mode="managed"
fi
- dhclient="wickedd-dhcp6 --test --test-mode $ipv6_mode"
+ dhclient="wicked test dhcp6"
else
- dhclient="wickedd-dhcp4 --test"
+ dhclient="wicked test dhcp4"
fi
if ! linkup $netif; then
@@ -229,9 +229,8 @@ do_dhcp() {
[ -n "$mtu" ] && ip $1 link set mtu $mtu dev $netif
fi
- $dhclient --test-format leaseinfo --test-output /tmp/leaseinfo.${netif}.dhcp.ipv${1:1:1} --test-request - $netif << EOF
-<request type="lease"/>
-EOF
+ echo '<request type="lease"/>' > /tmp/request.${netif}.dhcp.ipv${1:1:1}
+ $dhclient --format leaseinfo --output /tmp/leaseinfo.${netif}.dhcp.ipv${1:1:1} --request /tmp/request.${netif}.dhcp.ipv${1:1:1} $netif
dhcp_apply $1 || return $?
if [ "$1" = "-6" ] ; then
@@ -329,10 +328,18 @@ if strglobin $ip '*:*:*'; then
wait_for_ipv6_dad $netif
[ "$gw" = "::" ] && gw=""
else
- if which arping > /dev/null 2>&1 -a ! arping -f -q -D -c 2 -I $netif $ip; then
- warn "Duplicate address detected for $ip for interface $netif."
- return 1
- fi
+ wicked arp verify --quiet $netif $ip 2>/dev/null
+ case "$?" in
+ 1)
+ info "$netif does not support ARP, cannot attempt to resolve $dest."
+ ;;
+ 4)
+ warn "Duplicate address detected for $ip for interface $netif."
+ return 1
+ ;;
+ *)
+ ;;
+ esac
# Assume /24 prefix for IPv4
[ -z "$prefix" ] && prefix=24
ip addr add $ip/$prefix ${srv:+peer $srv} brd + dev $netif
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
index 2dd3630c..023400ac 100755
--- a/modules.d/40network/module-setup.sh
+++ b/modules.d/40network/module-setup.sh
@@ -1,13 +1,12 @@
#!/bin/bash
-WICKEDD_DHCP_PATH="/usr/lib/wicked/bin"
WICKED_EXT_PATH="/etc/wicked/extensions"
# called by dracut
check() {
local _program
- require_binaries ip $WICKEDD_DHCP_PATH/wickedd-dhcp4 $WICKEDD_DHCP_PATH/wickedd-dhcp6 || return 1
+ require_binaries ip wicked || return 1
return 255
}
@@ -34,11 +33,10 @@ installkernel() {
install() {
local _arch _i _dir
inst_multiple ip hostname sed
- inst_multiple -o arping ping ping6
+ inst_multiple ping ping6
inst_multiple -o teamd teamdctl teamnl
+ inst_multiple wicked
inst_simple /etc/libnl/classid
- inst_simple "$WICKEDD_DHCP_PATH/wickedd-dhcp4" "/usr/sbin/wickedd-dhcp4"
- inst_simple "$WICKEDD_DHCP_PATH/wickedd-dhcp6" "/usr/sbin/wickedd-dhcp6"
inst_libdir_file "libwicked*.so.*"
inst_libdir_file "libdbus-1.so.*"
inst_script "$moddir/ifup.sh" "/sbin/ifup"
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
index c8ab84d0..b491f8e1 100755
--- a/modules.d/40network/net-lib.sh
+++ b/modules.d/40network/net-lib.sh
@@ -199,12 +199,16 @@ setup_net() {
read layer2 < /sys/class/net/$netif/device/layer2
fi
- if ! which arping > /dev/null 2>&1 ; then
- layer2=0
- fi
-
if [ "$layer2" != "0" ] && [ -n "$dest" ] && ! strstr "$dest" ":"; then
- arping -q -f -w 60 -I $netif $dest || info "Resolving $dest via ARP on $netif failed"
+ wicked arp ping --interval 3000 --replies 1 --timeout 60000 --quiet $netif $dest 2>/dev/null
+ case "$?" in
+ 0)
+ # Everything is ok
+ ;;
+ *)
+ info "Resolving $dest via ARP on $netif failed"
+ ;;
+ esac
fi
unset layer2
--
2.13.6
++++++ 0564-40network-Always-set-the-gw-variable.patch ++++++ From 25c8b7f654a906d9829e273578b02d5e6a4c2b0c Mon Sep 17 00:00:00 2001
From: Daniel Molkentin $gw was not set in case of dhcp. This resulted in some codepathes,
including vital checks, not being executed with wicked.
Reference: bsc#1085614
---
modules.d/40network/ifup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index a51b6a30..2d93cebd 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -123,6 +123,7 @@ dhcp_apply() {
# Assign provided routers
local g
if [ -n "${GATEWAYS}" ]; then
+ gw="${GATEWAYS%% *}"
for g in ${GATEWAYS}; do
ip $1 route add default via "$g" dev "$INTERFACE" && break
done
--
2.13.6
++++++ 0565-90kernel-modules-Include-Intel-Volume-Management-Dev.patch ++++++ From 99a2f22df36de96f6da808b9720a400980729b35 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Reference: bsc#1079924
---
modules.d/90kernel-modules/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 37cc76f3..1eff6f52 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -55,7 +55,7 @@ installkernel() {
yenta_socket scsi_dh_rdac scsi_dh_emc scsi_dh_alua \
atkbd i8042 usbhid firewire-ohci pcmcia hv-vmbus \
virtio virtio_blk virtio_ring virtio_pci virtio_scsi \
- "=drivers/pcmcia" =ide nvme
+ "=drivers/pcmcia" =ide nvme vmd
if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]]; then
# arm/aarch64 specific modules
--
2.13.6
++++++ 0566-95nfs-If-no-server-is-configured-read-BOOTSERVERADDR.patch ++++++ From af76a8ca775ba44815116ae880de56d7a8a03c97 Mon Sep 17 00:00:00 2001
From: Fabian Vogt References: boo#1089332
---
modules.d/95nfs/nfs-lib.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/95nfs/nfs-lib.sh b/modules.d/95nfs/nfs-lib.sh
index 58aa7e30..b2e5f91d 100755
--- a/modules.d/95nfs/nfs-lib.sh
+++ b/modules.d/95nfs/nfs-lib.sh
@@ -106,7 +106,7 @@ anaconda_nfsv6_to_var() {
# fill in missing server/path from DHCP options.
nfsroot_from_dhcp() {
local f
- for f in /tmp/net.$1.override /tmp/dhclient.$1.dhcpopts; do
+ for f in /tmp/net.$1.override /tmp/dhclient.$1.dhcpopts /tmp/leaseinfo.$1.dhcp.*; do
[ -f $f ] && . $f
done
[ -n "$new_root_path" ] && nfsroot_to_var "$nfs:$new_root_path"
@@ -114,6 +114,7 @@ nfsroot_from_dhcp() {
[ -z "$server" ] && server=$srv
[ -z "$server" ] && server=$new_dhcp_server_identifier
[ -z "$server" ] && server=$new_next_server
+ [ -z "$server" ] && server=$BOOTSERVERADDR
[ -z "$server" ] && server=${new_root_path%%:*}
}
--
2.13.6
++++++ 0567-Fix-booting-with-fips-1-on-SLES-15.patch ++++++ From c3f2e356ca15c32123334764c014df264d72f149 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Also, add some documentation on how FIPS actually works.
Reference: bsc#1074984
---
modules.d/01fips/module-setup.sh | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
index 709cfc85..178bae17 100755
--- a/modules.d/01fips/module-setup.sh
+++ b/modules.d/01fips/module-setup.sh
@@ -13,6 +13,12 @@ depends() {
# called by dracut
installkernel() {
local _fipsmodules _mod
+ # The FIPS process requires that crypto primitives should perform a power-up self test. They must not be loaded and
+ # used prior to successful completion. FIPS140-2, section 4.9 mandates that during power-up, crypto algorithms should
+ # perform self tests, displaying an error if any one of them fails.
+
+ # dracut implements this by first compiling a blacklist (provided by the kernel in newer distros) and then
+ # load the modules in that list one by one in a controlled manner, aborting on failure.
if [[ -f "${srcmods}/modules.fips" ]]; then
_fipsmodules="$(cat "${srcmods}/modules.fips")"
else
@@ -28,6 +34,7 @@ installkernel() {
_fipsmodules+="ablk_helper cryptd twofish_x86_64_3way lrw glue_helper twofish_x86_64 twofish_common blowfish_generic "
_fipsmodules+="blowfish_x86_64 blowfish_common des_generic cbc "
_fipsmodules+="algif_hash af_alg crypto_user "
+ _fipsmodules+="sha3_generic "
fi
mkdir -m 0755 -p "${initdir}/etc/modprobe.d"
@@ -52,10 +59,10 @@ install() {
inst_libdir_file \
fipscheck .fipscheck.hmac \
libfipscheck.so.1 \
- .libfipscheck.so.1.hmac .libfipscheck.so.1.1.0.hmac \
- libcrypto.so.1.0.0 libssl.so.1.0.0 \
- .libcrypto.so.1.0.0.hmac .libssl.so.1.0.0.hmac \
- .libcryptsetup.so.4.5.0.hmac .libcryptsetup.so.4.hmac \
+ .libfipscheck.so.1.hmac .libfipscheck.so.1.2.1.hmac \
+ libcrypto.so.1.1 libssl.so.1.1 \
+ .libcrypto.so.1.1.hmac .libssl.so.1.1.hmac \
+ .libcryptsetup.so.12.1.0.hmac .libcryptsetup.so.12.hmac \
.libgcrypt.so.20.hmac \
libfreeblpriv3.so libfreeblpriv3.chk
--
2.13.6
++++++ 0568-95multipath-Pickup-files-in-etc-multipath-conf.d.patch ++++++ From 05f1365ffd1c03bad44fdbb312769044cda032a8 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Reference: boo#1048551
---
modules.d/90multipath/module-setup.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index 85848068..4e059b41 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -92,7 +92,8 @@ install() {
xdrgetprio \
/etc/xdrdevices.conf \
/etc/multipath.conf \
- /etc/multipath/*
+ /etc/multipath/* \
+ /etc/multipath/conf.d/*
inst $(command -v partx) /sbin/partx
--
2.12.3
++++++ 0569-10i18n-Load-all-keymaps-for-a-given-locale.patch ++++++ From afd09c9a87ef09e2595f71fdae1d38ac00cfd071 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Previously, dracut would only copy the first one found. However,
with legacy maps for some locales around, there is a chance we
pick the wrong one. Pick all matching keymaps instead
Reference: boo#1065058
---
modules.d/10i18n/module-setup.sh | 35 ++++++++++++++++++++---------------
1 file changed, 20 insertions(+), 15 deletions(-)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index d6aab19f..be4ada54 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -30,21 +30,24 @@ install() {
# This is from 10redhat-i18n.
findkeymap () {
- local MAP=$1
+ local MAPS=$1
local MAPNAME=${1%.map*}
- [[ ! -f $MAP ]] && \
- MAP=$(find ${kbddir}/keymaps -type f -name ${MAPNAME} -o -name ${MAPNAME}.map -o -name ${MAPNAME}.map.\* | head -n1)
- [[ " $KEYMAPS " = *" $MAP "* ]] && return
- KEYMAPS="$KEYMAPS $MAP"
- case $MAP in
- *.gz) cmd=zgrep;;
- *.bz2) cmd=bzgrep;;
- *) cmd=grep ;;
- esac
-
- for INCL in $($cmd "^include " $MAP | while read a a b || [ -n "$a" ]; do echo ${a//\"/}; done); do
- for FN in $(find ${kbddir}/keymaps -type f -name $INCL\*); do
- findkeymap $FN
+ local map
+ [[ ! -f $MAPS ]] && \
+ MAPS=$(find ${kbddir}/keymaps -type f -name ${MAPNAME} -o -name ${MAPNAME}.map -o -name ${MAPNAME}.map.\*)
+
+ for map in $MAPS; do
+ KEYMAPS="$KEYMAPS $map"
+ case $map in
+ *.gz) cmd=zgrep;;
+ *.bz2) cmd=bzgrep;;
+ *) cmd=grep ;;
+ esac
+
+ for INCL in $($cmd "^include " $map | while read a a b || [ -n "$a" ]; do echo ${a//\"/}; done); do
+ for FN in $(find ${kbddir}/keymaps -type f -name $INCL\*); do
+ findkeymap $FN
+ done
done
done
}
@@ -185,7 +188,9 @@ install() {
findkeymap ${map}
done
- inst_opt_decompress ${KEYMAPS}
+ for keymap in ${KEYMAPS}; do
+ inst_opt_decompress ${keymap}
+ done
inst_opt_decompress ${kbddir}/consolefonts/${DEFAULT_FONT}.*
--
2.16.3
++++++ 0570-10i18n-Fix-possible-infinite-recursion.patch ++++++ From a4e11a0e4d6fbed25244cc0f01732f81841bd642 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin ---
modules.d/10i18n/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index be4ada54..9083e98f 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -46,7 +46,7 @@ install() {
for INCL in $($cmd "^include " $map | while read a a b || [ -n "$a" ]; do echo ${a//\"/}; done); do
for FN in $(find ${kbddir}/keymaps -type f -name $INCL\*); do
- findkeymap $FN
+ strstr "$KEYMAPS" "$FN" || findkeymap $FN
done
done
done
--
2.16.3
++++++ 0571-40network-Fix-static-network-setup.patch ++++++ From a3fdbedce43956881ca01c94543b22e37d205da6 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Patch-by: Thomas Blume From b2e09d1d444e771493c26c576256f962bd8869f3 Mon Sep 17 00:00:00 2001
From: Harald Hoyer silence the cat
---
lsinitrd.sh | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/lsinitrd.sh b/lsinitrd.sh
index 1e4d99ac..9c7a178b 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -120,7 +120,7 @@ extract_files()
for f in "${!filenames[@]}"; do
[[ $nofileinfo ]] || echo "initramfs:/$f"
[[ $nofileinfo ]] || echo "========================================================================"
- $CAT $image | cpio --extract --verbose --quiet --to-stdout $f 2>/dev/null
+ $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --to-stdout $f 2>/dev/null
((ret+=$?))
[[ $nofileinfo ]] || echo "========================================================================"
[[ $nofileinfo ]] || echo
@@ -139,15 +139,14 @@ list_files()
{
echo "========================================================================"
if [ "$sorted" -eq 1 ]; then
- $CAT "$image" | cpio --extract --verbose --quiet --list | sort -n -k5
+ $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --list | sort -n -k5
else
- $CAT "$image" | cpio --extract --verbose --quiet --list | sort -k9
+ $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --list | sort -k9
fi
((ret+=$?))
echo "========================================================================"
}
-
if (( ${#filenames[@]} <= 0 )); then
echo "Image: $image: $(du -h $image | while read a b || [ -n "$a" ]; do echo $a;done)"
echo "========================================================================"
--
2.16.3
++++++ 0573-lsinitrd.sh-quote-filename-in-extract_files.patch ++++++ From 0bb520ee706a0927f538004e2acb50d8c2b469b3 Mon Sep 17 00:00:00 2001
From: Harald Hoyer ---
lsinitrd.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lsinitrd.sh b/lsinitrd.sh
index 9c7a178b..da7bf044 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -120,7 +120,7 @@ extract_files()
for f in "${!filenames[@]}"; do
[[ $nofileinfo ]] || echo "initramfs:/$f"
[[ $nofileinfo ]] || echo "========================================================================"
- $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --to-stdout $f 2>/dev/null
+ $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --to-stdout "$f" 2>/dev/null
((ret+=$?))
[[ $nofileinfo ]] || echo "========================================================================"
[[ $nofileinfo ]] || echo
--
2.16.3
++++++ 0574-s-find_btrfs_devs-btrfs_devs.patch ++++++ From bfa4e45fa74fabf70ca0d80869e3b209f300ef6d Mon Sep 17 00:00:00 2001
From: Harald Hoyer References: bsc#1104178
Patch-mainline: 048
Git-commit: bfa4e45fa74fabf70ca0d80869e3b209f300ef6d
---
dracut.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index f52d38ac472a..5b5b27e322c5 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1236,7 +1236,7 @@ if [[ $hostonly ]] && [[ "$hostonly_default_device" != "no" ]]; then
push_host_devs "$_dev"
if [[ "$_t" == btrfs ]]; then
- for i in $(find_btrfs_devs "$_m"); do
+ for i in $(btrfs_devs "$_m"); do
push_host_devs "$i"
done
fi
--
2.13.7
++++++ 0580-check_for_CONFIG_ACPI_TABLE_UPGRADE.patch ++++++
From: Harald Hoyer From 09ba1b289f2cba613c1950b03f0f549ebb7eb83f Mon Sep 17 00:00:00 2001
From: Kairui Song To support pmem devices, nfit module is required
---
modules.d/90kernel-modules/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: dracut-044/modules.d/90kernel-modules/module-setup.sh
===================================================================
--- dracut-044.orig/modules.d/90kernel-modules/module-setup.sh
+++ dracut-044/modules.d/90kernel-modules/module-setup.sh
@@ -55,7 +55,7 @@ installkernel() {
yenta_socket scsi_dh_rdac scsi_dh_emc scsi_dh_alua \
atkbd i8042 usbhid firewire-ohci pcmcia hv-vmbus \
virtio virtio_blk virtio_ring virtio_pci virtio_scsi \
- "=drivers/pcmcia" =ide nvme vmd
+ "=drivers/pcmcia" =ide nvme vmd nfit
if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]]; then
# arm/aarch64 specific modules
++++++ 0582-98dracut-systemd-Start-systemd-vconsole-setup-before.patch ++++++ From e9a84e0a215fb5a79e563f665bc406c0ea177d32 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This is what happened before this patch (edited for brevity):
dracut-cmdline-ask.service in modules.d/98dracut-systemd, which invokes
dracut-cmdline-ask.sh. This script and systemd-vconsole-setup are
started in parallel for the same console (tty1).
Then dracut-cmdline-ask quits immediately without doing anything (unless
rd.cmdline=ask is given). As this is a bash script and it gets tty as
stdin as specified in its *.service, this triggers the hangup of tty1 at
its exit.
Meanwhile systemd-vconsole-setup continues and tries some ioctls after
that, but they fail because of the hung up tty1.
The usual culprit for starting systemd-vconsole-setup early on is
plymouth-start.service, even if plymouth.enable=0 is set.
A popular (and annoying) symptom of this as reported by users was
the inability use their configured keyboard layout in plymouth when
unlocking their crypted block devices.
Reference: boo#1055834
---
modules.d/98dracut-systemd/dracut-cmdline-ask.service | 2 ++
1 file changed, 2 insertions(+)
Index: dracut-044/modules.d/98dracut-systemd/dracut-cmdline-ask.service
===================================================================
--- dracut-044.orig/modules.d/98dracut-systemd/dracut-cmdline-ask.service
+++ dracut-044/modules.d/98dracut-systemd/dracut-cmdline-ask.service
@@ -12,6 +12,8 @@ Description=dracut ask for additional cm
DefaultDependencies=no
Before=dracut-cmdline.service
After=systemd-journald.socket
+After=systemd-vconsole-setup.service
+Requires=systemd-vconsole-setup.service
Wants=systemd-journald.socket
ConditionPathExists=/usr/lib/initrd-release
ConditionKernelCommandLine=|rd.cmdline=ask
++++++ 0583-99base-Allow-files-with-backslashes-in-hostonly-file.patch ++++++ From 7117bf627028298970d8a6a5e153e1942f3430f3 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Files with blackslashes are routinely by systemd.
Reference: bsc#1090884
---
modules.d/99base/dracut-lib.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: dracut-044/modules.d/99base/dracut-lib.sh
===================================================================
--- dracut-044.orig/modules.d/99base/dracut-lib.sh
+++ dracut-044/modules.d/99base/dracut-lib.sh
@@ -1291,7 +1291,7 @@ show_memstats()
remove_hostonly_files() {
rm -fr /etc/cmdline /etc/cmdline.d/*.conf "$hookdir/initqueue/finished"
if [ -f /lib/dracut/hostonly-files ]; then
- while read line || [ -n "$line" ]; do
+ while read -r line || [ -n "$line" ]; do
[ -e "$line" ] || [ -h "$line" ] || continue
rm -f "$line"
done < /lib/dracut/hostonly-files
++++++ 0584-95dasd_rules-mark-dasd-rules-host_only.patch ++++++ From b38b7fef36333a59890233dccfbbb6d2c40ebe83 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin Reference: bsc#1090884
---
modules.d/95dasd_rules/module-setup.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules.d/95dasd_rules/module-setup.sh b/modules.d/95dasd_rules/module-setup.sh
index 488400c3..124dbad9 100755
--- a/modules.d/95dasd_rules/module-setup.sh
+++ b/modules.d/95dasd_rules/module-setup.sh
@@ -54,6 +54,8 @@ install() {
if [[ $hostonly ]] ; then
inst_rules_wildcard 51-dasd-*.rules
inst_rules_wildcard 41-s390x-dasd-*.rules
+ mark_hostonly /etc/udev/rules.d/51-dasd-*.rules
+ mark_hostonly /etc/udev/rules.d/41-s390x-dasd-*.rules
fi
inst_rules 59-dasd.rules
}
--
2.16.4
++++++ 0585-emergency-mode-use-sulogin.patch ++++++ From 97ce7a8179dfebe16d072d8d7355af3817512d0d Mon Sep 17 00:00:00 2001
From: Daniel Molkentin - allow emergency login on every console
specified in the kernel cmdline
- require password for hostonly images
- emergency mode: Manually multiplex emergency infos
This will bring all vital information to all ttys specified
as console devices, regardless of wether they hold the C flag.
Reference: FATE#325386
Reference: #449
---
modules.d/98dracut-systemd/dracut-emergency.sh | 29 +++++++++++++++-----------
modules.d/98dracut-systemd/module-setup.sh | 2 ++
modules.d/99base/module-setup.sh | 8 +++++--
3 files changed, 25 insertions(+), 14 deletions(-)
Index: dracut-044/modules.d/98dracut-systemd/dracut-emergency.sh
===================================================================
--- dracut-044.orig/modules.d/98dracut-systemd/dracut-emergency.sh
+++ dracut-044/modules.d/98dracut-systemd/dracut-emergency.sh
@@ -17,20 +17,26 @@ source_hook "$hook"
if getargbool 1 rd.shell -d -y rdshell || getarg rd.break -d rdbreak; then
FSTXT="/usr/share/fsck/fsck_help_$fstype.txt"
+ RDSOSREPORT="$(rdsosreport)"
echo
- rdsosreport
- echo
- echo
- echo 'Entering emergency mode. Exit the shell to continue.'
- echo 'Type "journalctl" to view system logs.'
- echo 'You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot'
- echo 'after mounting them and attach it to a bug report.'
- echo
- echo
- [ -f $FSTXT ] && cat $FSTXT
+ while read _tty rest; do
+ (
+ echo
+ echo $RDSOSREPORT
+ echo
+ echo
+ echo 'Entering emergency mode. Exit the shell to continue.'
+ echo 'Type "journalctl" to view system logs.'
+ echo 'You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot'
+ echo 'after mounting them and attach it to a bug report.'
+ echo
+ echo
+ [ -f "$FSTXT" ] && cat "$FSTXT"
+ ) > /dev/$_tty
+ done < /dev/consoles
[ -f /etc/profile ] && . /etc/profile
[ -z "$PS1" ] && export PS1="$_name:\${PWD}# "
- exec sh -i -l
+ exec sulogin -e
else
warn "$action has failed. To debug this issue add \"rd.shell rd.debug\" to the kernel command line."
exit 1
Index: dracut-044/modules.d/98dracut-systemd/module-setup.sh
===================================================================
--- dracut-044.orig/modules.d/98dracut-systemd/module-setup.sh
+++ dracut-044/modules.d/98dracut-systemd/module-setup.sh
@@ -59,5 +59,7 @@ install() {
done
inst_simple "$moddir/dracut-tmpfiles.conf" "$tmpfilesdir/dracut-tmpfiles.conf"
+
+ inst_multiple sulogin
}
Index: dracut-044/modules.d/99base/module-setup.sh
===================================================================
--- dracut-044.orig/modules.d/99base/module-setup.sh
+++ dracut-044/modules.d/99base/module-setup.sh
@@ -26,9 +26,13 @@ install() {
(ln -s bash "${initdir}/bin/sh" || :)
fi
- #add common users in /etc/passwd, it will be used by nfs/ssh currently
- egrep '^root:' "$initdir/etc/passwd" 2>/dev/null || echo 'root:x:0:0::/root:/bin/sh' >> "$initdir/etc/passwd"
- egrep '^nobody:' /etc/passwd >> "$initdir/etc/passwd"
+ # add common users in /etc/passwd, it will be used by nfs/ssh currently
+ # use password for hostonly images to facilitate secure sulogin in emergency console
+ [[ $hostonly ]] && pwshadow='x'
+ grep '^root:' "$initdir/etc/passwd" 2>/dev/null || echo "root:$pwshadow:0:0::/root:/bin/sh" >> "$initdir/etc/passwd"
+ grep '^nobody:' /etc/passwd >> "$initdir/etc/passwd"
+
+ [[ $hostonly ]] && grep '^root:' /etc/shadow >> "$initdir/etc/shadow"
# install our scripts and hooks
inst_script "$moddir/init.sh" "/init"
++++++ 0586-95zfcp_rules-parse-zfcp.sh-remove-rule-existence-check.patch ++++++
diff -ur dracut-044.orig/modules.d/95zfcp_rules/parse-zfcp.sh dracut-044/modules.d/95zfcp_rules/parse-zfcp.sh
--- dracut-044.orig/modules.d/95zfcp_rules/parse-zfcp.sh 2018-12-21 11:52:21.457034071 +0100
+++ dracut-044/modules.d/95zfcp_rules/parse-zfcp.sh 2018-12-21 11:56:19.179414976 +0100
@@ -22,8 +22,6 @@
return 0;
fi
- [ -e ${_rule} ] && return 0
-
if [ ! -f "$_rule" ] ; then
cat > $_rule < From 43b774786cc4583e682c1f7f397643c7c1fccadf Mon Sep 17 00:00:00 2001
From: Daniel Molkentin It has
omit_drivers+=" i2o_scsi"
which would break the next omit_drivers+="foo " if it's
missing a space at the beginning.
Reference: boo#1121251
---
dracut.conf.d/gentoo.conf.example | 2 +-
dracut.conf.d/suse.conf.example | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dracut.conf.d/gentoo.conf.example b/dracut.conf.d/gentoo.conf.example
index 26e73147..df102e00 100644
--- a/dracut.conf.d/gentoo.conf.example
+++ b/dracut.conf.d/gentoo.conf.example
@@ -12,4 +12,4 @@ ro_mnt=yes
i18n_vars="/etc/conf.d/keymaps:keymap-KEYMAP,extended_keymaps-EXT_KEYMAPS /etc/conf.d/consolefont:consolefont-FONT,consoletranslation-FONT_MAP /etc/rc.conf:unicode-UNICODE"
i18n_default_font="LatArCyrHeb-16"
-omit_drivers+=" i2o_scsi"
+omit_drivers+=" i2o_scsi "
diff --git a/dracut.conf.d/suse.conf.example b/dracut.conf.d/suse.conf.example
index 37ffd72b..e1d800c8 100644
--- a/dracut.conf.d/suse.conf.example
+++ b/dracut.conf.d/suse.conf.example
@@ -10,7 +10,7 @@ hostonly_cmdline="yes"
compress="xz -0 --check=crc32 --memlimit-compress=50%"
i18n_vars="/etc/sysconfig/language:RC_LANG-LANG,RC_LC_ALL-LC_ALL /etc/sysconfig/console:CONSOLE_UNICODEMAP-FONT_UNIMAP,CONSOLE_FONT-FONT,CONSOLE_SCREENMAP-FONT_MAP /etc/sysconfig/keyboard:KEYTABLE-KEYMAP"
-omit_drivers+=" i2o_scsi"
+omit_drivers+=" i2o_scsi "
# Below adds additional tools to the initrd which are not urgently necessary to
# bring up the system, but help to debug problems.
--
2.16.4
++++++ 0588-Ensure-mmc-host-modules-get-included-properly.patch ++++++ From 68777f36a4041f520197531e94a1b909801e67d9 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin This fixes an in incorrect part of the backport in
1229cbc091ac11434b0b628d58630ce4c8fbe8e3
aka Adjust-driver-list-to-modern-kernels.patch
Patch is not applicable for 049
Reference: bsc#1119037
---
modules.d/90kernel-modules/module-setup.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index cc6a9309..79e615a6 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -5,6 +5,9 @@ installkernel() {
if [[ -z $drivers ]]; then
block_module_filter() {
local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host'
+ if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]]; then
+ _blockfuncs+='|dw_mc_probe|dw_mci_pltfm_register'
+ fi
# subfunctions inherit following FDs
local _merge=8 _side2=9
function bmf1() {
@@ -59,7 +62,6 @@ installkernel() {
if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]]; then
# arm/aarch64 specific modules
- _blockfuncs+='|dw_mc_probe|dw_mci_pltfm_register'
instmods \
"=drivers/clk" \
"=drivers/dma" \
--
2.16.4
++++++ 0589-Fix-98dracut-systemd-dracut-emergency.sh.patch ++++++ From 0d08f43d7137e10cbbf7390809c4659128f8a2ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=B6sz=C3=B6rm=C3=A9nyi=20Zolt=C3=A1n?= /dev/consoles does not exist. It's /proc/consoles.
Signed-off-by: Böszörményi Zoltán From 53cb081b4c3afa843022d8e6156bdbd4808db4a2 Mon Sep 17 00:00:00 2001
From: Frantisek Sumsal The recent systemd upstream introduced a slightly modified version
string which included information about a git commit, which however
broke the version check in dracut. Unfortunately, the (( )) bash syntax
went along with it in certain cases and introduced a pretty nasty issue,
when the systemd would boot up but with slightly changed environment.
To prevent this from happening in the future, let's at least check if
the version parsed from the `systemd --version` output is a comparable
number.
---
modules.d/00systemd/module-setup.sh | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
index 1ed4b34f..3583062b 100755
--- a/modules.d/00systemd/module-setup.sh
+++ b/modules.d/00systemd/module-setup.sh
@@ -5,6 +5,11 @@ check() {
[[ $mount_needs ]] && return 1
if require_binaries $systemdutildir/systemd; then
SYSTEMD_VERSION=$($systemdutildir/systemd --version | { read a b a; echo $b; })
+ # Check if the systemd version is a valid number
+ if ! [[ $SYSTEMD_VERSION =~ ^[0-9]+$ ]]; then
+ dfatal "systemd version is not a number ($SYSTEMD_VERSION)"
+ exit 1
+ fi
(( $SYSTEMD_VERSION >= 198 )) && return 0
return 255
fi
--
2.16.4
++++++ 0591-91zipl-Don-t-use-contents-of-commented-lines.patch ++++++ From 38ccf7c8e5e19b1e7ef400ff0a77eb92531754c0 Mon Sep 17 00:00:00 2001
From: Thomas Abraham Comment lines should be ignored. They should not be used for determining
the /boot/zipl device
---
modules.d/91zipl/module-setup.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/91zipl/module-setup.sh b/modules.d/91zipl/module-setup.sh
index d0cd75da..2f95fd55 100755
--- a/modules.d/91zipl/module-setup.sh
+++ b/modules.d/91zipl/module-setup.sh
@@ -22,7 +22,7 @@ depends() {
installkernel() {
local _boot_zipl
- _boot_zipl=$(sed -n 's/\(.*\)\w*\/boot\/zipl.*/\1/p' /etc/fstab)
+ _boot_zipl=$(sed -n -e '/^[[:space:]]*#/d' -e 's/\(.*\)\w*\/boot\/zipl.*/\1/p' /etc/fstab)
if [ -n "$_boot_zipl" ] ; then
eval $(blkid -s TYPE -o udev ${_boot_zipl})
if [ -n "$ID_FS_TYPE" ] ; then
@@ -40,7 +40,7 @@ installkernel() {
cmdline() {
local _boot_zipl
- _boot_zipl=$(sed -n 's/\(.*\)\w*\/boot\/zipl.*/\1/p' /etc/fstab)
+ _boot_zipl=$(sed -n -e '/^[[:space:]]*#/d' -e 's/\(.*\)\w*\/boot\/zipl.*/\1/p' /etc/fstab)
if [ -n "$_boot_zipl" ] ; then
echo "rd.zipl=${_boot_zipl}"
fi
--
2.16.4
++++++ 0592-95iscsi-handle-qedi-like-bnx2i.patch ++++++ From 8095b250d173b0e12f9826e7124c0781086be891 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin The new qedi driver needs to be handled just like
the bnx2i driver, so update 95iscsi scripts to do this.
References: bsc#1113712
Signed-off-by: Lee Duncan From 97b36b154ce40f91b1c73a610c796965a569b637 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin (Cherry-picked from 076fcd1652af25f57aae063fda3b8c39ef828ac6)
---
install/dracut-install.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/install/dracut-install.c b/install/dracut-install.c
index a7bfdb8c..381327c2 100644
--- a/install/dracut-install.c
+++ b/install/dracut-install.c
@@ -222,8 +222,13 @@ static int cp(const char *src, const char *dst)
if (ret == 0) {
struct timeval tv[2];
if (fchown(dest_desc, sb.st_uid, sb.st_gid) != 0)
- if(fchown(dest_desc, (uid_t) - 1, sb.st_gid) != 0)
- log_error("Failed to chown %s: %m", dst);
+ if(fchown(dest_desc, (uid_t) - 1, sb.st_gid) != 0) {
+ if (geteuid() == 0)
+ log_error("Failed to chown %s: %m", dst);
+ else
+ log_info("Failed to chown %s: %m", dst);
+ }
+
tv[0].tv_sec = sb.st_atime;
tv[0].tv_usec = 0;
tv[1].tv_sec = sb.st_mtime;
--
2.16.4
++++++ 0594-Check-SUSE-kernel-module-dependencies-recursively.patch ++++++ From 6ead8ad47fa141eca039c45f09805808a5ff7d4d Mon Sep 17 00:00:00 2001
From: Daniel Molkentin From 06d95ed6eb72ad9b1a4666b3d7cb6977e5b83ca5 Mon Sep 17 00:00:00 2001
From: Martin Wilck From 9aeceb14e010d68f8ee92f60664eef39d57552c2 Mon Sep 17 00:00:00 2001
From: Martin Wilck This fixes commit f29f334cf1638594f90bbf3e775917c610232785
Reference: bsc#1127891
---
dracut-init.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut-init.sh b/dracut-init.sh
index 65597ffa..74e2086d 100644
--- a/dracut-init.sh
+++ b/dracut-init.sh
@@ -954,7 +954,7 @@ for_each_kmod_dep() {
for suse_mod_dep in ${suse_mod_deps["${_kmod%.ko*}"]}; do
_modpath=$(modinfo -k "$kernel" -F filename "$suse_mod_dep" 2> /dev/null)
[ -n "$_modpath" ] || continue
- for_each_kmod_dep "$_func" "$_modpath" "$@"
+ for_each_kmod_dep "$_func" $(basename "${_modpath%.ko*}") "$@"
$_func ${_modpath} || exit $?
done
}
--
2.16.4
++++++ 0595-iscsi-don-t-continue-waiting-if-the-root-device-is-p.patch ++++++
present
dracut waits for every iscsiroot connection to be established
before switching root. This is not necessary in multipath scenarios,
where a single path is usually sufficient to set up the root device,
and where users expect booting to succeed unless all paths are down.
Don't wait for the iscsi portal to start if the root device has
already been found.
---
modules.d/95iscsi/parse-iscsiroot.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh
index f884e684..b96605ef 100755
--- a/modules.d/95iscsi/parse-iscsiroot.sh
+++ b/modules.d/95iscsi/parse-iscsiroot.sh
@@ -84,7 +84,7 @@ if [ -n "$iscsi_firmware" ]; then
modprobe -b -q iscsi_boot_sysfs 2>/dev/null
modprobe -b -q iscsi_ibft
# if no ip= is given, but firmware
- echo "[ -f '/tmp/iscsistarted-firmware' ]" > $hookdir/initqueue/finished/iscsi_started.sh
+ echo "${DRACUT_SYSTEMD+systemctl is-active initrd-root-device.target || }[ -f '/tmp/iscsistarted-firmware' ]" > $hookdir/initqueue/finished/iscsi_started.sh
initqueue --unique --online /sbin/iscsiroot online "iscsi:" "$NEWROOT"
initqueue --unique --onetime --timeout /sbin/iscsiroot timeout "iscsi:" "$NEWROOT"
initqueue --unique --onetime --settled /sbin/iscsiroot online "iscsi:" "'$NEWROOT'"
@@ -147,7 +147,7 @@ for nroot in $(getargs netroot); do
type parse_iscsi_root >/dev/null 2>&1 || . /lib/net-lib.sh
parse_iscsi_root "$nroot" || return 1
netroot_enc=$(str_replace "$nroot" '/' '\2f')
- echo "[ -f '/tmp/iscsistarted-$netroot_enc' ]" > $hookdir/initqueue/finished/iscsi_started.sh
+ echo "${DRACUT_SYSTEMD+systemctl is-active initrd-root-device.target || }[ -f '/tmp/iscsistarted-$netroot_enc' ]" > $hookdir/initqueue/finished/iscsi_started.sh
done
# Done, all good!
--
2.16.4
++++++ 0596-network-stop-waiting-for-interfaces-if-root-device-i.patch ++++++
present
---
modules.d/40network/net-genrules.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh
index 843bd988..a5a9ae22 100755
--- a/modules.d/40network/net-genrules.sh
+++ b/modules.d/40network/net-genrules.sh
@@ -86,7 +86,7 @@ command -v fix_bootif >/dev/null || . /lib/net-lib.sh
for iface in $wait_ifaces; do
if [ "$bootdev" = "$iface" ] || [ "$NEEDNET" = "1" ]; then
- echo "[ -f /tmp/net.${iface}.did-setup ]" >$hookdir/initqueue/finished/wait-$iface.sh
+ echo "${DRACUT_SYSTEMD+systemctl is-active initrd-root-device.target || }[ -f /tmp/net.${iface}.did-setup ]" >$hookdir/initqueue/finished/wait-$iface.sh
fi
done
# Default: We don't know the interface to use, handle all
--
2.16.4
++++++ 0597-iscsiroot-parse_iscsi_root-overwrites-command-line-a.patch ++++++ From a9ef0960799ad8d95de2e13a9f8773e88826e83e Mon Sep 17 00:00:00 2001
From: Martin Wilck iscsi_target_name, iscsi_target_ip, iscsi_target_port are
unconditionally overwritten by parse_iscsi_root. Don't set
them here, for code clarity.
---
modules.d/95iscsi/iscsiroot.sh | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
Index: dracut-044/modules.d/95iscsi/iscsiroot.sh
===================================================================
--- dracut-044.orig/modules.d/95iscsi/iscsiroot.sh
+++ dracut-044/modules.d/95iscsi/iscsiroot.sh
@@ -102,12 +102,6 @@ handle_netroot()
# override conf settings by command line options
arg=$(getarg rd.iscsi.initiator -d iscsi_initiator=)
[ -n "$arg" ] && iscsi_initiator=$arg
- arg=$(getargs rd.iscsi.target.name -d iscsi_target_name=)
- [ -n "$arg" ] && iscsi_target_name=$arg
- arg=$(getarg rd.iscsi.target.ip -d iscsi_target_ip)
- [ -n "$arg" ] && iscsi_target_ip=$arg
- arg=$(getarg rd.iscsi.target.port -d iscsi_target_port=)
- [ -n "$arg" ] && iscsi_target_port=$arg
arg=$(getarg rd.iscsi.target.group -d iscsi_target_group=)
[ -n "$arg" ] && iscsi_target_group=$arg
arg=$(getarg rd.iscsi.username -d iscsi_username=)
@@ -122,6 +116,8 @@ handle_netroot()
iscsi_param="$iscsi_param $p"
done
+ # this sets iscsi_target_name and possibly overwrites most
+ # parameters read from the command line above
parse_iscsi_root "$1" || return 1
# Bail out early, if there is no route to the destination
++++++ 0598-iscsiroot-there-s-never-more-than-one-target-per-cal.patch ++++++ From 04657e60f00d53f52d47b7fd02b53618762340e4 Mon Sep 17 00:00:00 2001
From: Martin Wilck iscsi_target_name is set by iscsi_root, and thus can't have
more than one member. This allows us to get rid of one bashism
in iscsiroot.sh.
---
modules.d/95iscsi/iscsiroot.sh | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
Index: dracut-044/modules.d/95iscsi/iscsiroot.sh
===================================================================
--- dracut-044.orig/modules.d/95iscsi/iscsiroot.sh
+++ dracut-044/modules.d/95iscsi/iscsiroot.sh
@@ -221,8 +221,8 @@ handle_netroot()
[ -z "$targets" ] && echo "Target discovery to $iscsi_target_ip:${iscsi_target_port:+$iscsi_target_port} failed with status $?" && exit 1
fi
- for target in $iscsi_target_name; do
- if [[ "$targets" =~ "$target" ]]; then
+ for target in $targets; do
+ if [ "$target" = "$iscsi_target_name" ]; then
if [ -n "$iscsi_iface_name" ]; then
$(iscsiadm -m iface -I $iscsi_iface_name --op=new)
[ -n "$iscsi_initiator" ] && $(iscsiadm -m iface -I $iscsi_iface_name --op=update --name=iface.initiatorname --value=$iscsi_initiator)
++++++ 0599-iscsiroot-try-targets-only-once.patch ++++++ From 1fd34ae26591701e27577e381dc284248e3bf6e2 Mon Sep 17 00:00:00 2001
From: Martin Wilck In multipath scenarios, "iscsiadm -m node" may contain
several records with the same target.
There's no point in trying "iscsiadm --login" multiple
time for the same target, through the same portal.
Moreover, warn if the desired target is not on the node
list.
---
modules.d/95iscsi/iscsiroot.sh | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
Index: dracut-044/modules.d/95iscsi/iscsiroot.sh
===================================================================
--- dracut-044.orig/modules.d/95iscsi/iscsiroot.sh
+++ dracut-044/modules.d/95iscsi/iscsiroot.sh
@@ -97,7 +97,7 @@ handle_netroot()
local iscsi_in_username iscsi_in_password
local iscsi_iface_name iscsi_netdev_name
local iscsi_param param
- local p
+ local p found
# override conf settings by command line options
arg=$(getarg rd.iscsi.initiator -d iscsi_initiator=)
@@ -221,6 +221,7 @@ handle_netroot()
[ -z "$targets" ] && echo "Target discovery to $iscsi_target_ip:${iscsi_target_port:+$iscsi_target_port} failed with status $?" && exit 1
fi
+ found=
for target in $targets; do
if [ "$target" = "$iscsi_target_name" ]; then
if [ -n "$iscsi_iface_name" ]; then
++++++ 0600-iscsiroot-remove-bashisms.patch ++++++ From c14a550d54b408088fd0aa14a4f2088f8b45237e Mon Sep 17 00:00:00 2001
From: Martin Wilck According to the dracut README, module code to be run in
the initrd must be POSIX-compliant. Replace remaining
bashisms (as reported by checkbashisms) with POSIX compliant
code.
The use of "type" is not strictly POSIX compliant, but it's
all over the place in dracut code. dash supports it, anyway.
---
modules.d/95iscsi/iscsiroot.sh | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
index 73dd8c20..c00a9f58 100755
--- a/modules.d/95iscsi/iscsiroot.sh
+++ b/modules.d/95iscsi/iscsiroot.sh
@@ -61,11 +61,11 @@ handle_firmware()
if ! iscsiadm -m fw; then
warn "iscsiadm: Could not get list of targets from firmware."
else
- ifaces=( $(echo /sys/firmware/ibft/ethernet*) )
+ ifaces=$(set -- /sys/firmware/ibft/ethernet*; echo $#)
retry=$(cat /tmp/session-retry)
- if [ $retry -lt ${#ifaces[*]} ]; then
- let retry++
+ if [ $retry -lt $ifaces ]; then
+ retry=$((retry+1))
echo $retry > /tmp/session-retry
return 1
else
@@ -95,6 +95,7 @@ handle_netroot()
local iscsi_iface_name iscsi_netdev_name
local iscsi_param param
local p found
+ local login_retry_max_seen=
# override conf settings by command line options
arg=$(getarg rd.iscsi.initiator -d iscsi_initiator=)
@@ -110,7 +111,9 @@ handle_netroot()
arg=$(getarg rd.iscsi.in.password -d iscsi_in_password=)
[ -n "$arg" ] && iscsi_in_password=$arg
for p in $(getargs rd.iscsi.param -d iscsi_param); do
- iscsi_param="$iscsi_param $p"
+ [ "${p%=*}" = node.session.initial_login_retry_max ] && \
+ login_retry_max_seen=yes
+ iscsi_param="$iscsi_param $p"
done
# this sets iscsi_target_name and possibly overwrites most
@@ -123,9 +126,8 @@ handle_netroot()
fi
#limit iscsistart login retries
- if [[ ! "$iscsi_param" =~ "node.session.initial_login_retry_max" ]]; then
- set_login_retries
- retries=$?
+ if [ "$login_retry_max_seen" != yes ]; then
+ retries=$(getargnum 3 0 10000 rd.iscsi.login_retry_max)
if [ $retries -gt 0 ]; then
iscsi_param="${iscsi_param% } node.session.initial_login_retry_max=$retries"
fi
--
2.16.4
++++++ 0601-base-dracut-lib.sh-dev_unit_name-guard-against-dev-b.patch ++++++ From 33348c63393d6fca3b6070dfdf108bff7b59d53b Mon Sep 17 00:00:00 2001
From: Alexander Tsoy crypt/parse-crypt.sh generate initqueue job which always call
dev_unit_name() with an argument beginning with "-". This results
in the following error:
dracut-initqueue[307]: + systemd-escape -p -cfb4aa43-2f02-4c6b-a313-60ea99288087
dracut-initqueue[307]: systemd-escape: invalid option -- 'c'
---
modules.d/99base/dracut-lib.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index 89235b04..45ef31b6 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -874,7 +874,7 @@ dev_unit_name()
local dev="$1"
if command -v systemd-escape >/dev/null; then
- systemd-escape -p "$dev"
+ systemd-escape -p -- "$dev"
return
fi
--
2.16.4
++++++ 99-debug.conf ++++++
# Below adds additional tools to the initrd which are not urgently necessary to
# bring up the system, but help to debug problems.
# See /usr/lib/dracut/modules.d/95debug/module-setup.sh which additional tools
# are installed and add more if you need them. This specifically helps if you
# use:
# rd.break=[cmdline|pre-udev|pre-trigger|initqueue|pre-mount|
# mount|pre-pivot|cleanup]
# boot parameter or if you are forced to enter the dracut emergency shell.
# add_dracutmodules+=debug
++++++ dracut-049+git92.951f754b.tar.xz -> dracut-044.tar.xz ++++++
++++ 32604 lines of diff (skipped)
++++++ dracut-installkernel ++++++
#! /bin/sh
#
# /sbin/installkernel - written by tyson@rwii.com
#
# May 21, 2003 - agruen@suse.de
# * Adapted for SuSE and cleaned up.
# November 21, 2018 - jdelvare@suse.de
# * Stop creating .old files.
#
: ${INSTALL_PATH:=/boot}
KERNEL_VERSION=$1
BOOTIMAGE=$2
MAPFILE=$3
CONFIGFILE=config-$KERNEL_VERSION
case "$(uname -m)" in
s390|s390x)
BOOTFILE=image
;;
ppc|ppc64)
BOOTFILE=vmlinux
;;
aarch64)
BOOTFILE=Image
;;
armv*)
BOOTFILE=zImage
;;
*)
BOOTFILE=vmlinuz
;;
esac
#
# Install new files
#
cp -fp $BOOTIMAGE $INSTALL_PATH/$BOOTFILE-$KERNEL_VERSION
cp -fp $MAPFILE $INSTALL_PATH/System.map-$KERNEL_VERSION
[ -f .config ] && cp -fp .config $INSTALL_PATH/$CONFIGFILE
# If the kernel has module support, recreate modules.dep using depmod
# since the contents of modules.dep do not have a consistent format across
# releases.
if [ -x /sbin/depmod -a -d /lib/modules/$KERNEL_VERSION ]; then
/sbin/depmod $KERNEL_VERSION;
fi
function check_supported()
{
local MOD_SUPP_FILE="/etc/modprobe.d/10-unsupported-modules.conf"
local MOD_SUPP_REGEX="^\s*allow_unsupported_modules\s+0\s*$"
local cfg="$1"
if [ ! -e "$cfg" ]; then return; fi
local tmp=$(modprobe --showconfig | grep -Eq $MOD_SUPP_REGEX)
if [ -n "$tmp" ]; then
CHECK_SUPPORTED="--check-supported"
return;
fi
if grep -q "^CONFIG_SUSE_KERNEL_SUPPORTED=y" $cfg ; then
if [ -e $MOD_SUPP_FILE ] && grep -Eq $MOD_SUPP_REGEX $MOD_SUPP_FILE; then
CHECK_SUPPORTED="--check-supported"
fi
fi
}
CONFIG=$(dirname $MAPFILE)/.config
CHECK_SUPPORTED=
check_supported $CONFIG
KERNTYPES=$(dirname $MAPFILE)/init/kerntypes.o
if [ -e $KERNTYPES ]; then
cp -fp $KERNTYPES $INSTALL_PATH/Kerntypes-$KERNEL_VERSION
fi
case "$(uname -m)" in
i?86 | x86_64)
KERNBIN=$(dirname $MAPFILE)/vmlinux
if [ -e $KERNBIN ]; then
gzip -c $KERNBIN > $INSTALL_PATH/vmlinux-$KERNEL_VERSION.gz
fi
;;
esac
#
# Generate initial ramdisk
#
if [ -x /usr/bin/dracut -a -d /lib/modules/$KERNEL_VERSION ]; then
/usr/bin/dracut --hostonly --force $CHECK_SUPPORTED \
$INSTALL_PATH/initrd-$KERNEL_VERSION $KERNEL_VERSION
else
echo "You may need to create an initial ramdisk now."
fi
#
# Update boot loader
#
if [ -x /sbin/update-bootloader ]; then
opt_initrd=
[ -e $INSTALL_PATH/initrd-$KERNEL_VERSION ] \
&& opt_initrd="--initrd $INSTALL_PATH/initrd-$KERNEL_VERSION"
/sbin/update-bootloader --name $KERNEL_VERSION \
--image $INSTALL_PATH/$BOOTFILE-$KERNEL_VERSION \
$opt_initrd --add --force
fi
++++++ mkinitrd_setup_dummy ++++++
#!/bin/bash
true
++++++ purge-kernels ++++++
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
sub usage {
print "Usage: $0 [--test]\n";
print "Reads list of kernels to keep from /etc/zypp/zypp.conf:multiversion.kernels\n";
print "kernels can be given as <version>, latest(-N), running, oldest(+N).\n";
}
# arch/flavor => version-release => [ subpackages ]
my %kernels;
my @keep_spec;
my ($want_running, $running_version, $running_flavor);
# do not actually delete anything
my $test_only;
# undocumented debugging options
my ($fake_config, $fake_rpm_qa, $fake_uname_r, $fake_uname_m);
sub get_config_line {
my $file = "/etc/zypp/zypp.conf";
if ($fake_config) {
return $fake_config;
}
if (!-e $file) {
print STDERR "$0: /etc/zypp/zypp.conf does not exist, exiting.\n";
exit 0;
}
open(my $fh, '<', $file) or die "$0: $file: $!\n";
while (<$fh>) {
chomp;
next unless /^\s*multiversion\.kernels\b/;
s/^[^=]*=\s*//;
close($fh);
return $_;
}
close($fh);
return "";
}
sub load_config {
my @kernels;
@kernels = split(/,\s*/, get_config_line());
for my $kernel (@kernels) {
if ($kernel =~ /^\s*(latest|oldest|running)(\s*[-+]\s*\d+)?\s*$/) {
my $new = { whence => $1, offset => $2 || 0 };
$new->{offset} =~ s/\s*//g;
if ($new->{whence} eq "running") {
$want_running = 1;
}
push (@keep_spec, $new);
} elsif ($kernel =~ /^\d+\.\d+/) {
my $new = { version => $kernel };
push (@keep_spec, $new);
} elsif ($kernel =~ /^\s*$/) {
next;
} else {
print STDERR "$0: Ignoring unknow kernel specification in\n";
print STDERR "/etc/zypp/zypp.conf:multiversion.kernels: $kernel\n";
}
}
}
sub add_package {
my ($name, $vr, $arch) = @_;
(my $flavor = $name) =~ s/^kernel-//;
#print STDERR "add_package: $name $vr $arch\n";
if ($name eq "kernel-firmware" || $name eq "kernel-coverage") {
return;
}
# Put all subpackages into the same group, except for
# kernel-source-{vanilla,rt}, which are packages on their own
if ($flavor !~ /^source/) {
$flavor =~ s/-.*//; # XXX: No dashes in flavor names
}
# kernel-devel is a subpackage of kernel-source
$flavor =~ s/^devel/source/;
$kernels{"$arch/$flavor"} ||= {};
$kernels{"$arch/$flavor"}{$vr} ||= [];
push(@{$kernels{"$arch/$flavor"}{$vr}}, "$name-$vr.$arch");
}
sub load_packages {
my $pipe;
if ($fake_rpm_qa) {
open($pipe, '<', $fake_rpm_qa) or die "$fake_rpm_qa: $!\n";
} else {
open($pipe, '-|', 'rpm', '-qa', '--qf',
'%{n} %{v}-%{r} %{arch}\n', 'kernel-*') or die "rpm: $!\n";
}
while (<$pipe>) {
chomp;
my ($name, $vr, $arch) = split;
add_package($name, $vr, $arch);
}
close($pipe)
}
sub sort_versions {
my @versions = @_;
pipe (my $read, my $write);
my $pid = fork();
if (!defined($pid)) {
die "Cannot fork: $!\n";
} elsif ($pid == 0) {
# child
close($read);
open STDOUT, '>&', $write;
open(my $fh, '|-', "/usr/lib/rpm/rpmsort") or die "/usr/lib/rpm/rpmsort: $!\n";
print $fh join("\n", @versions), "\n";
close($fh);
die "rpmsort failed ($?)\n" if $? != 0;
exit 0;
}
# parent
close($write);
@versions = <$read>;
chomp @versions;
close($read);
waitpid($pid, 0);
die "rpmsort failed ($?)\n" if $? != 0;
return @versions;
}
# return true if VER1 == VER2 or VER1 == (VER2 minus rebuild counter)
sub version_match {
my ($ver1, $ver2) = @_;
return 1 if $ver1 eq $ver2;
# copied from kernel-source/rpm/kernel-spec-macros
$ver2 =~ s/\.[0-9]+($|\.[^.]*[^.0-9][^.]*$)/$1/;
return $ver1 eq $ver2;
}
sub list_old_versions {
my ($flavor) = @_;
my $is_source = $flavor =~ /\/(source|syms)/;
my $kernels = $kernels{$flavor};
my @versions = sort_versions(keys(%$kernels));
my %idx = (
oldest => 0,
latest => scalar(@versions) - 1,
);
if ($want_running && ($running_flavor eq $flavor || $is_source)) {
for (my $i = scalar(@versions) - 1; $i >= 0; $i--) {
if (version_match($running_version, $versions[$i])) {
$idx{running} = $i;
last;
}
}
if (!exists($idx{running}) && !$is_source) {
print STDERR "$0: Running kernel $running_version-$running_flavor not installed.\n";
print "NOT removing any packages for flavor $flavor.\n";
return;
}
}
my %delete = map { $_ => 1 } @versions;
for my $keep (@keep_spec) {
if ($keep->{version}) {
for my $ver (@versions) {
if (version_match($keep->{version}, $ver)) {
$delete{$ver} = 0;
}
}
} elsif ($keep->{whence}) {
next unless exists($idx{$keep->{whence}});
my $idx = $idx{$keep->{whence}};
$idx += $keep->{offset};
next unless $idx >= 0 && $idx < scalar(@versions);
$delete{$versions[$idx]} = 0;
} else {
die "??";
}
}
return grep { $delete{$_} } @versions;
}
sub package_exists {
my ($version, $archs, $flavors) = @_;
for my $arch (@$archs) {
for my $flavor (@$flavors) {
my $config = "$arch/$flavor";
if (exists($kernels{$config})
&& exists($kernels{$config}->{$version})) {
return 1;
}
}
}
return 0;
}
sub list_old_packages {
my (@packages, @archs, @flavors);
my (@syms_flavors, @binary_flavors, @source_configs);
# there are some inter-dependencies among the kernel packages,
# so we have to be careful
my %t = map { s:/.*::; $_ => 1 } keys(%kernels);
@archs = sort(keys(%t));
%t = map { s:.*/::; $_ => 1 } keys(%kernels);
@flavors = sort(keys(%t));
@syms_flavors = grep { /^syms/ } @flavors;
@binary_flavors = grep { !/^(source|syms)/ } @flavors;
@source_configs = grep { /\/source/ } sort(keys(%kernels));
for my $arch (@archs) {
for my $flavor (@syms_flavors) {
my $config = "$arch/$flavor";
next unless exists($kernels{$config});
my @versions = list_old_versions($config);
for my $ver (@versions) {
push(@packages, @{$kernels{$config}->{$ver}});
delete($kernels{$config}->{$ver});
}
}
for my $flavor (@binary_flavors) {
my $config = "$arch/$flavor";
next unless exists($kernels{$config});
my @versions = list_old_versions($config);
for my $ver (@versions) {
my @pacs = @{$kernels{$config}->{$ver}};
my $remove_all = 1;
# do not remove kernel-$flavor-devel-$ver
# if kernel-syms-$ver still exists
if (grep { /-devel$/ } @pacs) {
my $syms = "syms";
if ($flavor =~ /^rt/) {
$syms = "syms-rt";
}
if (exists($kernels{$syms}->{$ver})) {
$remove_all = 0;
@pacs = grep { !/-devel$/ }
@pacs;
}
}
push(@packages, @pacs);
if ($remove_all) {
delete($kernels{$config}->{$ver});
}
}
}
}
for my $config (@source_configs) {
my @versions = list_old_versions($config);
for my $ver (@versions) {
# Remove kernel-{devel,source} only if no other package
# of the same version exists
next if package_exists($ver, \@archs, \@binary_flavors);
push(@packages, @{$kernels{$config}->{$ver}});
}
}
return @packages;
}
sub find_package {
my $name = shift @_;
my $version = shift @_;
my @packages = @_;
my $expr = "^" . quotemeta($version ? "$name-$version" : $name);
my @found = grep { $_ =~ $expr } @packages;
return @found if @found;
$expr = "^" . quotemeta($name) . " = " . quotemeta($version) . "\$";
@found = grep {
my @provides = qx/rpm -q --provides $_/;
chomp (@provides);
grep { $_ =~ $expr} @provides;
} @packages;
return @found;
}
# Try to remove a list of packages.
#
# If there is a KMP or livepatch depending on the package remove it as well. If
# there is another package depending on the kernel keep the kernel. If there is
# a package that depends on a KMP keep the KMP and a kernel required to use the
# KMP.
# In each step a KMP or livepatch may be added or a package which cannot be
# removed due to dependencies is marked as taboo and removed from the list.
#
# Finish when packages uninstall successfully or we can't find any packages to
# add or remove from the list to make it uninstallable.
sub remove_packages {
my @packages = @_;
my %taboo_packages;
while (1) {
pipe(my $read, my $write);
my $pid = fork();
if (!defined($pid)) {
die "Cannot fork: $!\n";
} elsif($pid == 0) {
# child
close($read);
open STDOUT, '>&', $write;
open STDERR, '>&', $write;
$ENV{LC_ALL} = "C";
my @cmd = qw(rpm -e);
push(@cmd, "--test") if $test_only;
exec(@cmd, @packages) or die "rpm: $!\n";
}
# parent
close($write);
my @out = <$read>;
chomp @out;
close($read);
waitpid($pid, 0);
if ($? == 0) {
print "Removed:\n ", join("\n ", @packages), "\n";
return 1;
}
my $retry = 0;
my %old_packages = map { $_ => 1 } @packages;
my %new_packages;
for (@out) {
if (/ is needed by \(installed\) (kernel-syms-.*|kgraft-patch-.*|kernel-livepatch-.*|.*-kmp-.*)/ &&
!$old_packages{$1} && !$taboo_packages{$1}) {
push(@packages, $1) unless $new_packages{$1};
$new_packages{$1} = 1;
$retry = 1;
} elsif (/([^ \t]*)(?: = ([^ \t]*))? is needed by \(installed\) /) {
my @unremovable = find_package($1, $2, @packages);
my $match = $unremovable[$#unremovable];
if ($match) {
print STDERR "$0: $_\n";
print STDERR "$0: Keeping " . ($2 ? "$1 = $2" : $1) . " ($match)\n";
@packages = grep { $_ !~ $match } @packages;
$taboo_packages{$match} = 1;
$retry = 1;
last; # Only remove one package providing the dependency from the list
}
}
}
if (!$retry) {
print STDERR join("\n", @out), "\n";
print STDERR "$0: giving up.\n";
return 0;
}
}
}
if (!GetOptions(
"h|help" => sub { usage(); exit; },
"--test" => \$test_only,
"--fake-config=s" => \$fake_config,
"--fake-rpm-qa=s" => \$fake_rpm_qa,
"--fake-uname-r=s" => \$fake_uname_r,
"--fake-uname-m=s" => \$fake_uname_m)) {
usage();
exit 1;
}
load_config();
if (!@keep_spec) {
print STDERR "$0: multiversion.kernels not configured in /etc/zypp/zypp.conf, exiting.\n";
exit 0;
}
load_packages();
if ($want_running) {
$running_version = $fake_uname_r ? $fake_uname_r : `uname -r`;
chomp($running_version);
($running_flavor = $running_version) =~ s/.*-//;
$running_version =~ s/-[^-]*$//;
(my $release = $running_version) =~ s/.*-//;
$running_version =~ s/-[^-]*$//;
# copied from kernel-source/rpm/mkspec
$running_version =~ s/\.0-rc/.rc/;
$running_version =~ s/-rc\d+//;
$running_version =~ s/-/./g;
$running_version .= "-$release";
my $arch = $fake_uname_m ? $fake_uname_m : `uname -m`;
chomp($arch);
$arch =~ s/^i.86$/i586/;
$running_flavor = "$arch/$running_flavor";
}
my @remove = list_old_packages();
if (!@remove) {
print STDERR "$0: Nothing to do.\n";
exit 0;
}
if (remove_packages(@remove)) {
exit 0;
}
exit 1;
++++++ purge-kernels.service ++++++
[Unit]
Description=Purge old kernels
After=local-fs.target
ConditionPathExists=/boot/do_purge_kernels
ConditionPathIsReadWrite=/
[Service]
Type=oneshot
Nice=19
IOSchedulingClass=idle
ExecStartPre=/bin/rm -f /boot/do_purge_kernels
ExecStart=/sbin/purge-kernels
[Install]
WantedBy=multi-user.target
++++++ s390x_persistent_device.conf ++++++
# Set persistent policy by-path on s390 platforms, to prevent
# the system from hanging during the boot when vDISKs are used
# as swap devices (bsc#915218).
#
# Indeed, they are required to be present early in the boot
# process to possibly resume the system. However, since
# they are cleared after logoff/logon and the UUID will likely
# change after reinitialization, these will not be found with
# the default by-uuid policy.
persistent_policy=by-path
participants (1)
-
root