File 0059-99suse-Add-SUSE-specific-initrd-parsing.patch of Package dracut.12460

From 1202041ec3f7b2d8dd58999e72a309c9fba9069f Mon Sep 17 00:00:00 2001
From: Thomas Renninger <trenn@suse.de>
Date: Wed, 4 Jun 2014 12:56:50 +0200
Subject: 99suse: Add SUSE-specific initrd parsing

Add a module to implement mkinitrd-compatible kernel parameter parsing

Signed-off-by: Thomas Renninger <trenn@suse.de>
---
 modules.d/99suse/module-setup.sh      |  8 ++++++
 modules.d/99suse/parse-suse-initrd.sh | 51 +++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+)
 create mode 100755 modules.d/99suse/module-setup.sh
 create mode 100755 modules.d/99suse/parse-suse-initrd.sh

Index: dracut-042/modules.d/99suse/module-setup.sh
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dracut-042/modules.d/99suse/module-setup.sh	2015-06-24 18:02:09.081356075 +0200
@@ -0,0 +1,8 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+# module-setup.sh for openSUSE / SLE initrd parameters conversion
+
+install() {
+    inst_hook cmdline 99 "$moddir/parse-suse-initrd.sh"
+}
Index: dracut-042/modules.d/99suse/parse-suse-initrd.sh
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dracut-042/modules.d/99suse/parse-suse-initrd.sh	2015-06-24 18:02:09.081356075 +0200
@@ -0,0 +1,51 @@
+#!/bin/sh
+# convert openSUSE / SLE initrd command lines into dracut ones
+# linuxrc=trace shell=1 sysrq=yes sysrq=1-9 journaldev mduuid
+# TargetAddress TargetPort TargetName
+
+# sysrq
+sysrq=$(getarg sysrq)
+if [ "$sysrq" ] && [ "$sysrq" != "no" ]; then
+    echo 1 > /proc/sys/kernel/sysrq
+    case "$sysrq" in
+        0|1|2|3|4|5|6|7|8|9)
+            echo $sysrq > /proc/sysrq-trigger
+            ;;
+    esac
+fi
+
+# debug
+if getarg linuxrc=trace; then
+    echo "rd.debug rd.udev.debug" >> /etc/cmdline.d/99-suse.conf
+    unset CMDLINE
+fi
+
+# debug shell
+if getargbool 0 shell; then
+    echo "rd.break" >> /etc/cmdline.d/99-suse.conf
+    unset CMDLINE
+fi
+
+# journaldev
+journaldev=$(getarg journaldev)
+if [ -n "$journaldev" ]; then
+    echo "root.journaldev=$journaldev" >> /etc/cmdline.d/99-suse.conf
+    unset CMDLINE
+fi
+
+# mduuid
+mduuid=$(getarg mduuid)
+if [ -n "$mduuid" ]; then
+    echo "rd.md.uuid=$mduuid" >> /etc/cmdline.d/99-suse.conf
+    unset CMDLINE
+fi
+
+# TargetAddress / TargetPort / TargetName
+TargetAddress=$(getarg TargetAddress)
+TargetPort=$(getarg TargetPort)
+TargetName=$(getarg TargetName)
+
+if [ -n "$TargetAddress" -a -n "$TargetName" ]; then
+    echo "netroot=iscsi:$TargetAddress::$TargetPort::$TargetName" >> /etc/cmdline.d/99-suse.conf
+    unset CMDLINE
+fi