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>master
parent
8f4ee8c71b
commit
442abd16d2
|
@ -28,6 +28,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
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
depends() {
|
||||
echo network rootfs-block
|
||||
|
@ -37,6 +52,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() {
|
||||
|
@ -76,6 +97,11 @@ installkernel() {
|
|||
| iscsi_module_filter | instmods
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
cmdline() {
|
||||
install_ibft
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
install() {
|
||||
inst_multiple umount iscsistart hostname iscsi-iname
|
||||
|
|
Loading…
Reference in New Issue