summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/images/openturbostation-image.bb135
-rw-r--r--packages/initscripts/initscripts-1.0/openturbostation/.mtn2git_empty0
-rwxr-xr-xpackages/initscripts/initscripts-1.0/openturbostation/checkroot.sh212
-rwxr-xr-xpackages/initscripts/initscripts-1.0/openturbostation/devices70
-rw-r--r--packages/initscripts/initscripts-1.0/openturbostation/domainname.sh5
-rwxr-xr-xpackages/initscripts/initscripts-1.0/openturbostation/halt27
-rwxr-xr-xpackages/initscripts/initscripts-1.0/openturbostation/reboot12
-rw-r--r--packages/initscripts/initscripts-openturbostation_1.0.bb175
-rw-r--r--packages/meta/openturbostation-packages.bb195
-rw-r--r--packages/openturbostation-init/.mtn2git_empty0
-rw-r--r--packages/openturbostation-init/files/.mtn2git_empty0
-rw-r--r--packages/openturbostation-init/files/boot/.mtn2git_empty0
-rw-r--r--packages/openturbostation-init/files/conffiles55
-rw-r--r--packages/openturbostation-init/files/functions413
-rw-r--r--packages/openturbostation-init/files/initscripts/.mtn2git_empty0
-rw-r--r--packages/openturbostation-init/files/links.conf6
-rw-r--r--packages/openturbostation-init/files/modulefunctions39
-rw-r--r--packages/openturbostation-init/files/reflash163
-rw-r--r--packages/openturbostation-init/files/sysconf793
-rw-r--r--packages/openturbostation-init/files/turnup861
-rw-r--r--packages/openturbostation-init/openprotium-init_0.10.bb148
21 files changed, 3309 insertions, 0 deletions
diff --git a/packages/images/openturbostation-image.bb b/packages/images/openturbostation-image.bb
new file mode 100644
index 0000000000..31f39c9f95
--- /dev/null
+++ b/packages/images/openturbostation-image.bb
@@ -0,0 +1,135 @@
+DESCRIPTION = "Turbostation image"
+HOMEPAGE = "http://www.kynisk.com/opents"
+LICENSE = "MIT"
+PR = "r0"
+
+DEPENDS = "${MACHINE_TASK_PROVIDER}"
+EXTRA_IMAGECMD_jffs2 = "--big-endian --eraseblock=${ERASEBLOCK_SIZE} -D ${SLUGOS_DEVICE_TABLE}"
+IMAGE_LINGUAS = ""
+
+# Setting USE_DEVFS prevents *any* entries being created initially
+# in /dev
+#USE_DEVFS = "1"
+
+# This is passed to the image command to build the correct /dev
+# directory (because only the image program can make actual
+# dev entries!)
+SLUGOS_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-slugos.txt')}"
+
+# IMAGE_PREPROCESS_COMMAND is run before making the image.
+# We use this to do a few things:
+# . remove the uImage, which is in a separate part of the flash already.
+# . adjust the default run level (sysvinit is 5 by default, we like 3)
+# . set a default root password, which is no more secure than a blank one
+# (since it is documented, in case you were wondering)
+# . make the boot more verbose
+#
+IMAGE_PREPROCESS_COMMAND += "rm ${IMAGE_ROOTFS}/boot/uImage-*;"
+IMAGE_PREPROCESS_COMMAND += "sed -i -es,^id:5:initdefault:,id:3:initdefault:, ${IMAGE_ROOTFS}/etc/inittab;"
+IMAGE_PREPROCESS_COMMAND += "sed -i -es,^root::0,root:BTMzOOAQfESg6:0, ${IMAGE_ROOTFS}/etc/passwd;"
+IMAGE_PREPROCESS_COMMAND += "sed -i -es,^VERBOSE=no,VERBOSE=very, ${IMAGE_ROOTFS}/etc/default/rcS;"
+
+# Always just make a new flash image.
+PACK_IMAGE = 'storcenter_pack_image;'
+IMAGE_POSTPROCESS_COMMAND += "${PACK_IMAGE}"
+PACK_IMAGE_DEPENDS = ""
+#EXTRA_IMAGEDEPENDS += "${PACK_IMAGE_DEPENDS}"
+
+# This hack removes '${MACHINE}' from the end of the arch.conf for ipk,
+# preventing _mach.ipk (with no byte sex) taking precedence over everything
+# else.
+# but we want 'storcenter' in there so kernel modules work correctly.
+#
+#ROOTFS_POSTPROCESS_COMMAND += "sed -i '$d' '${IMAGE_ROOTFS}/etc/ipkg/arch.conf';"
+
+# These depends define native utilities - they do not get put in the flash and
+# are not required to build the image.
+IMAGE_TOOLS = ""
+#EXTRA_IMAGEDEPENDS += "${IMAGE_TOOLS}"
+
+# CONFIG:
+# SLUGOS_EXTRA_RDEPENDS: set in conf, things to add to the image
+# SLUGOS_SUPPORT: set to here, see below, added to the image.
+# SLUGOS_KERNEL: set here, kernel modules added to the image
+#
+# Do not override the last two unless you really know what you
+# are doing - there is more information below.
+
+# diff, cpio and find are required for reflash and turnup ram.
+# Removing these probably leaves the system bootable, but standard
+# openslug and ucslugc stuff won't work, so only take these out in
+# very non-standard turnkey slugos builds.
+#
+# udev is the default way of handling devices, there is no guarantee
+# that the static device table is completely correct (it is just
+# known to be sufficient for boot.)
+# we'ere still on 2.6.12 devfs....
+#OPENPROTIUM_SUPPORT ?= "diffutils cpio findutils udev"
+#
+TURBOSTATION_SUPPORT ?= "diffutils cpio findutils uboot-utils udev"
+
+# kernel-module-af-packet must be in the image for DHCP to work
+# kernel-module-netconsole is here because it is small and is
+# highly useful on minimal systems (which really don't have anywhere
+# other than the network to output error messages!)
+
+# this gets /lib/modules made....
+
+TURBOSTATION_KERNEL = ""
+
+RDEPENDS = " \
+ kernel base-files base-passwd netbase \
+ busybox initscripts-openturbostation openturbostation-init \
+ update-modules sysvinit tinylogin \
+ module-init-tools modutils-initscripts \
+ ipkg-collateral ipkg ipkg-link \
+ libgcc1 \
+ portmap \
+ dropbear \
+ e2fsprogs-blkid \
+ mdadm \
+ hdparm \
+ mtd-utils \
+ sccd \
+ util-linux-mount \
+ util-linux-umount \
+ util-linux-swaponoff \
+ util-linux-losetup \
+ udev \
+ ${OPENTURBOSTATION_SUPPORT} \
+ ${OPENTURBOSTATION_KERNEL} "
+
+PACKAGE_INSTALL = "${RDEPENDS}"
+
+inherit image
+
+turbostation_pack_image() {
+ # find latest kernel
+ KERNEL=`ls -tr ${DEPLOY_DIR_IMAGE}/uImage* | tail -1`
+ if [ -z "$KERNEL" ]; then
+ oefatal "No kernel found in ${DEPLOY_DIR_IMAGE}. Bitbake linux-turbostation to create one."
+ exit 1
+ fi
+ ROOTFS=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2
+ OUTPUT=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.flash.img
+ PADFILE=${DEPLOY_DIR_IMAGE}/padfile.zzz
+ HEX_MAX_KERN_SIZE=200000
+ DEC_MAX_KERN_SIZE=`echo "ibase=16; $HEX_MAX_KERN_SIZE" | bc `
+ HEX_MAX_ROOT_SIZE=C80000
+ DEC_MAX_ROOT_SIZE=`echo "ibase=16; $HEX_MAX_ROOT_SIZE" | bc `
+ KERNEL_SIZE=`ls -l $KERNEL | awk '{print $5}'`
+ if [ $KERNEL_SIZE -gt $DEC_MAX_KERN_SIZE ]; then
+ oefatal "Kernel too large at $KERNEL_SIZE bytes. Max is $DEC_MAX_KERN_SIZE."
+ exit 1
+ fi
+ ROOT_SIZE=`ls -l $ROOTFS | awk '{print $5}'`
+ if [ $ROOT_SIZE -gt $DEC_MAX_ROOT_SIZE ]; then
+ oefatal "Rootfs is too large at $ROOT_SIZE bytes. Max is $DEC_MAX_ROOT_SIZE."
+ exit 1
+ fi
+ PAD_SIZE=`echo "$DEC_MAX_KERN_SIZE - $KERNEL_SIZE" | bc `
+ dd if=/dev/zero of=$PADFILE bs=$PAD_SIZE count=1 2>>/dev/null
+ cat $KERNEL $PADFILE $ROOTFS > $OUTPUT
+ rm -f $PADFILE
+ ls -l $OUTPUT
+}
diff --git a/packages/initscripts/initscripts-1.0/openturbostation/.mtn2git_empty b/packages/initscripts/initscripts-1.0/openturbostation/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/initscripts/initscripts-1.0/openturbostation/.mtn2git_empty
diff --git a/packages/initscripts/initscripts-1.0/openturbostation/checkroot.sh b/packages/initscripts/initscripts-1.0/openturbostation/checkroot.sh
new file mode 100755
index 0000000000..c69a773482
--- /dev/null
+++ b/packages/initscripts/initscripts-1.0/openturbostation/checkroot.sh
@@ -0,0 +1,212 @@
+#
+# checkroot.sh Check to root filesystem.
+#
+# Version: @(#)checkroot.sh 2.84 25-Jan-2002 miquels@cistron.nl
+#
+
+. /etc/default/rcS
+
+#
+# Set SULOGIN in /etc/default/rcS to yes if you want a sulogin to be spawned
+# from this script *before anything else* with a timeout, like SCO does.
+#
+test "$SULOGIN" = yes && sulogin -t 30 $CONSOLE
+
+#
+# Ensure that bdflush (update) is running before any major I/O is
+# performed (the following fsck is a good example of such activity :).
+#
+test -x /sbin/update && update
+
+#
+# Read /etc/fstab.
+#
+exec 9>&0 </etc/fstab
+rootmode=rw
+rootopts=rw
+test "$ENABLE_ROOTFS_FSCK" = yes && rootcheck="yes" || rootcheck="no"
+swap_on_md=no
+devfs=
+while read fs mnt type opts dump pass junk
+do
+ case "$fs" in
+ ""|\#*)
+ continue;
+ ;;
+ /dev/md*)
+ # Swap on md device.
+ test "$type" = swap && swap_on_md=yes
+ ;;
+ /dev/*)
+ ;;
+ *)
+ # Might be a swapfile.
+ test "$type" = swap && swap_on_md=yes
+ ;;
+ esac
+
+ test "$type" = devfs && devfs="$fs"
+
+ # Currently we do not care about the other entries
+ if test "$mnt" = "/"
+ then
+ #echo "[$fs] [$mnt] [$type] [$opts] [$dump] [$pass] [$junk]"
+
+ rootopts="$opts"
+ roottype="$type"
+
+ #The "spinner" is broken on busybox sh
+ TERM=dumb
+
+ test "$pass" = 0 -o "$pass" = "" && rootcheck=no
+
+ # Enable fsck for ext2 and ext3 rootfs, disable for everything else
+ case "$type" in
+ ext2|ext3) rootcheck=yes;;
+ *) rootcheck=no;;
+ esac
+
+ if test "$rootcheck" = yes
+ then
+ if ! test -x "/sbin/fsck.${roottype}"
+ then
+ echo -e "\n * * * WARNING: /sbin/fsck.${roottype} is missing! * * *\n"
+ rootcheck=no
+ fi
+ fi
+
+ case "$opts" in
+ ro|ro,*|*,ro|*,ro,*)
+ rootmode=ro
+ ;;
+ esac
+ fi
+done
+exec 0>&9 9>&-
+
+#
+# Activate the swap device(s) in /etc/fstab. This needs to be done
+# before fsck, since fsck can be quite memory-hungry.
+#
+doswap=no
+test -d /proc/1 || mount -n /proc
+case "`uname -r`" in
+ 2.[0123].*)
+ if test $swap_on_md = yes && grep -qs resync /proc/mdstat
+ then
+ test "$VERBOSE" != no && echo "Not activating swap - RAID array resyncing"
+ else
+ doswap=yes
+ fi
+ ;;
+ *)
+ doswap=yes
+ ;;
+esac
+if test $doswap = yes
+then
+ test "$VERBOSE" != no && echo "Activating swap"
+ swapon -a 2> /dev/null
+fi
+
+#
+# Check the root filesystem.
+#
+if test -f /fastboot || test $rootcheck = no
+then
+ test $rootcheck = yes && echo "Fast boot, no filesystem check"
+else
+ #
+ # Ensure that root is quiescent and read-only before fsck'ing.
+ #
+ mount -n -o remount,ro /
+ if test $? = 0
+ then
+ if test -f /forcefsck
+ then
+ force="-f"
+ else
+ force=""
+ fi
+ if test "$FSCKFIX" = yes
+ then
+ fix="-y"
+ else
+ fix="-a"
+ fi
+ spinner="-C"
+ case "$TERM" in
+ dumb|network|unknown|"") spinner="" ;;
+ esac
+ test `uname -m` = s390 && spinner="" # This should go away
+ test "$VERBOSE" != no && echo "Checking root filesystem..."
+ fsck $spinner $force $fix /
+ #
+ # If there was a failure, drop into single-user mode.
+ #
+ # NOTE: "failure" is defined as exiting with a return code of
+ # 2 or larger. A return code of 1 indicates that filesystem
+ # errors were corrected but that the boot may proceed.
+ #
+
+ echo "RETURNCODE: [$RTC]"
+
+ if test "$RTC" -gt 3
+ then
+
+ # Since this script is run very early in the boot-process, it should be safe to assume that the
+ # output is printed to VT1. However, some distributions use a bootsplash to hide the "ugly" boot
+ # messages and having the bootsplash "hang" due to a waiting fsck prompt is less than ideal
+ chvt 1
+
+ # Surprise! Re-directing from a HERE document (as in
+ # "cat << EOF") won't work, because the root is read-only.
+ echo
+ echo "fsck failed. Please repair manually and reboot. "
+ echo "Please note that the root filesystem is currently "
+ echo "mounted read-only. To remount it read-write:"
+ echo
+ echo " # mount -n -o remount,rw /"
+ echo
+ echo "CONTROL-D will exit from this shell"
+ echo "and REBOOT the system."
+ echo
+ # Start a single user shell on the console
+ /sbin/sulogin $CONSOLE
+ reboot -f
+ fi
+ else
+ echo "*** ERROR! Cannot fsck root fs because it is not mounted read-only!"
+ echo
+ fi
+fi
+
+devrootfound=$(grep "/dev/root" /proc/mounts | \
+ awk '{if ($4 = /rw/) print "found";}' )
+
+if [ -n "$devrootfound" -a "$devrootfound" = "found" ]; then
+ echo "Read/write /dev/root found."
+ exit 0
+fi
+
+if mount -vf -o remount / 2> /dev/null | \
+ awk '{if ($6 ~ /rw/) exit 0; else exit 1; }' && \
+ ! touch -c / 2> /dev/null
+ then
+ echo " Remounting root filesystem read/write"
+ mount -n -o remount,$rootmode /
+fi
+
+if test "$rootmode" = rw
+then
+ if test ! -L /etc/mtab
+ then
+ rm -f /etc/mtab~ /etc/nologin
+ : > /etc/mtab
+ fi
+ mount -f -o remount /
+ mount -f /proc
+ test "$devfs" && grep -q '^devfs /dev' /proc/mounts && mount -f "$devfs"
+fi
+
+: exit 0
diff --git a/packages/initscripts/initscripts-1.0/openturbostation/devices b/packages/initscripts/initscripts-1.0/openturbostation/devices
new file mode 100755
index 0000000000..f83ea63598
--- /dev/null
+++ b/packages/initscripts/initscripts-1.0/openturbostation/devices
@@ -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
diff --git a/packages/initscripts/initscripts-1.0/openturbostation/domainname.sh b/packages/initscripts/initscripts-1.0/openturbostation/domainname.sh
new file mode 100644
index 0000000000..7113467d8c
--- /dev/null
+++ b/packages/initscripts/initscripts-1.0/openturbostation/domainname.sh
@@ -0,0 +1,5 @@
+#
+# domainname.sh Set the domainname.
+#
+test -r /etc/defaultdomain &&
+ cat /etc/defaultdomain >/proc/sys/kernel/domainname
diff --git a/packages/initscripts/initscripts-1.0/openturbostation/halt b/packages/initscripts/initscripts-1.0/openturbostation/halt
new file mode 100755
index 0000000000..f22d892d46
--- /dev/null
+++ b/packages/initscripts/initscripts-1.0/openturbostation/halt
@@ -0,0 +1,27 @@
+#! /bin/sh
+#
+# halt Execute the halt command.
+#
+# Version: @(#)halt 2.84-2 07-Jan-2002 miquels@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
diff --git a/packages/initscripts/initscripts-1.0/openturbostation/reboot b/packages/initscripts/initscripts-1.0/openturbostation/reboot
new file mode 100755
index 0000000000..05a82be4c0
--- /dev/null
+++ b/packages/initscripts/initscripts-1.0/openturbostation/reboot
@@ -0,0 +1,12 @@
+#! /bin/sh
+#
+# reboot Execute the reboot command.
+#
+# Version: @(#)reboot 2.75 22-Jun-1998 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+echo -n "Rebooting... "
+scc -p restart
+reboot -d -f -i
diff --git a/packages/initscripts/initscripts-openturbostation_1.0.bb b/packages/initscripts/initscripts-openturbostation_1.0.bb
new file mode 100644
index 0000000000..3fc98fa12b
--- /dev/null
+++ b/packages/initscripts/initscripts-openturbostation_1.0.bb
@@ -0,0 +1,175 @@
+#
+# OpenTurbostation stuff sorta specific for the turbostation
+#
+# 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://openturbostation/domainname.sh"
+SRC_URI += "file://openturbostation/devices"
+SRC_URI += "file://openturbostation/halt"
+SRC_URI += "file://openturbostation/reboot"
+SRC_URI += "file://openturbostation/checkroot.sh"
+
+# 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}/openturbostation/domainname.sh ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/openturbostation/devfs.sh ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/openturbostation/halt ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/openturbostation/reboot ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/openturbostation/devices ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/openturbostation/checkroot.sh ${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-openturbostation: unexpected link $d"
+ status=1
+ done
+ test $status -eq 0 ||
+ oefatal "initscripts-openturbostation: 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 .
+
+ #
+ # 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
+ # any network file systems which failed to umount before.
+ update-rc.d -r ${D} umountfs start 70 0 6 .
+
+ update-rc.d -r ${D} halt start 90 0 .
+ update-rc.d -r ${D} reboot start 90 6 .
+}
diff --git a/packages/meta/openturbostation-packages.bb b/packages/meta/openturbostation-packages.bb
new file mode 100644
index 0000000000..d5192d3d75
--- /dev/null
+++ b/packages/meta/openturbostation-packages.bb
@@ -0,0 +1,195 @@
+# Meta package containing all the packages which build for SlugOS
+#
+# All packages in here must build with the slugos-???.conf distros,
+# they do not necessarily work.
+DESCRIPTION = "Packages that are compatible with the Openprotium on the iomega Storcenter"
+HOMEPAGE = "http://www.openprotium.org"
+LICENSE = "MIT"
+PR = "r1"
+CONFLICTS = "db3"
+PROVIDES += "${OPENTURBOSTATION_IMAGENAME}-packages"
+
+EXCLUDE_FROM_WORLD = "1"
+INHIBIT_DEFAULT_DEPS = "1"
+ALLOW_EMPTY = "1"
+
+# The list of packages to build for the slugos DISTRO.
+# KEEP IN ALPHABETICAL ORDER
+# Do *not* simply comment out a line. That will break. Instead
+# remove the package and place it in the corresponding "broken" list
+
+# deleted from "base" as they don't immediately build...
+# asterisk \
+# asterisk-sounds \
+# beep \
+# cherokee \
+# cyrus-sasl \
+# atftp \
+# flac \
+# gphoto2 \
+# gdb \
+# glib-2.0 \
+# lirc \
+# masqmail \
+# wakelan \
+# wireless-tools \
+# wpa-supplicant \
+# bluez-utils-nodbus \
+# libxml2 \
+# libdvb \
+# madwifi-ng \
+# motion \
+# ftpd-topfield \
+# eciadsl \
+# netpbm \
+# reiserfsprogs reiser4progs \
+# libgphoto2 \
+# python \
+# mpd \
+# memtester \
+# puppy \
+# samba \
+# sane-backends \
+# vsftpd \
+# zd1211 \
+
+OPENTURBOSTATION_PACKAGES = "\
+ alsa-lib \
+ alsa-utils \
+ apache2 \
+ audiofile \
+ aumix \
+ autoconf \
+ automake \
+ bash \
+ bind \
+ binutils \
+ bison \
+ bridge-utils \
+ bzip2 \
+ ccxstream \
+ cdparanoia \
+ cdstatus \
+ coreutils \
+ cron \
+ ctorrent \
+ cvs \
+ db \
+ devlabel \
+ diffstat \
+ diffutils \
+ dnsmasq \
+ e2fsprogs \
+ e2fsprogs-libs \
+ expat \
+ ez-ipupdate \
+ fetchmail \
+ file \
+ findutils \
+ flex \
+ flite \
+ gallery \
+ gawk \
+ gcc \
+ gdbm \
+ gnu-config \
+ grep \
+ gtk-doc \
+ gzip \
+ hdparm \
+ ifupdown \
+ ipkg-utils \
+ iptables \
+ ircp \
+ joe \
+ jpeg \
+ lcdproc \
+ less \
+ libao \
+ libid3tag \
+ liblockfile \
+ libmad \
+ libmikmod \
+ libogg \
+ libol \
+ libpng \
+ libtool \
+ libupnp \
+ libusb \
+ libvorbis \
+ litestream \
+ lrzsz \
+ lsof \
+ lvm2 \
+ m4 \
+ madplay \
+ mailx \
+ make \
+ mdadm \
+ mgetty \
+ miau \
+ microcom \
+ minicom \
+ modphp \
+ mt-daapd \
+ mtd-utils \
+ mutt \
+ nail \
+ nano \
+ ncftp \
+ ncurses \
+ netcat \
+ nmap \
+ ntp \
+ openobex-apps \
+ openldap \
+ openntpd \
+ openobex \
+ openssh \
+ openvpn \
+ patch \
+ pciutils \
+ libpcre \
+ perl \
+ pkgconfig \
+ ppp \
+ procps \
+ pvrusb2-mci \
+ pwc \
+ quilt \
+ rng-tools \
+ rsync \
+ sed \
+ setpwc \
+ setserial \
+ smartmontools \
+ ssmtp \
+ strace \
+ streamripper \
+ sysfsutils \
+ syslog-ng \
+ tar \
+ thttpd \
+ tiff \
+ unzip \
+ usbutils \
+ util-linux \
+ vim \
+ vlan \
+ watchdog \
+ wget \
+ zip \
+ zlib \
+ "
+
+OPENTURBOSTATION_EXTRA_PACKAGES ?= ""
+
+# The package-index at the end causes regeneration of the Packages.gz and
+# other control files.
+# openprotium-native \
+DEPENDS = "\
+ openprotium-image \
+ ${OPENTURBOSTATION_PACKAGES} \
+ ${OPENTURBOSTATION_EXTRA_PACKAGES} \
+ package-index \
+ "
diff --git a/packages/openturbostation-init/.mtn2git_empty b/packages/openturbostation-init/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openturbostation-init/.mtn2git_empty
diff --git a/packages/openturbostation-init/files/.mtn2git_empty b/packages/openturbostation-init/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openturbostation-init/files/.mtn2git_empty
diff --git a/packages/openturbostation-init/files/boot/.mtn2git_empty b/packages/openturbostation-init/files/boot/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openturbostation-init/files/boot/.mtn2git_empty
diff --git a/packages/openturbostation-init/files/conffiles b/packages/openturbostation-init/files/conffiles
new file mode 100644
index 0000000000..e1408a3227
--- /dev/null
+++ b/packages/openturbostation-init/files/conffiles
@@ -0,0 +1,55 @@
+# conffiles
+# Known SlugOS configuration files. These files are preserved on
+# a flash upgrade. Other configuration files, found from:
+#
+# /usr/lib/ipkg/*.conffiles
+# /etc/*.conf
+#
+# are preserved too with an operation of 'diff' if they have been
+# changed since /etc/.configured was created.
+#
+# Lines starting with # are comments, other lines have
+# two fields:
+#
+# operation file
+#
+# The file must *NOT* have a leading /
+#
+# operation may be:
+# ignore Do not preserve this file
+# preserve Preserve this file unconditionally
+# diff Compare file with the new version, ask if different
+#
+preserve linuxrc
+preserve etc/.configured
+preserve etc/TZ
+diff etc/default/conffiles
+diff etc/default/devpts
+preserve etc/default/rcS
+preserve etc/default/sysconf
+diff etc/default/usbd
+preserve etc/defaultdomain
+preserve etc/dropbear/dropbear_dss_host_key
+preserve etc/dropbear/dropbear_rsa_host_key
+preserve etc/ssh/ssh_host_dsa_key
+preserve etc/ssh/ssh_host_dsa_key.pub
+preserve etc/ssh/ssh_host_rsa_key
+preserve etc/ssh/ssh_host_rsa_key.pub
+preserve etc/fstab
+preserve etc/group
+preserve etc/gshadow
+preserve etc/hostname
+preserve etc/hosts
+preserve etc/localtime
+ignore etc/modules
+ignore etc/modules.conf
+preserve etc/motd
+preserve etc/network/interfaces
+preserve etc/ntp.drift
+preserve etc/passwd
+preserve etc/profile
+preserve etc/resolv.conf
+preserve etc/shadow
+preserve etc/syslog.conf
+preserve etc/timezone
+preserve root/.ssh/authorized_keys
diff --git a/packages/openturbostation-init/files/functions b/packages/openturbostation-init/files/functions
new file mode 100644
index 0000000000..2108288ab5
--- /dev/null
+++ b/packages/openturbostation-init/files/functions
@@ -0,0 +1,413 @@
+#!/bin/sh
+# . this file to load the following utility functions
+#
+# hardware
+# the 'Hardware' string from cpuinfo, or, if not found
+# try a little harder with 'machine'
+hardware(){
+ local hdw
+ hdw=`sed -n 's!^Hardware *: !!p' /proc/cpuinfo`
+ test -n "$hdw" || {
+ hdw=`sed -n 's!^machine *: !!p' /proc/cpuinfo`
+ }
+ echo $hdw
+}