Better installer and startup scripts.
This commit is contained in:
parent
d738fd9f46
commit
2c5288fef4
16
Makefile
16
Makefile
|
|
@ -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)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
48
install.sh
48
install.sh
|
|
@ -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
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Reference in New Issue