You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.4 KiB
85 lines
2.4 KiB
From f31220ec883956f459bc227d6fe35d3a581eb369 Mon Sep 17 00:00:00 2001 |
|
From: Hannes Reinecke <hare@suse.de> |
|
Date: Thu, 25 Feb 2016 20:58:09 +0800 |
|
Subject: [PATCH] 95iscsi: Autodetect iSCSI firmware |
|
|
|
Some iSCSI initiator present firmware information in |
|
/sys/firmware/ibft or /sys/firmware/iscsi_bootX |
|
|
|
Whenever we detect one of those directories we should assume |
|
that the iSCSI devices should be activated. |
|
|
|
Also incorporates SUSE patches: |
|
0049: |
|
95iscsi: Use 'ip=ibft' for ibft autoconfiguration |
|
|
|
For iBFT autoconfiguration we should be setting 'ip=ibft' |
|
instead of rd.neednet. This should instruct dracut to only |
|
enable the iBFT interfaces and leave the rest alone. |
|
|
|
References: bnc#879038 |
|
|
|
0054: |
|
95iscsi: update commandline printing |
|
|
|
dracut has a separate callout 'cmdline' which should be used |
|
for printing out the generated commandline. |
|
|
|
Signed-off-by: Pavel Wieczorkiewicz <pwieczorkiewicz@suse.com> |
|
Signed-off-by: Hannes Reinecke <hare@suse.de> |
|
Signed-off-by: Thomas Renninger <trenn@suse.de> |
|
--- |
|
modules.d/95iscsi/module-setup.sh | 26 ++++++++++++++++++++++++++ |
|
1 file changed, 26 insertions(+) |
|
|
|
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh |
|
index 4ecba05e..7ef0caa6 100755 |
|
--- a/modules.d/95iscsi/module-setup.sh |
|
+++ b/modules.d/95iscsi/module-setup.sh |
|
@@ -29,6 +29,21 @@ check() { |
|
return 0 |
|
} |
|
|
|
+install_ibft() { |
|
+ # When iBFT / iscsi_boot is detected: |
|
+ # - Use 'ip=ibft' to set up iBFT network interface |
|
+ # - specify firmware booting cmdline parameter |
|
+ |
|
+ for d in /sys/firmware/* ; do |
|
+ if [ -d ${d}/initiator ] ; then |
|
+ if [ ${d##*/} = "ibft" ] ; then |
|
+ echo -n "ip=ibft " |
|
+ fi |
|
+ echo -n "rd.iscsi.firmware=1" |
|
+ fi |
|
+ done |
|
+} |
|
+ |
|
depends() { |
|
echo network rootfs-block |
|
} |
|
@@ -36,6 +51,12 @@ depends() { |
|
installkernel() { |
|
local _arch=$(uname -m) |
|
|
|
+ # Detect iBFT and perform mandatory steps |
|
+ if [[ $hostonly_cmdline == "yes" ]] ; then |
|
+ install_ibft > "${initdir}/etc/cmdline.d/95iscsi.conf" |
|
+ echo >> "${initdir}/etc/cmdline.d/95iscsi.conf" |
|
+ fi |
|
+ |
|
instmods bnx2i qla4xxx cxgb3i cxgb4i be2iscsi |
|
hostonly="" instmods iscsi_tcp iscsi_ibft crc32c iscsi_boot_sysfs |
|
iscsi_module_filter() { |
|
@@ -75,6 +96,11 @@ installkernel() { |
|
| iscsi_module_filter | instmods |
|
} |
|
|
|
+cmdline() { |
|
+ install_ibft |
|
+} |
|
+ |
|
+# called by dracut |
|
install() { |
|
inst_multiple umount iscsistart hostname iscsi-iname |
|
inst_multiple -o iscsiuio
|
|
|