#! /bin/sh # /etc/rc.d/rc.ethernet # # Version:0.1 # Frank Schlaefendorf # erstellt am 16.02.2005 # letzte Aenderung 09.04.2005 ACTION=$1 DEVICE=$2 SCHEME=$3 if [ "$SCHEME" == "" ]; then SCHEME=default fi if [ -e /etc/rc.d/PCMCIA_SCHEME ]; then . /etc/rc.d/PCMCIA_SCHEME else # Editiere die Angaben DEVICE=eth0 # feste (Notfall)IP Konfiguration IPADDR="192.168.0.9" NETMASK="255.255.255.0" # soll die IP ueber DHCP bezogen werden? yes/no USE_DHCP=yes #DHCP_HOSTNAME=`/bin/hostname` GATEWAY="" fi dhcp_start(){ /sbin/ifconfig $DEVICE down /sbin/dhcpcd -k $DEVICE 2>&1 > /dev/null sleep 2 echo "Konfiguration von $DEVICE ueber DHCP..." # Add the -h option to the DHCP hostname: if [ ! "$DHCP_HOSTNAME" = "" ]; then DHCP_HOSTNAME="-h $DHCP_HOSTNAME" fi /sbin/dhcpcd -t 10 ${DHCP_HOSTNAME} -d $DEVICE if [ $? -ne 0 ]; then echo "Es ist kein DHCP-Server erreichbar, statische IP $IPADDR wird konfiguriert " staticip_start return $? else return 0 fi } staticip_start(){ # set up IP statically: # Determine broadcast and network addresses from the IP address and netmask: BROADCAST=`/bin/ipmask $NETMASK $IPADDR | cut -f 1 -d ' '` NETWORK=`/bin/ipmask $NETMASK $IPADDR | cut -f 2 -d ' '` # Set up the ethernet card: echo "Konfiguriere $DEVICE:" echo "ifconfig $DEVICE ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK}" /sbin/ifconfig $DEVICE down 2>&1 > /dev/null /sbin/ifconfig $DEVICE ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK} # ist ein fehler aufgetreten if [ ! $? = 0 ]; then echo "$DEVICE wurde nicht konfiguriert." echo "Das kann folgende Ursachen haben:" echo "1. Der Kernel unterstützt die Netzwerkkarte nicht, oder die" echo " Hardware der Karte wurde falsch konfiguriert." echo "2. Der Rechner besitzt keine Netzwerkkarte." echo "3. Die Netzwerkkarte ist defekt...." return 1 else return 0 fi } if [ -z "`ifconfig $DEVICE 2>&1 | grep 'Device not found'`" ]; then case $ACTION in "start") if [ "$USE_DHCP" = "yes" ]; then dhcp_start else staticip_start fi if [ "$?" == "0" ]; then # Setze den gateway: if [ ! "$GATEWAY" == "127.0.0.1" -a ! "$GATEWAY" == "" ]; then /sbin/route add default gw ${GATEWAY} metric 1 fi if [ "$SUCHE_PROXY" == "yes" ]; then /etc/rc.d/rc.proxy_suche $DEVICE if [ "$?" == "0" -a "$SETZE_ZEIT" == "yes" ]; then http_proxy=`cat /etc/HTTP-PROXY` export http_proxy /etc/rc.d/rc.systemzeit serversetsystem fi fi fi ;; "stop") /sbin/ifconfig $DEVICE down if [ "$USE_DHCP" = "yes" ]; then /sbin/dhcpcd -k $DEVICE 2>&1 > /dev/null fi ;; "restart") /etc/rc.d/rc.ethernet stop $DEVICE $SCHEME sleep 1 /etc/rc.d/rc.ethernet start $DEVICE $SCHEME ;; "status"|"check") /sbin/ifconfig $DEVICE ;; "suspend") /etc/rc.d/rc.ethernet stop $DEVICE $SCHEME ;; "resume") /etc/rc.d/rc.ethernet start $DEVICE $SCHEME ;; *) echo "Benutze /etc/rc.ethernet start|stop|restart|status device" ;; esac exit 0 else echo " $DEVICE existiert nicht " exit 1 fi # End of /etc/rc.d/rc.ethernet