forked from pool/s390-tools
134 lines
4.4 KiB
Diff
134 lines
4.4 KiB
Diff
|
---
|
||
|
zdev/dracut/96zdev-live/module-setup.sh | 32 +++++++++++++++++++++++++
|
||
|
zdev/dracut/96zdev-live/parse-zdev-live.sh | 36 +++++++++++++++++++++++++++++
|
||
|
zdev/dracut/96zdev-live/write-udev-live.sh | 11 ++++++++
|
||
|
zdev/dracut/Makefile | 15 ++++++++++--
|
||
|
4 files changed, 92 insertions(+), 2 deletions(-)
|
||
|
|
||
|
--- /dev/null
|
||
|
+++ b/zdev/dracut/96zdev-live/module-setup.sh
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+#!/bin/bash
|
||
|
+
|
||
|
+# called by dracut
|
||
|
+check() {
|
||
|
+ arch=${DRACUT_ARCH:-$(uname -m)}
|
||
|
+ [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
|
||
|
+
|
||
|
+ require_binaries chzdev || return 1
|
||
|
+
|
||
|
+ [[ $hostonly ]] || return 0
|
||
|
+
|
||
|
+ # or on request
|
||
|
+ return 255
|
||
|
+}
|
||
|
+
|
||
|
+# called by dracut
|
||
|
+depends() {
|
||
|
+ echo bash
|
||
|
+ return 0
|
||
|
+}
|
||
|
+
|
||
|
+# called by dracut
|
||
|
+installkernel() {
|
||
|
+ instmods ctcm lcs qeth qeth_l2 qeth_l3 dasd_diag_mod dasd_eckd_mod dasd_fba_mod
|
||
|
+}
|
||
|
+
|
||
|
+# called by dracut
|
||
|
+install() {
|
||
|
+ inst_hook cmdline 41 "$moddir/parse-zdev-live.sh"
|
||
|
+ inst_hook cleanup 41 "$moddir/write-udev-live.sh"
|
||
|
+ inst_multiple chzdev
|
||
|
+}
|
||
|
--- /dev/null
|
||
|
+++ b/zdev/dracut/96zdev-live/parse-zdev-live.sh
|
||
|
@@ -0,0 +1,36 @@
|
||
|
+#!/bin/bash
|
||
|
+#
|
||
|
+# 96zdev-live/parse-zdev-live.sh
|
||
|
+# Parse the kernel command line for rd.zdev kernel parameters. These
|
||
|
+# parameters are evaluated and used to configure z Systems specific devices
|
||
|
+# with chzdev(8), especially for use on live/installation type media.
|
||
|
+# Note: this is only active on no-hostonly initrds (by default).
|
||
|
+#
|
||
|
+# Format:
|
||
|
+# rd.zdev=TYPE,DEVICE[,SETTINGS]
|
||
|
+#
|
||
|
+# where
|
||
|
+#
|
||
|
+# TYPE: all device types supported by chzdev(8), like qeth and dasd
|
||
|
+# DEVICE: device specification as supported by chzdev(8) '--enable',
|
||
|
+# with the exception of specifying multiple devices, which
|
||
|
+# need to be separated by commas. Channel group members
|
||
|
+# (or zFCP parameters) in turn are separated by colons.
|
||
|
+# SETTINGS: Settings are positional arguments of chzdev in the form
|
||
|
+# KEY=VALUE separated by commas.
|
||
|
+
|
||
|
+zdev_enable="--persistent --enable"
|
||
|
+zdev_base_args="--yes --no-root-update --no-settle"
|
||
|
+
|
||
|
+for zdevs in $(getargs rd.zdev) ; do
|
||
|
+ IFS=',' read -r -a zdev <<< "$zdevs"
|
||
|
+ if [ -n "$zdev" ] && [ "$zdev" = "no-auto" -o "$zdev" = "auto" ] ; then
|
||
|
+ : # ignore, as it's handled by 95zdev
|
||
|
+ elif [ -z "$zdev" ] || [ -z "${zdev[1]}" ] ; then
|
||
|
+ warn "Unsupported usage of rd.zdev=$zdevs"
|
||
|
+ else
|
||
|
+ info "+ chzdev $zdev_enable [...] ${zdev[@]}"
|
||
|
+ chzdev $zdev_enable $zdev_base_args "${zdev[@]}"
|
||
|
+ fi
|
||
|
+done
|
||
|
+
|
||
|
--- /dev/null
|
||
|
+++ b/zdev/dracut/96zdev-live/write-udev-live.sh
|
||
|
@@ -0,0 +1,11 @@
|
||
|
+#!/bin/sh
|
||
|
+#
|
||
|
+# 96zdev-live/write-udev-live.sh
|
||
|
+# Copy udeve rules generated by chzdev for device activation starting with 41
|
||
|
+# to a *writable* /sysroot -- this is primarily useful for live/installation-
|
||
|
+# type media (and by default only active on no-hostonly initrds)
|
||
|
+#
|
||
|
+
|
||
|
+if [ -w /sysroot/etc/udev/rules.d ]; then
|
||
|
+ cp -p /etc/udev/rules.d/41-* /sysroot/etc/udev/rules.d
|
||
|
+fi
|
||
|
--- a/zdev/dracut/Makefile
|
||
|
+++ b/zdev/dracut/Makefile
|
||
|
@@ -3,17 +3,23 @@
|
||
|
|
||
|
ZDEVDIR := 95zdev
|
||
|
ZDEVKDUMPDIR := 95zdev-kdump
|
||
|
+ZDEVLIVEDIR := 96zdev-live
|
||
|
|
||
|
# HAVE_DRACUT
|
||
|
#
|
||
|
-# This install time parameter determines whether the zdev dracut module is
|
||
|
-# installed (HAVE_DRACUT=1) or not (default). When installed, the module
|
||
|
+# This install time parameter determines whether the zdev dracut modules are
|
||
|
+# installed (HAVE_DRACUT=1) or not (default). When installed, the 95zdev module
|
||
|
# performs the following functions when dracut is run:
|
||
|
#
|
||
|
# - copy the persistent root device configuration to the initial ram disk
|
||
|
# - install a boot-time hook to apply firmware-provided configuration data
|
||
|
# to the system
|
||
|
#
|
||
|
+# The 96zdev-live module performs the following functions when dracut is run:
|
||
|
+#
|
||
|
+# - install a boot-time hook to apply command-line-provided configuration data
|
||
|
+# to a no-hostonly built initial ram disk for use in live/installation media
|
||
|
+#
|
||
|
ifeq ($(HAVE_DRACUT),1)
|
||
|
install:
|
||
|
$(INSTALL) -m 755 -d $(DESTDIR)$(DRACUTMODDIR)/
|
||
|
@@ -29,4 +35,9 @@
|
||
|
$(INSTALL) -m 755 -d $(DESTDIR)$(DRACUTMODDIR)/$(ZDEVKDUMPDIR)
|
||
|
$(INSTALL) -m 755 $(ZDEVKDUMPDIR)/module-setup.sh \
|
||
|
$(DESTDIR)$(DRACUTMODDIR)/$(ZDEVKDUMPDIR)/
|
||
|
+ $(INSTALL) -m 755 -d $(DESTDIR)$(DRACUTMODDIR)/$(ZDEVLIVEDIR)
|
||
|
+ $(INSTALL) -m 755 $(ZDEVLIVEDIR)/module-setup.sh \
|
||
|
+ $(ZDEVLIVEDIR)/parse-zdev-live.sh \
|
||
|
+ $(ZDEVLIVEDIR)/write-udev-live.sh \
|
||
|
+ $(DESTDIR)$(DRACUTMODDIR)/$(ZDEVLIVEDIR)/
|
||
|
endif
|