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