- Update to dracut mainline version 041. Half of the patches got integrated mainline. Some others have been merged together when it made sense some have been left out, but are still in the repository as they need some special treating and mainline discussion whether/how they get added. These are also not urgently needed, but are debugging patches. I broke the rule here to mention every added/deleted/modified patch as every patch is touched and every 2nd got removed (mainline integrated). I also re-ordered the patches in the PatchXY: area for easier merging them and get them discussed and posted mainline easier, topic by topic. OBS-URL: https://build.opensuse.org/request/show/293267 OBS-URL: https://build.opensuse.org/package/show/Base:System/dracut?expand=0&rev=214
135 lines
3.7 KiB
Diff
135 lines
3.7 KiB
Diff
From: Hannes Reinecke <hare@suse.de>
|
|
|
|
81cio_ignore: handle cio_ignore commandline
|
|
|
|
References: bnc#874902
|
|
|
|
Incorporates following on-top patches/fixes:
|
|
----------------------------
|
|
Subject: 81cio_ignore: skip module if cio_ignore is not active
|
|
|
|
When cio_ignore is not active we should skip the entire module
|
|
during boot; otherwise it'll lead to adverse effects.
|
|
|
|
References: bnc#882685
|
|
----------------------------
|
|
Subject: 81cio_ignore: rewrite module
|
|
|
|
Rewrite cio_ignore module to rely on the dracut commandline
|
|
parameter 'rd.cio_accept', which takes a comma-separated list
|
|
of CCW IDs. Each of those IDs are being removed from the
|
|
list of devices from cio_ignore.
|
|
|
|
The default values for rd.cio_accept are taken from
|
|
/boot/zipl/active_devices.txt.
|
|
|
|
References: bnc#882685
|
|
-----------------------------
|
|
Subject: More empty cmdline fixes
|
|
|
|
This fixes up some more modules which might print out empty
|
|
commandline files.
|
|
|
|
|
|
Signed-off-by: Thomas Renninger <trenn@suse.de>
|
|
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
|
|
index e51fd1b..0e3e5a0 100644
|
|
--- a/dracut.cmdline.7.asc
|
|
+++ b/dracut.cmdline.7.asc
|
|
@@ -857,6 +857,21 @@ NOTE: There must be enough free RAM available to hold the complete image.
|
|
This method is very suitable for diskless boots.
|
|
|
|
|
|
+CIO_IGNORE
|
|
+~~~~~~~~~~
|
|
+**rd.cio_accept=**__<device-ids>__::
|
|
+ Remove the devices listed in <device-ids> from the default
|
|
+ cio_ignore kernel command-line settings.
|
|
+ <device-ids> is a list of comma-separated CCW device ids.
|
|
+ The default for this value is taken from the
|
|
+ _/boot/zipl/active_devices.txt_ file.
|
|
++
|
|
+[listing]
|
|
+.Example
|
|
+--
|
|
+rd.cio_accept=0.0.0180,0.0.0800,0.0.0801,0.0.0802
|
|
+--
|
|
+
|
|
Plymouth Boot Splash
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
**plymouth.enable=0**::
|
|
diff --git a/modules.d/81cio_ignore/module-setup.sh b/modules.d/81cio_ignore/module-setup.sh
|
|
new file mode 100644
|
|
index 0000000..37b414b
|
|
--- /dev/null
|
|
+++ b/modules.d/81cio_ignore/module-setup.sh
|
|
@@ -0,0 +1,40 @@
|
|
+#!/bin/bash
|
|
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
+# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
+
|
|
+# called by dracut
|
|
+check() {
|
|
+# do not add this module by default
|
|
+ local arch=$(uname -m)
|
|
+ [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
|
|
+ return 0
|
|
+}
|
|
+
|
|
+cmdline() {
|
|
+ local cio_accept
|
|
+
|
|
+ if [ -e /boot/zipl/active_devices.txt ] ; then
|
|
+ while read dev etc ; do
|
|
+ [ "$dev" = "#" -o "$dev" = "" ] && continue;
|
|
+ if [ -z "$cio_accept" ] ; then
|
|
+ cio_accept="$dev"
|
|
+ else
|
|
+ cio_accept="${cio_accept},${dev}"
|
|
+ fi
|
|
+ done < /boot/zipl/active_devices.txt
|
|
+ fi
|
|
+ if [ -n "$cio_accept" ] ; then
|
|
+ echo "rd.cio_accept=${cio_accept}"
|
|
+ fi
|
|
+}
|
|
+
|
|
+# called by dracut
|
|
+install() {
|
|
+ if [[ $hostonly_cmdline == "yes" ]] ; then
|
|
+ local _cio_accept=$(cmdline)
|
|
+ [[ $_cio_accept ]] && printf "%s\n" "$_cio_accept" >> "${initdir}/etc/cmdline.d/01cio_accept.conf"
|
|
+ fi
|
|
+
|
|
+ inst_hook cmdline 20 "$moddir/parse-cio_accept.sh"
|
|
+ inst_multiple cio_ignore
|
|
+}
|
|
diff --git a/modules.d/81cio_ignore/parse-cio_accept.sh b/modules.d/81cio_ignore/parse-cio_accept.sh
|
|
new file mode 100644
|
|
index 0000000..4f899d2
|
|
--- /dev/null
|
|
+++ b/modules.d/81cio_ignore/parse-cio_accept.sh
|
|
@@ -0,0 +1,22 @@
|
|
+#!/bin/sh
|
|
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
+# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
+
|
|
+CIO_IGNORE=$(getarg cio_ignore)
|
|
+CIO_ACCEPT=$(getarg rd.cio_accept)
|
|
+
|
|
+if [ -z $CIO_IGNORE ] ; then
|
|
+ info "cio_ignored disabled on commandline"
|
|
+ return
|
|
+fi
|
|
+if [ -n "$CIO_ACCEPT" ] ; then
|
|
+ OLDIFS="$IFS"
|
|
+ IFS=,
|
|
+ set -- $CIO_ACCEPT
|
|
+ while (($# > 0)) ; do
|
|
+ info "Enabling device $1"
|
|
+ cio_ignore --remove $1
|
|
+ shift
|
|
+ done
|
|
+ IFS="$OLDIFS"
|
|
+fi
|