# HG changeset patch # User Florian Pose # Date 1144406327 0 # Node ID b3ecbec2c4878fce087ca9b052a6bb5981007901 # Parent 8505cc1ad3ce167d5638f75d2b3d02e77790578a Better installer and startup scripts. diff -r 8505cc1ad3ce -r b3ecbec2c487 Makefile --- a/Makefile Fri Apr 07 08:29:19 2006 +0000 +++ b/Makefile Fri Apr 07 10:38:47 2006 +0000 @@ -1,8 +1,6 @@ #------------------------------------------------------------------------------ # -# Globales Makefile -# -# IgH EtherCAT-Treiber +# EtherCAT Makefile # # $Id$ # @@ -11,7 +9,7 @@ ifneq ($(KERNELRELEASE),) #------------------------------------------------------------------------------ -# Kbuild-Abschnitt +# kbuild section obj-m := master/ devices/ @@ -20,15 +18,17 @@ else #------------------------------------------------------------------------------ -# Default-Abschnitt +# default section ifneq ($(wildcard ethercat.conf),) include ethercat.conf else -KERNELDIR := /usr/src/linux -INSTALLDIR := /opt/ethercat +KERNEL := `uname -r` +DEVICEINDEX := 99 endif +KERNELDIR := /lib/modules/$(KERNEL)/build + modules: $(MAKE) -C $(KERNELDIR) M=`pwd` @@ -36,7 +36,7 @@ $(MAKE) -C $(KERNELDIR) M=`pwd` clean install: - @./install.sh $(INSTALLDIR) + @./install.sh $(KERNEL) $(DEVICEINDEX) #------------------------------------------------------------------------------ diff -r 8505cc1ad3ce -r b3ecbec2c487 ethercat.conf.tmpl --- a/ethercat.conf.tmpl Fri Apr 07 08:29:19 2006 +0000 +++ b/ethercat.conf.tmpl Fri Apr 07 10:38:47 2006 +0000 @@ -10,9 +10,9 @@ #------------------------------------------------------------------------------ # The kernel to compile the EtherCAT sources against -KERNELDIR = /usr/src/linux +KERNEL := `uname -r` -# Install directory used by "make install" -INSTALLDIR := /opt/ethercat +# PCI index of the EtherCAT device +DEVICEINDEX := 99 #------------------------------------------------------------------------------ diff -r 8505cc1ad3ce -r b3ecbec2c487 ethercat.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ethercat.sh Fri Apr 07 10:38:47 2006 +0000 @@ -0,0 +1,77 @@ +#!/bin/sh + +#------------------------------------------------------------------------------ +# +# EtherCAT rc script +# +# $Id$ +# +#------------------------------------------------------------------------------ + +CONFIGFILE=/etc/sysconfig/ethercat + +#------------------------------------------------------------------------------ + +print_usage() +{ + echo "Usage $0 { start | stop }" +} + +unload_module() +{ + if lsmod | grep ^$1 > /dev/null; then + echo " unloading module \"$1\"..." + rmmod $1 || exit 1 + fi +} + +#------------------------------------------------------------------------------ + +# Get parameters +if [ $# -eq 0 ]; then + print_usage + exit 1 +fi + +ACTION=$1 + +# Load configuration from sysconfig + +if [ -f $CONFIGFILE ]; then + . $CONFIGFILE +else + echo "ERROR: Configuration file \"$CONFIGFILE\" not found!" + exit 1 +fi + +case $ACTION in + start) + echo "Starting EtherCAT master..." + # remove modules + unload_module 8139too + unload_module 8139cp + unload_module ec_8139too + unload_module ec_master + echo " loading master modules..." + if ! modprobe ec_8139too ec_device_index=$DEVICEINDEX; then + echo "ERROR: Failed to load module!" + exit 1 + fi + ;; + stop) + echo "Stopping EtherCAT master..." + unload_module ec_8139too + unload_module ec_master + if ! modprobe 8139too; then + echo "Warning: Failed to restore 8139too module." + fi + ;; + *) + print_usage + exit 1 +esac + +echo "done." +exit 0 + +#------------------------------------------------------------------------------ diff -r 8505cc1ad3ce -r b3ecbec2c487 install.sh --- a/install.sh Fri Apr 07 08:29:19 2006 +0000 +++ b/install.sh Fri Apr 07 10:38:47 2006 +0000 @@ -8,11 +8,15 @@ # #------------------------------------------------------------------------------ +CONFIGFILE=/etc/sysconfig/ethercat + +#------------------------------------------------------------------------------ + # install function install() { - echo " installing $1" + echo " $1" if ! cp $1 $INSTALLDIR; then exit 1; fi } @@ -20,28 +24,48 @@ # Fetch parameter -if [ $# -eq 0 ]; then - echo "Usage: $0 " +if [ $# -ne 2 ]; then + echo "Usage: $0 " exit 1 fi -INSTALLDIR=$1 -echo "EtherCAT installer. Target: $INSTALLDIR" +KERNEL=$1 +DEVICEINDEX=$2 -# Create installation directory - -if [ ! -d $INSTALLDIR ]; then - echo " creating target directory." - if ! mkdir $INSTALLDIR; then exit 1; fi -fi +INSTALLDIR=/lib/modules/$KERNEL/kernel/drivers/net +echo "EtherCAT installer - Kernel: $KERNEL" # Copy files +echo " installing modules..." install master/ec_master.ko install devices/ec_8139too.ko -# Finished +# Update dependencies +echo " building module dependencies..." +depmod + +# Create configuration file + +if [ -f $CONFIGFILE ]; then + echo " notice: using existing configuration file." +else + echo " creating $CONFIGFILE..." + echo "DEVICEINDEX=$DEVICEINDEX" > $CONFIGFILE || exit 1 +fi + +# Install rc script + +echo " installing startup script..." +cp ethercat.sh /etc/init.d/ethercat || exit 1 +if [ ! -L /usr/sbin/rcethercat ]; then + ln -s /etc/init.d/ethercat /usr/sbin/rcethercat || exit 1 +fi + +# Finish + +echo "EtherCAT installer done." exit 0 #------------------------------------------------------------------------------