Hi, When rcS_fai tries to get bootp parameters, it does a query on every interface the machine has. This can take a lot of time for nothing.
the following patch tries the defaut interface first, and break the loop after the first successfull query. (use the attached file to avoid copy-paste diff problems) ---------------------8<-------------------------- --- /usr/lib/fai/nfsroot/usr/share/fai/subroutines~ Fri Nov 16 17:56:16 2001 +++ /usr/lib/fai/nfsroot/usr/share/fai/subroutines Thu Jan 3 16:00:23 2002 @@ -228,11 +228,14 @@ local device local bootlog=/tmp/bootp.log + # test the default interface first! + testdev="`route -n | awk '/^0.0.0.0/ { print $8}'` $netdevices" # define all bootpc information as variables - for device in $netdevices; do + for device in $testdev; do echo "Sending BOOTP request using device $device" echo "* --- network device $device ---" >> $bootlog bootpc --dev $device --timeoutwait $timeout --returniffail >> $bootlog 2>&1 + if [ $? -eq 0 ]; then break; fi done [ -n "$verbose" -a -f $bootlog ] && echo "Reading $bootlog" ---------------------8<-------------------------- -- Philippe Biondi <pbi@ cartel-info.fr> Cartel Informatique Security Consultant/R&D http://www.cartel-info.fr Phone: +33 1 44 06 97 94 Fax: +33 1 44 06 97 99 PGP KeyID:3D9A43E2 FingerPrint:C40A772533730E39330DC0985EE8FF5F3D9A43E2
--- /usr/lib/fai/nfsroot/usr/share/fai/subroutines~ Fri Nov 16 17:56:16 2001 +++ /usr/lib/fai/nfsroot/usr/share/fai/subroutines Thu Jan 3 16:00:23 2002 @@ -228,11 +228,14 @@ local device local bootlog=/tmp/bootp.log + # test the default interface first! + testdev="`route -n | awk '/^0.0.0.0/ { print $8}'` $netdevices" # define all bootpc information as variables - for device in $netdevices; do + for device in $testdev; do echo "Sending BOOTP request using device $device" echo "* --- network device $device ---" >> $bootlog bootpc --dev $device --timeoutwait $timeout --returniffail >> $bootlog 2>&1 + if [ $? -eq 0 ]; then break; fi done [ -n "$verbose" -a -f $bootlog ] && echo "Reading $bootlog"