summaryrefslogtreecommitdiffstats
path: root/modules.d/95dasd_mod
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 13:54:25 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 13:54:25 +0000
commit9cb1c4df7b9ce1a9ad1312621b0f2b16a94fba3a (patch)
tree2efb72864cc69e174c9c5ee33efb88a5f1553b48 /modules.d/95dasd_mod
parentInitial commit. (diff)
downloaddracut-9cb1c4df7b9ce1a9ad1312621b0f2b16a94fba3a.tar.xz
dracut-9cb1c4df7b9ce1a9ad1312621b0f2b16a94fba3a.zip
Adding upstream version 060+5.upstream/060+5
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'modules.d/95dasd_mod')
-rwxr-xr-xmodules.d/95dasd_mod/module-setup.sh27
-rwxr-xr-xmodules.d/95dasd_mod/parse-dasd-mod.sh18
2 files changed, 45 insertions, 0 deletions
diff --git a/modules.d/95dasd_mod/module-setup.sh b/modules.d/95dasd_mod/module-setup.sh
new file mode 100755
index 0000000..c59dd3a
--- /dev/null
+++ b/modules.d/95dasd_mod/module-setup.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# called by dracut
+check() {
+ local _arch=${DRACUT_ARCH:-$(uname -m)}
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ require_binaries grep sed seq
+
+ return 0
+}
+
+# called by dracut
+depends() {
+ return 0
+}
+
+# called by dracut
+installkernel() {
+ instmods dasd_mod dasd_eckd_mod dasd_fba_mod dasd_diag_mod
+}
+
+# called by dracut
+install() {
+ inst_hook cmdline 31 "$moddir/parse-dasd-mod.sh"
+ inst_multiple grep sed seq
+ inst_multiple -o dasd_cio_free
+}
diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh b/modules.d/95dasd_mod/parse-dasd-mod.sh
new file mode 100755
index 0000000..2b86d45
--- /dev/null
+++ b/modules.d/95dasd_mod/parse-dasd-mod.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+mod_args=""
+
+for dasd_arg in $(getargs rd.dasd= -d rd_DASD= DASD=); do
+ mod_args="$mod_args,$dasd_arg"
+done
+
+mod_args="${mod_args#*,}"
+
+if [ -x /sbin/dasd_cio_free -a -n "$mod_args" ]; then
+ [ -d /etc/modprobe.d ] || mkdir -m 0755 -p /etc/modprobe.d
+ echo "options dasd_mod dasd=$mod_args" >> /etc/modprobe.d/dasd_mod.conf
+fi
+
+unset dasd_arg
+if [ -x /sbin/dasd_cio_free ]; then
+ dasd_cio_free
+fi