On 12/29/2011 05:05 PM, David Dillow wrote: > On Thu, 2011-12-29 at 11:13 +0800, Dave Young wrote: >> sometimes we need bring up network even without netroot >> >> Here implement this by adding one param to ifup script, user can use: >> /sbin/ifup $netif -m; to bring up eth0, note currently ifup will see >> anything in param $2 as same. >> >> `ifup eth0 -m` will create /tmp/net.eth0.mannual stamp file, >> later dhclient-script can check this and pass $2 to netroot, >> then netroot script will bring eth0 up > > 'Manual' is misspelled throughout the patch, and your commit message is > a bit broken -- you say '/sbin/ifup $netif -m' will bring up eth0. You > put the command line that actually would in the next paragraph. Thanks for comments. Will check and fix the spelling. For broken commit message you means 's/$netif/eth0' ? will fix > > What's the use case? I'm sure there probably is one, but it's better to > be specific in the commit message when giving an example. I'm assuming > this is for your kdump work? Yes, kdump will need scp vmcore to remote machine which need net up without netroot Also will add to v2 patch description > > >> --- dracut.orig/modules.d/40network/dhclient-script >> +++ dracut/modules.d/40network/dhclient-script >> @@ -74,7 +74,12 @@ case $reason in >> echo "$line" >> done >/tmp/dhclient.$netif.dhcpopts >> echo online > /sys/class/net/$netif/uevent >> - initqueue --onetime --name netroot-$netif netroot $netif >> + if [ -e /tmp/net.$netif.mannual ]; then >> + /sbin/netroot $netif -m >> + rm -f /tmp/net.$netif.mannual >> + else >> + initqueue --onetime --name netroot-$netif netroot $netif >> + fi > > And if we want to use kdump with NFS root? If nfsroot is already mounted as sysroot, ifup eth0 -m will return as nop; If ifup eth0 -m run firstly then the shared codes will pass-through and still will run netroot specific code. > > I think it would be cleaner to add either conditionally add netroot to > the initqueue only when there is actually a netroot used, or > make /sbin/netroot not care... it currently exits with a nonzero value > if /tmp/root.info isn't there, or $netroot is empty. I assume that > causes problems elsewhere -- I haven't kept up with dracut for a while > -- but perhaps not and it is safe to just always call it. I'm not sure I fully understand your option. can you elaborate more detail? > >> --- dracut.orig/modules.d/40network/ifup >> +++ dracut/modules.d/40network/ifup > >> @@ -50,7 +52,11 @@ do_ipv6auto() { >> >> >> echo online > /sys/class/net/$netif/uevent >> - initqueue --onetime --name netroot-$netif netroot $netif >> + if [ -z "$2" ]; then >> + initqueue --onetime --name netroot-$netif netroot $netif >> + else >> + /sbin/netroot $netif -m >> + fi >> } > > Same comment here, with the added bonus that "$2" will reference the > function's arguments, not the scripts, so you'll always do the initqueue > call. Good catch, will fix > > Why are you wanting to run netroot immediately if you aren't using a > network root? I want it behave like a manual operation. > > If it's just to copy the configuration over when you have a kdump, is it > going to hurt things to not copy in that case? Do the network scripts in > the real root care? They have to handle the case when you don't have a > kdump anyway -- assuming you don't bring up the network in dracut unless > you have a dump push. we need to scp to nics other than nfs root nic also. > > If they really do care, then perhaps consider splitting out the copying > of the config to a separate step that can be shared, rather than making > things uglier than they already are. It'd probably be a good cleanup on > it's own merits. > I firstly tried to split the code and isolate some code out, but finally find it become more complex become current dracut is fully oriented to rootfs mounting... > Dave > > > > -- Thanks Dave -- 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