From efd188cad960ac940e89f7109d70a8e3a7b27f0b Mon Sep 17 00:00:00 2001
From: Florian Pose <fp@igh-essen.com>
Date: Tue, 11 Apr 2006 09:08:10 +0000
Subject: [PATCH] Install script for realtime software

---
 rt/Makefile                             | 52 +++++++++++++++----------
 rt/install.sh                           | 49 +++++++++++++++++++++++
 rt/msr_load                             |  2 +-
 rt/{msr_module.c => msr_rt.c}           | 21 ++++------
 rt/msr_unload                           | 11 +-----
 rt/{ethercat.conf.tmpl => rt.conf.tmpl} | 11 ++++--
 6 files changed, 100 insertions(+), 46 deletions(-)
 create mode 100755 rt/install.sh
 rename rt/{msr_module.c => msr_rt.c} (93%)
 rename rt/{ethercat.conf.tmpl => rt.conf.tmpl} (53%)

diff --git a/rt/Makefile b/rt/Makefile
index 0728935b..35a0e689 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -12,22 +12,28 @@ ifneq ($(KERNELRELEASE),)
 #  Kbuild-Abschnitt
 #------------------------------------------------------------------------------
 
-obj-m := msr_modul.o
-
-msr_modul-objs := msr_module.o \
-		rt_lib/msr-core/msr_lists.o \
-		rt_lib/msr-core/msr_main.o \
-		rt_lib/msr-core/msr_charbuf.o \
-		rt_lib/msr-core/msr_reg.o \
-		rt_lib/msr-core/msr_interpreter.o \
-		rt_lib/msr-core/msr_messages.o \
-		rt_lib/msr-core/msr_proc.o \
-		rt_lib/msr-core/msr_error_reg.o \
-		rt_lib/msr-utils/msr_utils.o \
-		rt_lib/msr-utils/msr_time.o \
-		rt_lib/msr-math/msr_base64.o \
-		rt_lib/msr-math/msr_hex_bin.o \
-		libm.o
+ifneq ($(wildcard $(src)/rt.conf),)
+include $(src)/rt.conf
+else
+MODULENAME := rt
+endif
+
+obj-m := $(MODULENAME).o
+
+$(MODULENAME)-objs := msr_rt.o \
+			rt_lib/msr-core/msr_lists.o \
+			rt_lib/msr-core/msr_main.o \
+			rt_lib/msr-core/msr_charbuf.o \
+			rt_lib/msr-core/msr_reg.o \
+			rt_lib/msr-core/msr_interpreter.o \
+			rt_lib/msr-core/msr_messages.o \
+			rt_lib/msr-core/msr_proc.o \
+			rt_lib/msr-core/msr_error_reg.o \
+			rt_lib/msr-utils/msr_utils.o \
+			rt_lib/msr-utils/msr_time.o \
+			rt_lib/msr-math/msr_base64.o \
+			rt_lib/msr-math/msr_hex_bin.o \
+			libm.o
 
 EXTRA_CFLAGS := -I$(src)/rt_lib/msr-include -D_SIMULATION \
 		-I/usr/include -mhard-float \
@@ -41,18 +47,24 @@ else
 #  Default-Abschnitt
 #------------------------------------------------------------------------------
 
-ifneq ($(wildcard ethercat.conf),)
-include ethercat.conf
+ifneq ($(wildcard rt.conf),)
+include rt.conf
 else
-KERNELDIR = /usr/src/linux
+MODULENAME := msr_rt
+KERNEL := $(shell uname -r)
 endif
 
+KERNELDIR := /lib/modules/$(KERNEL)/build
+
 modules:
-	$(MAKE) -C $(KERNELDIR) M=`pwd` modules
+	$(MAKE) -C $(KERNELDIR) M=`pwd`
 
 clean:
 	$(MAKE) -C $(KERNELDIR) M=`pwd` clean
 
+install:
+	@./install.sh $(MODULENAME) $(KERNEL)
+
 #------------------------------------------------------------------------------
 
 endif
diff --git a/rt/install.sh b/rt/install.sh
new file mode 100755
index 00000000..29745dbc
--- /dev/null
+++ b/rt/install.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+#------------------------------------------------------------------------------
+#
+#  Realtime module install script
+#
+#  $Id: install.sh 5 2006-04-07 13:49:10Z fp $
+#
+#------------------------------------------------------------------------------
+
+# Fetch parameters
+
+if [ $# -ne 2 ]; then
+    echo "Usage: $0 <MODULENAME> <KERNEL>"
+    exit 1
+fi
+
+MODULENAME=$1
+KERNEL=$2
+
+MODULESDIR=/lib/modules/$KERNEL/kernel/drivers/rt
+
+echo "Realtime installer"
+echo "  target: $MODULENAME"
+echo "  kernel: $KERNEL"
+
+# Create target directory
+
+if [ ! -d $MODULESDIR ]; then
+    echo "  creating $MODULESDIR..."
+    mkdir $MODULESDIR || exit 1
+fi
+
+# Install files
+
+echo "  installing $MODULENAME..."
+if ! cp $MODULENAME.ko $MODULESDIR/$MODULENAME.ko; then exit 1; fi
+
+# Calculate dependencies
+
+echo "  building module dependencies..."
+depmod
+
+# Finish
+
+echo "done."
+exit 0
+
+#------------------------------------------------------------------------------
diff --git a/rt/msr_load b/rt/msr_load
index 01478131..26d14e9a 100755
--- a/rt/msr_load
+++ b/rt/msr_load
@@ -1,5 +1,5 @@
 #!/bin/sh 
-module="msr_modul"
+module="msr_rt"
 device="msr"
 mode="664"
 
diff --git a/rt/msr_module.c b/rt/msr_rt.c
similarity index 93%
rename from rt/msr_module.c
rename to rt/msr_rt.c
index 911ca7e2..16731804 100644
--- a/rt/msr_module.c
+++ b/rt/msr_rt.c
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- *  msr_module.c
+ *  m s r _ r t . c
  *
  *  Kernelmodul für 2.6 Kernel zur Meßdatenerfassung, Steuerung und Regelung.
  *
@@ -143,7 +143,7 @@ int __init init_rt_module(void)
 
     // Als allererstes die RT-Lib initialisieren
     if (msr_rtlib_init(1, MSR_ABTASTFREQUENZ, 10, &msr_globals_register) < 0) {
-        msr_print_warn("msr_modul: can't initialize rtlib!");
+        printk(KERN_ERR "Failed to initialize rtlib!\n");
         goto out_return;
     }
 
@@ -233,20 +233,15 @@ int __init init_rt_module(void)
 
 void __exit cleanup_rt_module(void)
 {
-    msr_print_info("msk_modul: unloading...");
+    printk(KERN_INFO "Cleanign up rt module...\n");
 
-    ipipe_tune_timer(1000000000UL / HZ, 0); //alten Timertakt wieder herstellen
+    ipipe_tune_timer(1000000000UL / HZ, 0); // Alten Timertakt wiederherstellen
     ipipe_unregister_domain(&this_domain);
 
-    if (master) {
-        printk(KERN_INFO "=== Stopping EtherCAT environment... ===\n");
-
-        printk(KERN_INFO "Deactivating master...\n");
-        ecrt_master_deactivate(master);
-        ecrt_release_master(master);
-
-        printk(KERN_INFO "=== EtherCAT environment stopped. ===\n");
-    }
+    printk(KERN_INFO "=== Stopping EtherCAT environment... ===\n");
+    ecrt_master_deactivate(master);
+    ecrt_release_master(master);
+    printk(KERN_INFO "=== EtherCAT environment stopped. ===\n");
 
     msr_rtlib_cleanup();
 }
diff --git a/rt/msr_unload b/rt/msr_unload
index 09f6e8bb..be7e9871 100755
--- a/rt/msr_unload
+++ b/rt/msr_unload
@@ -1,16 +1,9 @@
 #!/bin/sh
-module="msr_modul"
+module="msr_rt"
 device="msr"
 
 # invoke rmmod with all arguments we got
 /sbin/rmmod $module $* || exit 1
 
 # Remove stale nodes
-
-rm -f /dev/${device} /dev/${device}0 
-
-
-
-
-
-
+rm -f /dev/${device} /dev/${device}0
diff --git a/rt/ethercat.conf.tmpl b/rt/rt.conf.tmpl
similarity index 53%
rename from rt/ethercat.conf.tmpl
rename to rt/rt.conf.tmpl
index a95d6ed5..aa2a4ea7 100644
--- a/rt/ethercat.conf.tmpl
+++ b/rt/rt.conf.tmpl
@@ -1,13 +1,18 @@
 #------------------------------------------------------------------------------
 #
-#  EtherCAT Konfigurationsdatei Kernel 2.6
+#  Configuration file for msr realtime modules
 #
 #  $Id$
 #
-#  This file is a versioned template configuration. Copy it to "ethercat.conf"
+#  This file is a versioned template configuration. Copy it to "rt.conf"
 #  (which is ignored by Subversion) and adjust it to your needs.
 #
 #------------------------------------------------------------------------------
 
-KERNELDIR = /usr/src/linux
+# Module name (without extension)
+MODULENAME := ec_rt_sample
 
+# The kernel to compile the EtherCAT sources against
+KERNEL := `uname -r`
+
+#------------------------------------------------------------------------------
-- 
GitLab