Hi,

Here is a patch that adds a System-V init script to the 
distribution. This script creates/deletes the devices in /dev 
and sets the latency through /proc/xenomai/latency.
Please re-run automake before committing (if committing).

Is there anything more it should do? For instance, is there a way 
to start the timer through one of the /proc/xenomai/* 
pseudo-files?

-- 
Romain LENGLET
--- xenomai/ChangeLog	2006-03-06 12:51:03.624869000 +0900
+++ xenomai-new/ChangeLog	2006-03-06 17:03:52.806802824 +0900
@@ -1,3 +1,9 @@
+2006-03-06  Romain Lenglet <[EMAIL PROTECTED]>
+
+	* scripts/etc/init.d/xenomai, scripts/etc/default/xenomai,
+	scripts/etc/README scripts/Makefile.am: Add a System-V-like init script
+	for creating devices and setting the scheduling latency at boot time.
+
 2006-03-05  Philippe Gerum  <[EMAIL PROTECTED]>
 
 	* ksrc/skins/vxworks/taskLib.c (taskPrioritySet): Return ERROR
--- xenomai/scripts/Makefile.am	2006-02-27 09:51:18.379979776 +0900
+++ xenomai-new/scripts/Makefile.am	2006-03-06 17:03:27.412663320 +0900
@@ -8,4 +8,5 @@
 
 EXTRA_DIST = bootstrap prepare-kernel.sh xeno-info \
 	Kconfig.frag Modules.frag defconfig.frag \
+	etc/init.d/xenomai etc/default/xenomai etc/README \
 	$(wildcard postinstall.sh)
diff -Naurd xenomai/scripts/etc/default/xenomai xenomai-new/scripts/etc/default/xenomai
--- xenomai/scripts/etc/default/xenomai	1970-01-01 09:00:00.000000000 +0900
+++ xenomai-new/scripts/etc/default/xenomai	2006-03-06 16:40:30.264021736 +0900
@@ -0,0 +1,6 @@
+# The group that owns the Xenomai devices in /dev/.
+GROUP=root
+# The access mode to the Xenomai devices in /dev/.
+MODE=0770
+# The real-time scheduling latency.
+LATENCY=0
diff -Naurd xenomai/scripts/etc/init.d/xenomai xenomai-new/scripts/etc/init.d/xenomai
--- xenomai/scripts/etc/init.d/xenomai	1970-01-01 09:00:00.000000000 +0900
+++ xenomai-new/scripts/etc/init.d/xenomai	2006-03-06 17:12:24.006088720 +0900
@@ -0,0 +1,98 @@
+#! /bin/sh
+#
+# xenomai	Xenomai Real-time framework for Linux.
+#		This script sets up devices in /dev if Udev is not running,
+#		and sets the real-time scheduling latency.
+#
+#		Written by Romain Lenglet <[EMAIL PROTECTED]>.
+#
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+NAME=xenomai
+DESC=Xenomai
+
+# Include xenomai defaults if available
+if [ -f /etc/default/xenomai ] ; then
+	. /etc/default/xenomai
+fi
+
+# Set default values in case /etc/default/xenomai does not exist or is not
+# correctly specified
+GROUP=${GROUP:=root}
+MODE=${MODE:=0770}
+LATENCY=${LATENCY:=0}
+
+set -e
+
+case "$1" in
+  start|reload|restart|force-reload)
+	echo -n "Starting $DESC: "
+
+	# Create devices if Udev is not running (otherwise, Udev should have
+	# been configured to create the devices itself).
+	UDEV_STARTED="N"
+	if [ -e /dev/.udev ]; then
+	    if mountpoint -q /dev/; then
+		UDEV_STARTED="Y"
+	    fi
+	fi
+	if [ "$UDEV_STARTED" = "N" ]; then
+	    for N in `seq 0 31`; do
+		F="/dev/rtp$n"
+		if [ ! -c "$F" ]; then
+		    /bin/mknod -m 666 "$F" c 150 "$N"
+		    /bin/chown ":$GROUP" "$F"
+		    /bin/chmod "$MODE" "$F"
+		fi
+	    done
+	    F=/dev/rtheap
+	    if [ ! -c "$F" ]; then
+		/bin/mknod -m 666 "$F" c 10 254
+		/bin/chown ":$GROUP" "$F"
+		/bin/chmod "$MODE" "$F"
+	    fi
+	    echo -n "devices, "
+	fi
+
+	# Set the scheduling latency.
+	if [ -w /proc/xenomai/latency ]; then
+	    echo "$LATENCY" > /proc/xenomai/latency
+	    echo -n "latency, "
+	fi
+
+	echo "done."
+	;;
+  stop)
+	echo -n "Stopping $DESC: "
+
+	# Delete devices if Udev is not running.
+	UDEV_STARTED="N"
+	if [ -e /dev/.udev ]; then
+	    if mountpoint -q /dev/; then
+		UDEV_STARTED="Y"
+	    fi
+	fi
+	if [ "$UDEV_STARTED" = "N" ]; then
+	    for N in `seq 0 31`; do
+		F="/dev/rtp$n"
+		if [ -c "$F" ]; then
+		    rm -f "$F"
+		fi
+	    done
+	    F=/dev/rtheap
+	    if [ -c "$F" ]; then
+		rm -f "$F"
+	    fi
+	    echo -n "devices, "
+	fi
+
+	echo "done."
+	;;
+  *)
+	N=/etc/init.d/$NAME
+	echo "Usage: $N {start|stop|reload|restart|force-reload}" >&2
+	exit 1
+	;;
+esac
+
+exit 0
diff -Naurd xenomai/scripts/etc/README xenomai-new/scripts/etc/README
--- xenomai/scripts/etc/README	1970-01-01 09:00:00.000000000 +0900
+++ xenomai-new/scripts/etc/README	2006-03-06 16:58:37.002812328 +0900
@@ -0,0 +1,22 @@
+This directory contains a System-V-style initialization script for Xenomai.
+That script creates the real-time devices in /dev/, and sets the scheduling
+latency through the /proc/xenomai/latency interface.
+
+To install this script, as root:
+> cp init.d/xenomai /etc/init.d/xenomai
+> chown root:root /etc/init.d/xenomai
+> chmod 0755 /etc/init.d/xenomai
+
+The configuration values are stored in the /etc/default/xenomai file.
+A skeleton is provided in this directory. To install it:
+> cp default/xenomai /etc/default/xenomai
+> chown root:root /etc/default/xenomai
+> chmod 0644 /etc/default/xenomai
+And adapt the values in /etc/default/xenomai.
+
+Then, make the initialization script start in the required runlevels.
+On Debian, you can use update-rc.d(8) or rcconf(8) to do so.
+Or you can also do it manually:
+> for L in 0 1 6; do (cd /etc/rc${L}.d ; ln -s ../init.d/xenomai K20xenomai) ; done
+> for L in 2 3 4 5; do (cd /etc/rc${L}.d ; ln -s ../init.d/xenomai S20xenomai) ; done
+
_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to