On 12/11/14 at 03:46pm, Thomas Renninger wrote: > From: Hannes Reinecke <hare@xxxxxxx> > > When running with --hostonly-cmdline we should be storing > the current configuration in /etc/cmdline.d so that dracut > will be configure the system automatically. > > References: bnc#877288 > > Signed-off-by: Hannes Reinecke <hare@xxxxxxx> > Signed-off-by: Thomas Renninger <trenn@xxxxxxx> > --- > modules.d/95fcoe/module-setup.sh | 52 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > > diff --git a/modules.d/95fcoe/module-setup.sh b/modules.d/95fcoe/module-setup.sh > index b67aa04..174745a 100755 > --- a/modules.d/95fcoe/module-setup.sh > +++ b/modules.d/95fcoe/module-setup.sh > @@ -2,7 +2,16 @@ > > # called by dracut > check() { > + [[ $hostonly ]] || [[ $mount_needs ]] && { > + for c in /sys/bus/fcoe/devices/ctlr_* ; do > + [ -L $c ] || continue > + fcoe_ctlr=$c > + done > + [ -z "$fcoe_ctlr" ] && return 255 > + } > + > require_binaries dcbtool fipvlan lldpad ip readlink || return 1 > + > return 0 > } > > @@ -17,12 +26,55 @@ installkernel() { > instmods fcoe 8021q edd > } > > +get_vlan_parent() { > + local link=$1 > + > + [ -d $link ] || return > + read iflink < $link/iflink > + for if in /sys/class/net/* ; do > + read idx < $if/ifindex > + if [ $idx -eq $iflink ] ; then > + echo ${if##*/} > + fi > + done > +} > + > +# called by dracut > +cmdline() { > + > + for c in /sys/bus/fcoe/devices/ctlr_* ; do > + [ -L $c ] || continue > + read enabled < $c/enabled > + [ $enabled -eq 0 ] && continue > + d=$(cd -P $c; echo $PWD) > + i=${d%/*} > + read mac < ${i}/address > + s=$(dcbtool gc ${i##*/} dcb | sed -n 's/^DCB State:\t*\(.*\)/\1/p') > + if [ -z "$s" ] ; then > + p=$(get_vlan_parent ${i}) > + if [ "$p" ] ; then > + s=$(dcbtool gc ${p} dcb | sed -n 's/^DCB State:\t*\(.*\)/\1/p') > + fi > + fi > + if [ "$s" = "on" ] ; then > + dcb="dcb" > + else > + dcb="nodcb" > + fi > + echo "fcoe=${mac}:${dcb}" > + done > +} Hi Thomas, Why do you need to do this? Usually a module should do the work based on its functionality. According to your change, how does a user specify NIC or vlan they only want to bring up? Thanks Baoquan > + > # called by dracut > install() { > inst_multiple ip dcbtool fipvlan lldpad readlink lldptool > > mkdir -m 0755 -p "$initdir/var/lib/lldpad" > > + if [[ $hostonly_cmdline == "yes" ]] ; then > + local _fcoeconf=$(cmdline) > + [[ $_fcoeconf ]] && printf "%s\n" "$_fcoeconf" >> "${initdir}/etc/cmdline.d/95fcoe.conf" > + fi > inst "$moddir/fcoe-up.sh" "/sbin/fcoe-up" > inst "$moddir/fcoe-edd.sh" "/sbin/fcoe-edd" > inst "$moddir/fcoe-genrules.sh" "/sbin/fcoe-genrules.sh" > -- > 1.8.5.2 > > -- > To unsubscribe from this list: send the line "unsubscribe initramfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html