ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/net-detect

sparky cvs at pld-linux.org
Fri Mar 3 01:21:33 CET 2006


Author: sparky
Date: Fri Mar  3 01:21:31 2006
New Revision: 7070

Modified:
   ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/net-detect
Log:
- configure correctly if udev has already loaded modules


Modified: ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/net-detect
==============================================================================
--- ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/net-detect	(original)
+++ ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/net-detect	Fri Mar  3 01:21:31 2006
@@ -12,11 +12,42 @@
 
 verbose 1 -G "Setting network cards"
 
+set_ifcfg() {
+	DEV=$1
+	IF=/etc/sysconfig/interfaces/ifcfg-$DEV
+	IP=$2
+	ONBOOT=$3
+	[[ -z $IP ]] && return
+	[[ -e $IF ]] && mv -f ${IF}{,.backup}
+	[[ -n $ONBOOT ]] && ONBOOT=yes
+	verbose 4 "     +-Creating ifcfg-$IF config file"
+	if [ "$IP" == "dhcp" -o "$IP" == "pump" ]; then
+		IPADDR="192.168.1.1/24"
+		BOOTPROTO=$IP
+	else
+		IPADDR=$IP
+		BOOTPROTO=none
+	fi
+
+cat > $IF << EOF
+DEVICE=$DEV
+
+ONBOOT=$ONBOOT
+
+IPADDR=$IPADDR
+BOOTPROTO=$BOOTPROTO
+
+WLAN_NICKNAME="ppcrcd"
+DHCP_OPTIONS="-DHt 15"
+EOF
+}
+
 confnet() {
-	for CONF in /etc/sysconfig/interfaces/ifcfg-eth[0-9]{,[0-9]}; do
-		mv -f $CONF $CONF.backup
-	done
-	
+	ONBOOT=yes
+	if [[ $1 == noboot ]]; then
+		ONBOOT=no
+		shift
+	fi
 	COUNT=0
 	while [ -n "$1" ]; do
 		eth=$1
@@ -27,17 +58,7 @@
 		DNS=$( echo $eth | awk -F: '{print $4}')
 		verbose 3 "   +-Setting $CARD with $IPB IP"
 		echo "alias eth${COUNT} ${CARD}" >> /etc/modprobe.conf
-		( echo "DEVICE=eth${COUNT}";
-		  if [ "$IPB" == "dhcp" -o "$IPB" == "pump" ]; then
-			echo "#IPADDR=192.168.1.101/24";
-			echo "BOOTPROTO=$IPB";
-		  else
-			echo "IPADDR=$IPB";
-			echo "BOOTPROTO=none";
-		  fi
-		  echo "ONBOOT=yes";
-		  echo 'DHCP_OPTIONS="-DHt 15"' ) \
-		  	 > /etc/sysconfig/interfaces/ifcfg-eth${COUNT}
+		set_ifcfg eth${COUNT} $IPB $ONBOOT
 		
 		if [ -n "$GATE" ]; then
 			sed -i -e "s/^GATEWAY=.*$/GATEWAY=$GATE/" \
@@ -69,7 +90,15 @@
 	
 	if ! egrep -q "^[[:space:]]*alias[[:space:]]*eth0" /etc/modprobe.conf; then
 		verbose 2 -B " +-Autodetecting network"
-		confnet $(/usr/bin/pcidev /m net | sed 's/$/:dhcp/')
+		if [[ -d /sys/class/net/eth* ]]; then
+			# if udev has detected something only setup ifcfg files
+			for NET in /sys/class/net/eth*; do
+				set_ifcfg ${NET##*/} dhcp no
+			done
+		else
+			#old behaviour
+			confnet noboot $(/usr/bin/pcidev /m net | sed 's/$/:dhcp/')
+		fi
 	fi
 fi
 


More information about the pld-cvs-commit mailing list