Better installer and startup scripts.

This commit is contained in:
Florian Pose 2006-04-07 10:38:47 +00:00
parent d738fd9f46
commit 2c5288fef4
4 changed files with 124 additions and 23 deletions

View File

@ -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 @@ obj-m := master/ devices/
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 @@ clean:
$(MAKE) -C $(KERNELDIR) M=`pwd` clean
install:
@./install.sh $(INSTALLDIR)
@./install.sh $(KERNEL) $(DEVICEINDEX)
#------------------------------------------------------------------------------

View File

@ -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
#------------------------------------------------------------------------------

77
ethercat.sh Executable file
View File

@ -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
#------------------------------------------------------------------------------

View File

@ -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 @@ install()
# Fetch parameter
if [ $# -eq 0 ]; then
echo "Usage: $0 <INSTALLDIR>"
if [ $# -ne 2 ]; then
echo "Usage: $0 <KERNEL> <DEVICEINDEX>"
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
#------------------------------------------------------------------------------