dracut/0054-ifcfg-write-ifcfg.sh-add-s390-specific-configuration.patch
Harald Hoyer 35271e26a2 dracut-018-74.git20120522
- new upstream version
2012-05-22 11:49:50 +02:00

107 lines
2.9 KiB
Diff

From a82d207b8d0c067ab6f70acb0dc9e47a6f09d3f8 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 10 May 2012 14:31:05 +0200
Subject: [PATCH] ifcfg/write-ifcfg.sh: add s390 specific configuration
options
https://bugzilla.redhat.com/show_bug.cgi?id=811521
---
modules.d/45ifcfg/write-ifcfg.sh | 70 ++++++++++++++++++++++++++++++++++++--
1 file changed, 68 insertions(+), 2 deletions(-)
diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
index 580fbd4..d1f6fe6 100755
--- a/modules.d/45ifcfg/write-ifcfg.sh
+++ b/modules.d/45ifcfg/write-ifcfg.sh
@@ -20,6 +20,68 @@ fi
mkdir -m 0755 -p /tmp/ifcfg/
mkdir -m 0755 -p /tmp/ifcfg-leases/
+get_config_line_by_subchannel()
+{
+ local CHANNEL
+ local line
+
+ CHANNELS="$1"
+ while read line; do
+ if strstr "$line" "$CHANNELS"; then
+ echo $line
+ return 0
+ fi
+ done < /etc/ccw.conf
+ return 1
+}
+
+print_s390() {
+ local _netif
+ local SUBCHANNELS
+ local OPTIONS
+ local NETTYPE
+ local CONFIG_LINE
+ local i
+ local channel
+
+ _netif="$1"
+ # if we find ccw channel, then use those, instead of
+ # of the MAC
+ SUBCHANNELS=$({
+ for i in /sys/class/net/$_netif/device/cdev[0-9]*; do
+ [ -e $i ] || continue
+ channel=$(readlink -f $i)
+ echo -n "${channel##*/},"
+ done
+ })
+ [ -n "$SUBCHANNELS" ] || return 1
+
+ SUBCHANNELS=${SUBCHANNELS%,}
+ echo "SUBCHANNELS=\"${SUBCHANNELS}\""
+ CONFIG_LINE=$(get_config_line_by_subchannel $SUBCHANNELS)
+
+ [ $? -ne 0 -o -z "$CONFIG_LINE" ] && return
+
+ IFS=","
+ set $CONFIG_LINE
+ IFS="$OLD_IFS"
+ NETTYPE=$1
+ shift
+ SUBCHANNELS="$1"
+ OPTIONS=""
+ shift
+ while [ $# -gt 0 ]; do
+ case $1 in
+ *=*) OPTIONS="$OPTIONS $1";;
+ esac
+ shift
+ done
+ OPTIONS=${OPTIONS## }
+ echo "NETTYPE=\"${NETTYPE}\""
+ echo "OPTIONS=\"${OPTIONS}\""
+}
+
+
for netif in $IFACES ; do
# bridge?
unset bridge
@@ -38,7 +100,6 @@ for netif in $IFACES ; do
echo "ONBOOT=yes"
echo "NETBOOT=yes"
echo "UUID=$uuid"
- [ -n "$macaddr" ] && echo "MACADDR=$macaddr"
[ -n "$mtu" ] && echo "MTU=$mtu"
if [ -f /tmp/net.$netif.lease ]; then
strstr "$ip" '*:*:*' &&
@@ -63,7 +124,12 @@ for netif in $IFACES ; do
if [ -z "$bridge" ] && [ -z "$bond" ]; then
# standard interface
{
- echo "HWADDR=$(cat /sys/class/net/$netif/address)"
+ if [ -n "$macaddr" ]; then
+ echo "MACADDR=$macaddr"
+ else
+ echo "HWADDR=\"$(cat /sys/class/net/$netif/address)\""
+ fi
+ print_s390 $netif
echo "TYPE=Ethernet"
echo "NAME=\"Boot Disk\""
[ -n "$mtu" ] && echo "MTU=$mtu"