From 1ff6be8aef787513b8143df444a1dd2d696b0944 Mon Sep 17 00:00:00 2001 From: Steffen Maier Date: Thu, 23 Mar 2023 19:33:52 +0100 Subject: [PATCH 12/23] feat(dasd): minimize dasd handling consolidated in s390-tools Parsing of rd.dasd is handled by s390-tools zdev dracut module 95zdev as of https://github.com/ibm-s390-linux/s390-tools/commit/99270236805972544932feab9692ee7122a343b8 ("zdev/dracut: add rd.dasd cmdline option handling"). Even though this removes the last implementation of parsing rd.dasd in dracut, above s390-tools change introduces another implementation of parsing the exact same rd.dasd syntax. Therefore, it would be good to keep the documentation in man/dracut.cmdline.7 of dracut as one central place describing all s390 device types that dracut handles. For the time being, keep copying /etc/dasd.conf. The corresponding call to dasd_cio_free is in 95dasd_mod/parse-dasd-mod.sh and indirectly triggers processing of /etc/dasd.conf even with the typical cio_ignore kernel boot parameter ignoring most devices. Preparation for consolidating persistent configuration with zdev. Signed-off-by: Steffen Maier --- man/dracut.cmdline.7.asc | 11 ++++++++++- modules.d/95dasd/module-setup.sh | 6 ++---- modules.d/95dasd/parse-dasd.sh | 11 ----------- 3 files changed, 12 insertions(+), 16 deletions(-) delete mode 100755 modules.d/95dasd/parse-dasd.sh diff --git a/man/dracut.cmdline.7.asc b/man/dracut.cmdline.7.asc index 01bdf10f..c31dbfc6 100644 --- a/man/dracut.cmdline.7.asc +++ b/man/dracut.cmdline.7.asc @@ -973,7 +973,16 @@ root=virtiofs:host rw DASD ~~~~ **rd.dasd=**....:: - same syntax as the kernel module parameter (s390 only) + same syntax as the kernel module parameter (s390 only). + For more details on the syntax see the IBM book + "Linux on IBM Z and IBM LinuxONE - Device Drivers, Features, and Commands" + https://www.ibm.com/docs/en/linux-on-systems?topic=overview-device-drivers-features-commands. + This parameter can be specified multiple times. ++ +NOTE: + This parameter is no longer handled by dracut itself but with the exact + same syntax by + https://github.com/ibm-s390-linux/s390-tools/tree/master/zdev/dracut/95zdev. ZFCP ~~~~ diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh index 180da140..825f95d8 100755 --- a/modules.d/95dasd/module-setup.sh +++ b/modules.d/95dasd/module-setup.sh @@ -4,20 +4,18 @@ check() { local _arch=${DRACUT_ARCH:-$(uname -m)} [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1 - require_binaries normalize_dasd_arg || return 1 + require_binaries dasdconf.sh || return 1 return 0 } # called by dracut depends() { - echo "dasd_mod" return 0 } # called by dracut install() { - inst_hook cmdline 30 "$moddir/parse-dasd.sh" - inst_multiple dasdinfo dasdconf.sh normalize_dasd_arg + inst_multiple dasdconf.sh conf=/etc/dasd.conf if [[ $hostonly && -f $conf ]]; then inst -H $conf diff --git a/modules.d/95dasd/parse-dasd.sh b/modules.d/95dasd/parse-dasd.sh deleted file mode 100755 index cda3970c..00000000 --- a/modules.d/95dasd/parse-dasd.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -for dasd_arg in $(getargs rd.dasd= -d rd_DASD= DASD=); do - ( - local OLDIFS="$IFS" - IFS="," - # shellcheck disable=SC2086 - set -- $dasd_arg - IFS="$OLDIFS" - echo "$@" | normalize_dasd_arg >> /etc/dasd.conf - ) -done -- 2.42.0