[oe-commits] org.oe.dev initscripts/initscripts-1.0: add openprotium on storcenter specific scripts and bb file.

awilcox commit openembedded-commits at lists.openembedded.org
Thu Dec 7 19:46:51 UTC 2006


initscripts/initscripts-1.0: add openprotium on storcenter specific scripts and bb file.

Author: awilcox at openembedded.org
Branch: org.openembedded.dev
Revision: 7447c98ad7a1cff1d4e9e2a01c19ca645d7c50de
ViewMTN: http://monotone.openembedded.org/revision.psp?id=7447c98ad7a1cff1d4e9e2a01c19ca645d7c50de
Files:
1
packages/initscripts/initscripts-1.0/openprotium
packages/initscripts/initscripts-1.0/openprotium/devfs.sh
packages/initscripts/initscripts-1.0/openprotium/devices
packages/initscripts/initscripts-1.0/openprotium/devices.patch
packages/initscripts/initscripts-1.0/openprotium/domainname.sh
packages/initscripts/initscripts-1.0/openprotium/flashclean
packages/initscripts/initscripts-1.0/openprotium/halt
packages/initscripts/initscripts-1.0/openprotium/reboot
packages/initscripts/initscripts-openprotium_1.0.bb
mtn:execute
true
Diffs:

#
# mt diff -ra1d187a68d0d5b5271cf304de0ee3e2cf9528118 -r7447c98ad7a1cff1d4e9e2a01c19ca645d7c50de
#
# 
# 
# add_dir "packages/initscripts/initscripts-1.0/openprotium"
# 
# add_file "packages/initscripts/initscripts-1.0/openprotium/devfs.sh"
#  content [5f6c097ef9a9577a537a90d080caaedd61855c51]
# 
# add_file "packages/initscripts/initscripts-1.0/openprotium/devices"
#  content [5681d08775848c9585208c355ec712893a6cc6b5]
# 
# add_file "packages/initscripts/initscripts-1.0/openprotium/devices.patch"
#  content [443b1fbf7919c57f27b7684e94ac646b96387e00]
# 
# add_file "packages/initscripts/initscripts-1.0/openprotium/domainname.sh"
#  content [0c1f0bd54a7534aecc9e5c5bf5a44055fb023ca1]
# 
# add_file "packages/initscripts/initscripts-1.0/openprotium/flashclean"
#  content [f090628a3280234971625b78093ae06afc785289]
# 
# add_file "packages/initscripts/initscripts-1.0/openprotium/halt"
#  content [de29e327cda5c736c91c296bd21402dabc2c3e52]
# 
# add_file "packages/initscripts/initscripts-1.0/openprotium/reboot"
#  content [70e523eccd0fe6722d0b94b877984c9258284d8b]
# 
# add_file "packages/initscripts/initscripts-openprotium_1.0.bb"
#  content [eb4f99eea9dbaac7b2fb8c3edf9f48fed2c8e6c9]
# 
#   set "packages/initscripts/initscripts-1.0/openprotium/devices"
#  attr "mtn:execute"
# value "true"
# 
#   set "packages/initscripts/initscripts-1.0/openprotium/flashclean"
#  attr "mtn:execute"
# value "true"
# 
#   set "packages/initscripts/initscripts-1.0/openprotium/halt"
#  attr "mtn:execute"
# value "true"
# 
#   set "packages/initscripts/initscripts-1.0/openprotium/reboot"
#  attr "mtn:execute"
# value "true"
# 
============================================================
--- packages/initscripts/initscripts-1.0/openprotium/devfs.sh	5f6c097ef9a9577a537a90d080caaedd61855c51
+++ packages/initscripts/initscripts-1.0/openprotium/devfs.sh	5f6c097ef9a9577a537a90d080caaedd61855c51
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+mount -t devfs none /dev
+
+
============================================================
--- packages/initscripts/initscripts-1.0/openprotium/devices	5681d08775848c9585208c355ec712893a6cc6b5
+++ packages/initscripts/initscripts-1.0/openprotium/devices	5681d08775848c9585208c355ec712893a6cc6b5
@@ -0,0 +1,70 @@
+#!/bin/sh
+#
+# Devfs handling script.  Since we arent running devfsd due to various reasons
+# which I will not lay out here, we need to create some links for compatibility.
+
+. /etc/default/rcS
+
+# exit without doing anything if udev is active
+if test -e /dev/.udev -o -e /dev/.udevdb; then
+	exit 0
+fi
+
+if test -e /dev/.devfsd
+then
+	if test "$VERBOSE" != "no"; then echo -n "Setting up device links for devfs: "; fi
+	[ -e /dev/.linksmade ] && exit 0
+
+	ln -s /dev/tts/0 /dev/ttySA0
+	ln -s /dev/tts/1 /dev/ttySA1
+
+	ln -s /dev/sound/dsp /dev/dsp
+	ln -s /dev/sound/mixer /dev/mixer
+
+	ln -s /dev/misc/rtc /dev/rtc
+
+	#
+	# some friendly disk links
+	#
+	ln -s /dev/discs/disc0/disc /dev/hda
+	ln -s /dev/discs/disc1/disc /dev/hdb
+	for i in 1 2 3 4; do
+		ln -s /dev/discs/disc0/part$i /dev/hda$i
+		ln -s /dev/discs/disc1/part$i /dev/hdb$i
+	done
+
+	## need this so that ppp will autoload the ppp modules
+	mknod /dev/ppp c 108 0
+	ln -s /dev/zero /dev/.linksmade
+
+	if test "$VERBOSE" != "no"; then echo "done"; fi
+else
+	if test "$VERBOSE" != "no"; then echo -n "Mounting /dev ramdisk: "; fi
+	mount -t ramfs ramfs /dev || mount -t tmpfs ramfs /dev
+	if test $? -ne 0; then
+		if test "$VERBOSE" != "no"; then echo "failed"; fi
+	else
+		if test "$VERBOSE" != "no"; then echo "done"; fi
+	fi
+	if test "$VERBOSE" != "no"; then echo -n "Populating /dev: "; fi
+	cd /
+	mkdir -p dev/input
+	mkdir -p dev/msys
+	mkdir -p dev/pts
+	mkdir -p dev/vc
+	mkdir -p dev/snd
+	mkdir -p dev/tts
+	for i in 0 1 2 3 4 5 6 7 8 9; do
+		ln -s /dev/tty$i /dev/vc/$i
+	done
+	ln -sf /proc/self/fd /dev/fd
+	ln -sf /proc/kcore /dev/core
+	/sbin/makedevs -r / -D /etc/device_table
+	if test $? -ne 0; then
+		if test "$VERBOSE" != "no"; then echo "failed"; fi
+	else
+		if test "$VERBOSE" != "no"; then echo "done"; fi
+	fi
+fi
+
+exit 0
============================================================
--- packages/initscripts/initscripts-1.0/openprotium/devices.patch	443b1fbf7919c57f27b7684e94ac646b96387e00
+++ packages/initscripts/initscripts-1.0/openprotium/devices.patch	443b1fbf7919c57f27b7684e94ac646b96387e00
@@ -0,0 +1,52 @@
+#
+# Patch to allow /dev to reside permanently in the file
+# system.
+#
+--- old/devices	2005-05-28 21:51:39.012078699 -0700
++++ new/devices	2005-06-12 00:16:29.222686303 -0700
+@@ -6,7 +6,7 @@
+ . /etc/default/rcS
+ 
+ # exit without doing anything if udev is active
+-if test -e /dev/.udev -o -e /dev/.udevdb; then
++if test -e /dev/.udev -o -e /dev/.udevdb -o -e /dev/.permanent; then
+ 	exit 0
+ fi
+ 
+@@ -37,12 +37,20 @@
+ 	mknod /dev/ppp c 108 0
+ 	if test "$VERBOSE" != "no"; then echo "done"; fi
+ else
+-	if test "$VERBOSE" != "no"; then echo -n "Mounting /dev ramdisk: "; fi
+-	mount -t ramfs ramfs /dev || mount -t tmpfs ramfs /dev
+-	if test $? -ne 0; then
+-		if test "$VERBOSE" != "no"; then echo "failed"; fi
++	if test -e /dev/.noram
++	then
++		# There should be no files, any files will damage the
++		# makedevs script below.
++		rm $(find /dev -type f -print)
++		:>/dev/.noram
+ 	else
+-		if test "$VERBOSE" != "no"; then echo "done"; fi
++		if test "$VERBOSE" != "no"; then echo -n "Mounting /dev ramdisk: "; fi
++		mount -t ramfs ramfs /dev || mount -t tmpfs ramfs /dev
++		if test $? -ne 0; then
++			if test "$VERBOSE" != "no"; then echo "failed"; fi
++		else
++			if test "$VERBOSE" != "no"; then echo "done"; fi
++		fi
+ 	fi
+ 	if test "$VERBOSE" != "no"; then echo -n "Populating /dev: "; fi
+ 	cd /
+@@ -60,6 +68,10 @@
+ 		if test "$VERBOSE" != "no"; then echo "failed"; fi
+ 	else
+ 		if test "$VERBOSE" != "no"; then echo "done"; fi
++		if test -e /dev/.noram
++		then
++			:>/dev/.permanent
++		fi
+ 	fi
+ fi
+ 
============================================================
--- packages/initscripts/initscripts-1.0/openprotium/domainname.sh	0c1f0bd54a7534aecc9e5c5bf5a44055fb023ca1
+++ packages/initscripts/initscripts-1.0/openprotium/domainname.sh	0c1f0bd54a7534aecc9e5c5bf5a44055fb023ca1
@@ -0,0 +1,5 @@
+#
+# domainname.sh	Set the domainname.
+#
+test -r /etc/defaultdomain &&
+	cat /etc/defaultdomain >/proc/sys/kernel/domainname
============================================================
--- packages/initscripts/initscripts-1.0/openprotium/flashclean	f090628a3280234971625b78093ae06afc785289
+++ packages/initscripts/initscripts-1.0/openprotium/flashclean	f090628a3280234971625b78093ae06afc785289
@@ -0,0 +1,60 @@
+#! /bin/sh 
+#
+# This is an init script for openprotium for storcenter
+# 
+# This script cleansup after a successful uboot based reflash.
+# A uboot reflash is done by changing the bootloader boot command 
+# to tftp a flash image and flash the firmware. However the boot command
+# is never reset back to a regular boot. This way if the flash did
+# not work the next power cycle will cause another reflash. A nice
+# development recovery feature. So this boot script is the mechanism
+# to reset the uboot boot command. Once booted and access it validated
+# this script will issue command to reset the boot command.
+#
+# This command only has a start so stop is not necessary and should
+# as late in the boot process as possible to ensure a successful reboot
+# 
+# Copy it to /etc/init.d/flashclean and type
+#	update-rc.d flashclean start 99 5
+#
+BOOTCMD="bootm FF800000"
+
+dmesg | grep StorCenter >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+	exit 0
+fi
+
+printenv=/sbin/fw_printenv
+setenv=/sbin/fw_setenv 
+test -x "$printenv" -a -x "$setenv" || exit 0
+
+case "$1" in
+  start)
+	# Check to see if any work needs to be done
+	# Need to quote the right hand side, hence the ugly awk.
+	eval `$printenv bootcmd | awk -F= '{printf("%s=\"%s\"", $1, $2)}'`
+	if [ "$bootcmd" = "$BOOTCMD" ]; then
+		exit 0
+	fi
+
+	echo -n "Restoring u-Boot bootcmd"
+	$setenv bootcmd $BOOTCMD > /dev/null 2>&1
+	eval `$printenv bootcmd | awk -F= '{printf("%s=\"%s\"", $1, $2)}'`
+	if [ "$bootcmd" != "$BOOTCMD" ]; then 
+		echo " FAILED."
+        	exit 1
+	fi
+    	echo "."
+    ;;
+  stop)
+    ;;
+  reload|force-reload)
+    ;;
+  restart)
+    ;;
+  *)
+    echo "Usage: /etc/init.d/flashclean {start|stop|reload|restart|force-reload}"
+    exit 1
+esac
+
+exit 0
============================================================
--- packages/initscripts/initscripts-1.0/openprotium/halt	de29e327cda5c736c91c296bd21402dabc2c3e52
+++ packages/initscripts/initscripts-1.0/openprotium/halt	de29e327cda5c736c91c296bd21402dabc2c3e52
@@ -0,0 +1,27 @@
+#! /bin/sh
+#
+# halt		Execute the halt command.
+#
+# Version:      @(#)halt  2.84-2  07-Jan-2002  miquels at cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+# See if we need to cut the power.
+if test -x /etc/init.d/ups-monitor
+then
+	/etc/init.d/ups-monitor poweroff
+fi
+
+# Don't shut down drives if we're using RAID.
+hddown="-h"
+if grep -qs '^md.*active' /proc/mdstat
+then
+	hddown=""
+fi
+
+echo "Powering down..."
+scc -p off
+halt -d -f -i -p $hddown
+
+: exit 0
============================================================
--- packages/initscripts/initscripts-1.0/openprotium/reboot	70e523eccd0fe6722d0b94b877984c9258284d8b
+++ packages/initscripts/initscripts-1.0/openprotium/reboot	70e523eccd0fe6722d0b94b877984c9258284d8b
@@ -0,0 +1,12 @@
+#! /bin/sh
+#
+# reboot	Execute the reboot command.
+#
+# Version:      @(#)reboot  2.75  22-Jun-1998  miquels at cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+echo -n "Rebooting... "
+scc -p restart
+reboot -d -f -i
============================================================
--- packages/initscripts/initscripts-openprotium_1.0.bb	eb4f99eea9dbaac7b2fb8c3edf9f48fed2c8e6c9
+++ packages/initscripts/initscripts-openprotium_1.0.bb	eb4f99eea9dbaac7b2fb8c3edf9f48fed2c8e6c9
@@ -0,0 +1,178 @@
+#
+# OpenProtium stuff sorta specific for the storcenter.
+#
+# This is, in effect, an extended patch to fix various
+# problems in the initscripts on SlugOS.  The problems
+# mostly come down to the order the scripts are executed
+# in.
+include initscripts_${PV}.bb
+
+RCONFLICTS = "initscripts"
+# All other standard definitions inherited from initscripts
+# Except the PR which is hacked here.  The format used is
+# a suffix
+PR := "${PR}.11"
+
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/${P}', '${FILE_DIRNAME}/initscripts-${PV}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
+
+PACKAGES = "${PN}"
+
+SRC_URI += "file://openprotium/devfs.sh"
+SRC_URI += "file://openprotium/domainname.sh"
+SRC_URI += "file://openprotium/devices"
+SRC_URI += "file://openprotium/halt"
+SRC_URI += "file://openprotium/reboot"
+SRC_URI += "file://openprotium/flashclean"
+SRC_URI += "file://openprotium/devices.patch;patch=1"
+
+# Without this it is not possible to patch checkroot.sh
+S = "${WORKDIR}"
+
+do_install_append() {
+	# the image build command now installs this for slugos
+	# except that mine doesn't.   we don't need it, but we turnup
+	# expects it to at least exist
+	rm	${D}${sysconfdir}/device_table
+	touch 	${D}${sysconfdir}/device_table
+
+	# openprotium specific scripts
+	# install -m 0755 ${WORKDIR}/alignment.sh ${D}${sysconfdir}/init.d
+	install -m 0755 ${WORKDIR}/openprotium/domainname.sh ${D}${sysconfdir}/init.d
+	install -m 0755 ${WORKDIR}/openprotium/devfs.sh ${D}${sysconfdir}/init.d
+	install -m 0755 ${WORKDIR}/openprotium/halt     ${D}${sysconfdir}/init.d
+	install -m 0755 ${WORKDIR}/openprotium/reboot   ${D}${sysconfdir}/init.d
+	install -m 0755 ${WORKDIR}/openprotium/devices  ${D}${sysconfdir}/init.d
+	install -m 0755 ${WORKDIR}/openprotium/flashclean  ${D}${sysconfdir}/init.d
+
+	# Remove the do install links (this detects a change to the
+	# initscripts .bb file - it will cause a build failure here.)
+	# This is a copy of the ln -sf lines from the initscripts
+	# do_install.
+	rm	${D}${sysconfdir}/rc2.d/S99rmnologin
+	rm	${D}${sysconfdir}/rc3.d/S99rmnologin
+	rm	${D}${sysconfdir}/rc4.d/S99rmnologin
+	rm	${D}${sysconfdir}/rc5.d/S99rmnologin
+	rm	${D}${sysconfdir}/rc6.d/S20sendsigs
+#	rm	${D}${sysconfdir}/rc6.d/S30urandom
+	rm	${D}${sysconfdir}/rc6.d/S31umountnfs.sh
+	rm	${D}${sysconfdir}/rc6.d/S40umountfs
+	rm      ${D}${sysconfdir}/rcS.d/S30ramdisk 
+	rm	${D}${sysconfdir}/rc6.d/S90reboot
+	rm	${D}${sysconfdir}/rc0.d/S20sendsigs
+#	rm	${D}${sysconfdir}/rc0.d/S30urandom
+	rm	${D}${sysconfdir}/rc0.d/S31umountnfs.sh
+	rm	${D}${sysconfdir}/rc0.d/S40umountfs
+	rm	${D}${sysconfdir}/rc0.d/S90halt
+	rm	${D}${sysconfdir}/rcS.d/S02banner
+	rm	${D}${sysconfdir}/rcS.d/S10checkroot.sh
+#	rm	${D}${sysconfdir}/rcS.d/S30checkfs.sh
+	rm	${D}${sysconfdir}/rcS.d/S35mountall.sh
+	rm	${D}${sysconfdir}/rcS.d/S39hostname.sh
+	rm	${D}${sysconfdir}/rcS.d/S45mountnfs.sh
+	rm	${D}${sysconfdir}/rcS.d/S55bootmisc.sh
+#	rm	${D}${sysconfdir}/rcS.d/S55urandom
+	rm	${D}${sysconfdir}/rcS.d/S99finish
+	rm	${D}${sysconfdir}/rcS.d/S05devices
+	# udev will run at S04 if installed
+	rm	${D}${sysconfdir}/rcS.d/S03sysfs
+	rm	${D}${sysconfdir}/rcS.d/S38devpts.sh
+	rm -f	${D}${sysconfdir}/rcS.d/S06alignment
+	rm 	${D}${sysconfdir}/rcS.d/S37populate-volatile.sh
+	rm 	${D}${sysconfdir}/rc0.d/S25save-rtc.sh
+	rm      ${D}${sysconfdir}/rc6.d/S25save-rtc.sh
+
+
+
+	# Check the result
+	find ${D}${sysconfdir}/rc?.d ! -type d -print | {
+		status=0
+		while read d
+		do
+			oenote "initscripts-openprotium: unexpected link $d"
+			status=1
+		done
+		test $status -eq 0 ||
+			oefatal "initscripts-openprotium: new links break do_install"
+	}
+
+	# Set the run-level links
+	#
+	# Startup (S) links - UNCHANGED
+	#
+	# Keep these in order of startup - S, then 1, 2-5, 0,6
+	# according to the level in which the script starts (or stops) first.
+	update-rc.d -r ${D} banner		start  2 S .
+	update-rc.d -r ${D} sysfs.sh		start  3 S .
+	# udev runs at S 04 .
+	update-rc.d -r ${D} devices		start  5 S .
+	# update-rc.d -r ${D} alignment.sh	start  7 S .
+	# busybox hwclock.sh (slugos-init) starts here (08)
+	# slugos-init umountinitrd runs here (09)
+
+	update-rc.d -r ${D} checkroot.sh	start 10 S .
+	# slugos buffer syslog starts here (11)
+	# sysconfsetup runs at S 12
+	# modutils.sh runs at S 20
+	# checkfs.sh is currently disabled from S 30 (and won't work on SlugOS)
+	# ramdisk is not used on SlugOS, would run at S 30
+	update-rc.d -r ${D} mountall.sh		start 35 S .
+	# base-files populate-volatile.sh runs at S37
+	update-rc.d -r ${D} devpts.sh		start 38 S .
+	# slugos file syslog starts here (39)
+	update-rc.d -r ${D} populate-volatile.sh	start 37 S .
+
+	# set hostname and domainname before the network script works (by
+	# entering them at level 40), networking may reset them.
+	update-rc.d -r ${D} domainname.sh	start 40 S .
+	update-rc.d -r ${D} hostname.sh		start 40 S .
+	# network runs at S 40
+	# slugos network syslog starts here (44)
+	update-rc.d -r ${D} mountnfs.sh		start 45 S .
+
+	update-rc.d -r ${D} bootmisc.sh		start 55 S .
+	# urandom is currently disabled from S 55 (and won't work with tmpfs /var)
+
+	# ipkg-cl configure runs at S 98
+	update-rc.d -r ${D} finish		start 99 S . 
+
+	#
+	# User (2-5) links - UNCHANGED
+	# rmnologin is the only thing added to user levels
+	update-rc.d -r ${D} rmnologin		start 99 2 3 4 5 .
+	update-rc.d -r ${D} flashclean		start 99 5 .
+
+	# 
+	# Shutdown (0,6) links - !!!CHANGED!!!
+	#
+	# The problem here is that netbase installs K40networking but portmap
+	# installs S32portmap.  One of these has to change!  The safe change
+	# is to make the networking stop at S40, so all network related shutdown
+	# must be in a K script or <S40.
+	#
+	# S20sendsigs is a disaster.  It needs to happen before the umounts
+	# but after the portmapper (which it would otherwise kill).
+	#
+	# urandom would stop at (S)30
+
+	# This is the special, correct, slugos umountnfs.sh (it looks in
+	# the /proc/mounts information, not /etc/fstab)
+	update-rc.d -r ${D} umountnfs.sh	start 31 0 6 .
+	update-rc.d -r ${D} save-rtc.sh		start 25 0 6 .
+	# portmap stops at 32
+	# slugos network syslog stops here (39)
+	# networking stops at 40 (nothing else does, believe me.)
+
+	# busybox hwclock.sh (slugos-init) stops here (45)
+	# slugos file syslog stops here (47)
+	# slugos buffer syslog stops here (49)
+	# udev stops here (55)
+	# Remove any errant processes
+	update-rc.d -r ${D} sendsigs		start 60 0 6 .
+
+	# This is the special, correct, slugos umountfs, it will umount
+	%s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list