net_init_failed()
{
echo
- echo "pl_netinit: network initialization failed,"
- echo "pl_netinit: shutting down machine in two hours"
+ echo $(date "+%H:%M:%S") " pl_netinit: network initialization failed,"
+ echo $(date "+%H:%M:%S") " pl_netinit: shutting down machine in two hours"
/bin/sleep 2h
/sbin/shutdown -h now
exit 1
{
/bin/rm -f $TMP_OLD_FLOPPY_CONF_FILE 2>&1 > /dev/null
- echo "pl_netinit: looking for node configuration file on floppy"
+ echo $(date "+%H:%M:%S") " pl_netinit: looking for node configuration file on floppy"
/bin/mount -o ro -t $NODE_CONF_DEVICE_FS_TYPES /dev/fd0 \
$CONF_DEVICE_MOUNT_POINT 2>&1 > /dev/null
# 1. check for new named file first on the floppy disk
if [ -r "$CONF_DEVICE_MOUNT_POINT/$NEW_NODE_CONF_NAME" ]; then
- echo "pl_netinit: found node configuration file plnode.txt, using"
-
conf_file="$CONF_DEVICE_MOUNT_POINT/$NEW_NODE_CONF_NAME"
+ echo $(date "+%H:%M:%S") " pl_netinit: found node configuration file $conf_file"
/etc/init.d/pl_validateconf < $conf_file > $USED_NET_CONF
/bin/umount $CONF_DEVICE_MOUNT_POINT
return 1
elif [ -r "$CONF_DEVICE_MOUNT_POINT/$OLD_NODE_CONF_NAME" ]; then
conf_file="$CONF_DEVICE_MOUNT_POINT/$OLD_NODE_CONF_NAME"
/bin/cp -f $conf_file $TMP_OLD_FLOPPY_CONF_FILE
- echo "pl_netinit: found old named configuration file, checking later."
+ echo $(date "+%H:%M:%S") " pl_netinit: found old named configuration file, checking later."
else
- echo "pl_netinit: floppy mounted, but no configuration file."
+ echo $(date "+%H:%M:%S") " pl_netinit: floppy mounted, but no configuration file."
fi
/bin/umount $CONF_DEVICE_MOUNT_POINT
else
- echo "pl_netinit: no floppy could be mounted, continuing search."
+ echo $(date "+%H:%M:%S") " pl_netinit: no floppy could be mounted, continuing search."
fi
# 2. check for a new named file on removable flash devices (those
# to prevent checking normal scsi disks, also make sure
# /sys/block/<dev>/removable is set to 1
- echo "pl_netinit: looking for node configuration file on flash based devices"
+ echo $(date "+%H:%M:%S") " pl_netinit: looking for node configuration file on flash based devices"
- # make the sd* expansion fail to an empty string if there are no sd
+ # make the sd* hd* expansion fail to an empty string if there are no sd
# devices
shopt -s nullglob
- for device in /sys/block/sd*; do
+ for device in /sys/block/[hs]d*; do
removable=`cat $device/removable`
if [[ $removable -ne 1 ]]; then
continue
for partition in $partitions ; do
check_dev=/dev/$partition
- echo "pl_netinit: looking for node configuration file on device $check_dev"
+ echo $(date "+%H:%M:%S") " pl_netinit: looking for node configuration file on device $check_dev"
/bin/mount -o ro -t $NODE_CONF_DEVICE_FS_TYPES $check_dev \
$CONF_DEVICE_MOUNT_POINT 2>&1 > /dev/null
if [[ $? -eq 0 ]]; then
if [ -r "$CONF_DEVICE_MOUNT_POINT/$NEW_NODE_CONF_NAME" ]; then
- echo "pl_netinit: found node configuration file plnode.txt, using"
-
conf_file="$CONF_DEVICE_MOUNT_POINT/$NEW_NODE_CONF_NAME"
+ echo $(date "+%H:%M:%S") " pl_netinit: found node configuration file $conf_file"
/etc/init.d/pl_validateconf < $conf_file > $USED_NET_CONF
- echo "pl_netinit: found configuration"
+ echo $(date "+%H:%M:%S") " pl_netinit: found configuration"
/bin/umount $CONF_DEVICE_MOUNT_POINT
return 1
fi
- echo "pl_netinit: not found"
+ echo $(date "+%H:%M:%S") " pl_netinit: not found"
/bin/umount $CONF_DEVICE_MOUNT_POINT
fi
# 3. see if there is an old file on the floppy disk. if there was,
# the file $TMP_OLD_FLOPPY_CONF_FILE will be readable.
if [ -r "$TMP_OLD_FLOPPY_CONF_FILE" ]; then
- echo "pl_netinit: found node configuration file planet.cnf, using"
-
conf_file=$TMP_OLD_FLOPPY_CONF_FILE
+ echo $(date "+%H:%M:%S") " pl_netinit: found node configuration file $conf_file"
/etc/init.d/pl_validateconf < $conf_file > $USED_NET_CONF
return 1
fi
# 4. check for plnode.txt on the cd at /usr/boot
- echo "pl_netinit: looking for network configuration on cd in /usr/boot"
+ echo $(date "+%H:%M:%S") " pl_netinit: looking for network configuration on cd in /usr/boot"
if [ -r "$CD_NET_CONF_BOOT" ]; then
- echo "pl_netinit: found cd configuration file, using"
+ echo $(date "+%H:%M:%S") " pl_netinit: found cd configuration file $CD_NET_BOOT_CONF"
/etc/init.d/pl_validateconf < $CD_NET_CONF_BOOT > $USED_NET_CONF
return 1
fi
# 5. check for plnode.txt on the cd at /usr
- echo "pl_netinit: looking for network configuration on cd in /usr"
+ echo $(date "+%H:%M:%S") " pl_netinit: looking for network configuration on cd in /usr"
if [ -r "$CD_NET_CONF_ROOT" ]; then
- echo "pl_netinit: found cd configuration file, using"
+ echo $(date "+%H:%M:%S") " pl_netinit: found cd configuration file $CD_NET_CONF_ROOT"
/etc/init.d/pl_validateconf < $CD_NET_CONF_ROOT > $USED_NET_CONF
return 1
fi
# builtin default. this can't be used to install a machine, but
# will at least let it download and run the boot manager, which
# can inform the users appropriately.
- echo "pl_netinit: using default network configuration"
+ echo $(date "+%H:%M:%S") " pl_netinit: using default network configuration"
if [ -r "$FALLBACK_NET_CONF" ]; then
- echo "pl_netinit: found cd default configuration file, using"
+ echo $(date "+%H:%M:%S") " pl_netinit: found cd default configuration file $FALLBACK_NET_CONF"
/etc/init.d/pl_validateconf < $FALLBACK_NET_CONF > $USED_NET_CONF
DEFAULT_NET_CONF=1
return 1
}
-echo "pl_netinit: bringing loopback network device up"
+echo $(date "+%H:%M:%S") " pl_netinit: bringing loopback network device up"
/sbin/ifconfig lo 127.0.0.1 up
find_node_config
if [ $? -eq 0 ]; then
# no network configuration file found. this should not happen as the
# default cd image has a backup one. halt.
- echo "pl_netinit: unable to find even a default network configuration"
- echo "pl_netinit: file, this cd may be corrupt."
+ echo $(date "+%H:%M:%S") " pl_netinit: unable to find even a default network configuration"
+ echo $(date "+%H:%M:%S") " pl_netinit: file, this cd may be corrupt."
net_init_failed
fi
# they will fail (as they should) - but the network will be up if dhcp is
# available
-echo "pl_netinit: loading network configuration"
+echo $(date "+%H:%M:%S") " pl_netinit: loading network configuration"
. $USED_NET_CONF
if [[ $DEFAULT_NET_CONF -eq 1 ]]; then
dev_address=`cat $device/address | tr A-Z a-z`
if [ "$device" == "$NET_DEVICE" -o "$dev_address" == "$NET_DEVICE" ]; then
ETH_DEVICE=$device
- echo "pl_netinit: found device $ETH_DEVICE with mac address $NET_DEVICE"
+ echo $(date "+%H:%M:%S") " pl_netinit: found device $ETH_DEVICE with mac address $dev_address"
break
fi
done
popd
else
ETH_DEVICE=$DEFAULT_NET_DEV
- echo "pl_netinit: using default device $ETH_DEVICE"
+ echo $(date "+%H:%M:%S") " pl_netinit: using default device $ETH_DEVICE"
fi
# of the startup
if [[ -z "$ETH_DEVICE" ]]; then
- echo "pl_netinit: unable to find a usable device, check to make sure"
- echo "pl_netinit: the NET_DEVICE field in the configuration file"
- echo "pl_netinit: cooresponds with a network adapter on this system"
+ echo $(date "+%H:%M:%S") " pl_netinit: unable to find a usable device, check to make sure"
+ echo $(date "+%H:%M:%S") " pl_netinit: the NET_DEVICE field in the configuration file"
+ echo $(date "+%H:%M:%S") " pl_netinit: cooresponds with a network adapter on this system"
net_init_failed
fi
# actually check to make sure ifconfig <device> succeeds
/sbin/ifconfig $ETH_DEVICE up 2>&1 > /dev/null
if [[ $? -ne 0 ]]; then
- echo "pl_netinit: device $ETH_DEVICE does not exist, most likely"
- echo "pl_netinit: this cd does not have hardware support for your"
- echo "pl_netinit: network adapter. please send the following lines"
- echo "pl_netinit: to PlanetLab Support: support@planet-lab.org"
- echo "pl_netinit: for further assistance"
+ echo $(date "+%H:%M:%S") " pl_netinit: device $ETH_DEVICE does not exist, most likely"
+ echo $(date "+%H:%M:%S") " pl_netinit: this cd does not have hardware support for your"
+ echo $(date "+%H:%M:%S") " pl_netinit: network adapter. please send the following lines"
+ echo $(date "+%H:%M:%S") " pl_netinit: to PlanetLab Support: support@planet-lab.org"
+ echo $(date "+%H:%M:%S") " pl_netinit: for further assistance"
echo
/sbin/lspci -n | /bin/grep "Class 0200"
echo
net_init_failed
fi
-if [[ "$IP_METHOD" == "dhcp" ]]; then
- echo "pl_netinit: attempting to bring up device with dhcp"
-
- # setup a dhclient conf file for this device (used to send
- # our hostname to the dhcp server)
- echo "interface \"$ETH_DEVICE\" {" > $DHCLIENT_CONF_FILE
- echo "send host-name \"$HOST_NAME.$DOMAIN_NAME\";" >> $DHCLIENT_CONF_FILE
- echo "}" >> $DHCLIENT_CONF_FILE
-
- # touch the redhat net device configuration file so
- # dhclient doesn't complain
- /bin/touch /etc/sysconfig/network-scripts/ifcfg-$ETH_DEVICE
-
- configured=0
- while [[ $configured -eq 0 ]]; do
- /sbin/dhclient -1 -cf $DHCLIENT_CONF_FILE $ETH_DEVICE
- if [[ $? -ne 0 ]]; then
- echo "pl_netinit: dhcp failed, retrying in 2 minutes"
- /bin/sleep 120
- else
- echo "pl_netinit: dhcp succeeded"
- configured=1
- break
- fi
- done
-else
- echo "pl_netinit: configuring device statically"
+ifcfg=/etc/sysconfig/network-scripts/ifcfg-$ETH_DEVICE
+echo "DEVICE=$ETH_DEVICE" > $ifcfg
+[ -n "$NET_DEVICE" ] && \
+ echo "HWADDR=$NET_DEVICE" >> $ifcfg
+echo "BOOTPROTO=$IP_METHOD" >> $ifcfg
+echo "DHCP_HOSTNAME=$HOST_NAME.$DOMAIN_NAME" >> $ifcfg
+
+if [ -n "$WLAN_SSID$WLAN_IWCONFIG$WLAN_MODE" ]; then
+ [ -n "$WLAN_SSID" ] && \
+ echo "ESSID=$WLAN_SSID" >> $ifcfg
+ [ -n "$WLAN_IWCONFIG" ] && \
+ echo "IWCONFIG=$WLAN_IWCONFIG" >> $ifcfg
+ [ -n "$WLAN_MODE" ] && \
+ echo "MODE=$WLAN_MODE" >> $ifcfg
+fi
+
+if [ "$IP_METHOD" = "static" ]; then
+ echo "IPADDR=$IP_ADDRESS" >> $ifcfg
+ echo "NETMASK=$IP_NETMASK" >> $ifcfg
+ echo "GATEWAY=$IP_GATEWAY" >> $ifcfg
- /sbin/ifconfig $ETH_DEVICE $IP_ADDRESS broadcast $IP_BROADCASTADDR \
- netmask $IP_NETMASK
- /sbin/route add default gw $IP_GATEWAY dev $ETH_DEVICE
/bin/hostname "$HOST_NAME.$DOMAIN_NAME"
if [[ -z "$IP_DNS1" ]]; then
- echo "pl_netinit: no dns server specified, cannot continue."
+ echo $(date "+%H:%M:%S") " pl_netinit: no dns server specified, cannot continue."
net_init_failed
fi
fi
fi
+
+echo $(date "+%H:%M:%S") " pl_netinit: attempting to bring up device $ETH_DEVICE"
+/sbin/ifup $ETH_DEVICE
+
# for backwards compatibility
/sbin/ifconfig $ETH_DEVICE > $IFCONFIG_OUTPUT
-echo "pl_netinit: network online"
+echo $(date "+%H:%M:%S") " pl_netinit: network online"