- 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
181 lines
5.3 KiB
Diff
181 lines
5.3 KiB
Diff
From 78329f4df2afc9fae11ea30dd11839d956d4af08 Mon Sep 17 00:00:00 2001
|
|
From: Hannes Reinecke <hare@suse.de>
|
|
Date: Fri, 27 Jun 2014 11:43:28 +0200
|
|
Subject: 91zipl: Add new module to update s390x configuration
|
|
|
|
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 <hare@suse.de>
|
|
---
|
|
dracut.cmdline.7.asc | 14 ++++++++++
|
|
modules.d/91zipl/install_zipl_cmdline.sh | 33 +++++++++++++++++++++++
|
|
modules.d/91zipl/module-setup.sh | 45 ++++++++++++++++++++++++++++++++
|
|
modules.d/91zipl/parse-zipl.sh | 41 +++++++++++++++++++++++++++++
|
|
4 files changed, 133 insertions(+)
|
|
create mode 100644 modules.d/91zipl/install_zipl_cmdline.sh
|
|
create mode 100644 modules.d/91zipl/module-setup.sh
|
|
create mode 100644 modules.d/91zipl/parse-zipl.sh
|
|
|
|
Index: dracut-041/dracut.cmdline.7.asc
|
|
===================================================================
|
|
--- dracut-041.orig/dracut.cmdline.7.asc 2015-03-24 15:15:10.423712894 +0100
|
|
+++ dracut-041/dracut.cmdline.7.asc 2015-03-24 15:15:22.356383108 +0100
|
|
@@ -872,6 +872,20 @@
|
|
rd.cio_accept=0.0.0180,0.0.0800,0.0.0801,0.0.0802
|
|
--
|
|
|
|
+ZIPL
|
|
+~~~~
|
|
+**rd.zipl=**__<path to blockdevice>__::
|
|
+ Update the dracut commandline with the values found in the
|
|
+ _dracut-cmdline.conf_ file on the given device.
|
|
+ The values are merged into the existing commandline values
|
|
+ and the udev events are regenerated.
|
|
++
|
|
+[listing]
|
|
+.Example
|
|
+--
|
|
+rd.zipl=UUID=0fb28157-99e3-4395-adef-da3f7d44835a
|
|
+--
|
|
+
|
|
Plymouth Boot Splash
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
**plymouth.enable=0**::
|
|
Index: dracut-041/modules.d/91zipl/install_zipl_cmdline.sh
|
|
===================================================================
|
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
+++ dracut-041/modules.d/91zipl/install_zipl_cmdline.sh 2015-03-24 15:15:22.356383108 +0100
|
|
@@ -0,0 +1,33 @@
|
|
+#!/bin/bash
|
|
+
|
|
+DEV=$1
|
|
+MNT=/boot/zipl
|
|
+
|
|
+if [ -z "$DEV" ] ; then
|
|
+ echo "No IPL device given"
|
|
+ > /tmp/install.zipl.cmdline-done
|
|
+ exit 1
|
|
+fi
|
|
+
|
|
+[ -d ${MNT} ] || mkdir -p ${MNT}
|
|
+
|
|
+mount -o ro ${DEV} ${MNT}
|
|
+if [ "$?" != "0" ] ; then
|
|
+ echo "Failed to mount ${MNT}"
|
|
+ > /tmp/install.zipl.cmdline-done
|
|
+ exit 1
|
|
+fi
|
|
+
|
|
+if [ -f ${MNT}/dracut-cmdline.conf ] ; then
|
|
+ cp ${MNT}/dracut-cmdline.conf /etc/cmdline.d/99zipl.conf
|
|
+fi
|
|
+
|
|
+umount ${MNT}
|
|
+
|
|
+if [ -f /etc/cmdline.d/99zipl.conf ] ; then
|
|
+ systemctl restart dracut-cmdline.service
|
|
+ systemctl restart systemd-udev-trigger.service
|
|
+fi
|
|
+> /tmp/install.zipl.cmdline-done
|
|
+
|
|
+exit 0
|
|
Index: dracut-041/modules.d/91zipl/module-setup.sh
|
|
===================================================================
|
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
+++ dracut-041/modules.d/91zipl/module-setup.sh 2015-03-24 15:15:22.356383108 +0100
|
|
@@ -0,0 +1,45 @@
|
|
+#!/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() {
|
|
+ local _arch=$(uname -m)
|
|
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
|
|
+ return 0
|
|
+}
|
|
+
|
|
+# called by dracut
|
|
+depends() {
|
|
+ echo grub2
|
|
+ return 0
|
|
+}
|
|
+
|
|
+# called by dracut
|
|
+installkernel() {
|
|
+ instmods ext2
|
|
+}
|
|
+
|
|
+# called by dracut
|
|
+cmdline() {
|
|
+ local _boot_zipl
|
|
+
|
|
+ _boot_zipl=$(sed -n 's/\(.*\)\w*\/boot\/zipl.*/\1/p' /etc/fstab)
|
|
+ if [ -n "$_boot_zipl" ] ; then
|
|
+ echo "rd.zipl=${_boot_zipl}"
|
|
+ fi
|
|
+}
|
|
+
|
|
+# called by dracut
|
|
+install() {
|
|
+ inst_multiple mount umount
|
|
+
|
|
+ inst_hook cmdline 91 "$moddir/parse-zipl.sh"
|
|
+ inst "${moddir}/install_zipl_cmdline.sh" /sbin/install_zipl_cmdline.sh
|
|
+ if [[ $hostonly_cmdline == "yes" ]] ; then
|
|
+ local _zipl=$(cmdline)
|
|
+
|
|
+ [[ $_zipl ]] && printf "%s\n" "$_zipl"
|
|
+ fi
|
|
+ dracut_need_initqueue
|
|
+}
|
|
Index: dracut-041/modules.d/91zipl/parse-zipl.sh
|
|
===================================================================
|
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
+++ dracut-041/modules.d/91zipl/parse-zipl.sh 2015-03-24 15:15:22.356383108 +0100
|
|
@@ -0,0 +1,41 @@
|
|
+#!/bin/sh
|
|
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
+# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
+
|
|
+zipl_arg=$(getarg rd.zipl)
|
|
+
|
|
+if [ -n "$zipl_arg" ] ; then
|
|
+ case "$zipl_arg" in
|
|
+ LABEL=*) \
|
|
+ zipl_env="ENV{ID_FS_LABEL}"
|
|
+ zipl_val=${zipl_arg#LABEL=}
|
|
+ zipl_arg="/dev/disk/by-label/${zipl_val}"
|
|
+ ;;
|
|
+ UUID=*) \
|
|
+ zipl_env="ENV{ID_FS_UUID}"
|
|
+ zipl_val=${zipl_arg#UUID=}
|
|
+ zipl_arg="/dev/disk/by-uuid/${zipl_val}"
|
|
+ ;;
|
|
+ /dev/mapper/*) \
|
|
+ zipl_env="ENV{DM_NAME}"
|
|
+ zipl_val=${zipl_arg#/dev/mapper/}
|
|
+ ;;
|
|
+ /dev/disk/by-*) \
|
|
+ zipl_env="SYMLINK"
|
|
+ zipl_val=${zipl_arg#/dev/}
|
|
+ ;;
|
|
+ /dev/*) \
|
|
+ zipl_env="KERNEL"
|
|
+ zipl_val=${zipl_arg}
|
|
+ ;;
|
|
+ esac
|
|
+ if [ "$zipl_env" ] ; then
|
|
+ {
|
|
+ printf 'ACTION=="add|change", SUBSYSTEM=="block", %s=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/install_zipl_cmdline.sh %s"\n' \
|
|
+ ${zipl_env} ${zipl_val} ${zipl_arg}
|
|
+ echo "[ -f /tmp/install.zipl.cmdline-done ]" >$hookdir/initqueue/finished/wait-zipl-conf.sh
|
|
+ } >> /etc/udev/rules.d/99zipl-conf.rules
|
|
+ cat /etc/udev/rules.d/99zipl-conf.rules
|
|
+ fi
|
|
+ wait_for_dev -n "$zipl_arg"
|
|
+fi
|