summaryrefslogtreecommitdiff
path: root/packages/slugos-init
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /packages/slugos-init
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'packages/slugos-init')
-rw-r--r--packages/slugos-init/files/README49
-rw-r--r--packages/slugos-init/files/boot/disk83
-rw-r--r--packages/slugos-init/files/boot/flash29
-rw-r--r--packages/slugos-init/files/boot/kexec203
-rw-r--r--packages/slugos-init/files/boot/network41
-rw-r--r--packages/slugos-init/files/boot/nfs31
-rw-r--r--packages/slugos-init/files/boot/ram64
-rw-r--r--packages/slugos-init/files/boot/udhcpc.script17
-rw-r--r--packages/slugos-init/files/conffiles55
-rw-r--r--packages/slugos-init/files/functions427
-rw-r--r--packages/slugos-init/files/initscripts/fixfstab91
-rw-r--r--packages/slugos-init/files/initscripts/leds_startup11
-rw-r--r--packages/slugos-init/files/initscripts/loadmodules.sh15
-rw-r--r--packages/slugos-init/files/initscripts/rmrecovery4
-rw-r--r--packages/slugos-init/files/initscripts/sysconfsetup46
-rw-r--r--packages/slugos-init/files/initscripts/syslog.buffer23
-rw-r--r--packages/slugos-init/files/initscripts/syslog.file23
-rw-r--r--packages/slugos-init/files/initscripts/syslog.network28
-rw-r--r--packages/slugos-init/files/initscripts/umountinitrd.sh33
-rw-r--r--packages/slugos-init/files/initscripts/zleds45
-rw-r--r--packages/slugos-init/files/leds269
-rw-r--r--packages/slugos-init/files/links.conf6
-rw-r--r--packages/slugos-init/files/modulefunctions45
-rw-r--r--packages/slugos-init/files/modutils.txt1
-rw-r--r--packages/slugos-init/files/reflash658
-rw-r--r--packages/slugos-init/files/setup-optware.sh17
-rw-r--r--packages/slugos-init/files/sysconf796
-rw-r--r--packages/slugos-init/files/turnup965
-rw-r--r--packages/slugos-init/files/usb2
-rw-r--r--packages/slugos-init/slugos-init_0.10.bb149
-rw-r--r--packages/slugos-init/slugos-init_4.8.bb148
-rw-r--r--packages/slugos-init/slugos-init_5.0.bb157
32 files changed, 0 insertions, 4531 deletions
diff --git a/packages/slugos-init/files/README b/packages/slugos-init/files/README
deleted file mode 100644
index 264d4d8f85..0000000000
--- a/packages/slugos-init/files/README
+++ /dev/null
@@ -1,49 +0,0 @@
-OpenSlug-1.x Family Release README
-
-Warning: OpenSlug is not for the faint of heart! In fact, OpenSlug has a
-specific target audience.
-
-Some background first. According to the NSLU2 - Linux developers, there are 4
-specific types ("camps") of NSLU2 - Linux users:
-
- Camp #1: Users who want full Linksys compatibility (including for future
- Linksys firmware releases). They can load firmware images via
- the Linksys web interface and telnet in - to load Optware -
- Unslung packages with ipkg, but have no idea what RedBoot is or
- does.
-
- Camp #2: "Camp #1 Plus users." They can telnet into RedBoot (ability
- to "self-rescue" a non-working NSLU2), and are comfortable
- using Linux.
-
- Camp #3: Power users! Firmware flashing via any interface is a walk
- in the park. They aren't just *users*, but are developers or
- administrators of computers and/or computer software.
- However, they have no JTAG or custom bootloaders.
-
- Camp #4: Bleeding edge users. They create and use custom bootloaders,
- certainly having no need or desire for Linksys compatibility,
- modifying and/or changing the hardware as well.
-
-With those camps in mind, OpenSlug is targetted toward Camp #3 and Camp #4
-users. If you're not in Camps 3 & 4, then you should be looking to use the
-Unslung firmware. If you are a Camp #2 user, and still want to use OpenSlug,
-you need to practice gaining RedBoot access, and be able to recover from bad
-flashes, "drive not formatted" conditions, and other common mistakes/problems
-which are documented in the NSLU2-Linux Wiki at http://www.nslu2-linux.org.
-Once you are comfortable doing those things, then you may consider using
-OpenSlug.
-
-If you're still reading - and still intent on using OpenSlug, click through
-the Intel license, download the latest OpenSlug binary and flash it to your
-NSLU2! (Without any HD attached while flashing!!!) Your next stop should be
-the OpenSlug Turnip page at:
-
- http://www.nslu2-linux.org/wiki/OpenSlug/OpenSlugTurnUp
-
-Please add your name and information to the OpenSlug database at the yahoo
-NSLU2-Linux group at:
-
- http://groups.yahoo.com/group/nslu2-linux/
-
-Happy OpenSlugging! \ No newline at end of file
diff --git a/packages/slugos-init/files/boot/disk b/packages/slugos-init/files/boot/disk
deleted file mode 100644
index 1829033d4e..0000000000
--- a/packages/slugos-init/files/boot/disk
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/bin/sh
-# boot from the hard disk partition "$1" (which
-# must be given) using options from the rest of
-# the command line.
-
-# Use the standard init path (see /etc/init.d/rcS)
-export PATH=/sbin:/bin:/usr/sbin:/usr/bin
-
-# Mount required fileystems if necessary
-[ -e /proc/cpuinfo ] || mount -t proc proc /proc
-[ -e /sys/class ] || mount -t sysfs sysfs /sys
-
-# Load the helper functions
-. /etc/default/functions
-. /etc/default/modulefunctions
-
-leds boot system
-
-if test -n "$1"
-then
- device="$1"
- shift
- # load USB & SCSI storage modules (/proc required!)
- echo "boot: loading modules required for disk boot"
- loaddiskmods
- # waiting for disk
- if test "$sleep" -gt 0
- then
- echo "boot: waiting $sleep seconds for disk"
- sleep "$sleep"
- fi
- # Attempt to assemble the RAID if necessary
- if (echo $device | grep -q "^/dev/md")
- then
- if test -n "$MDUUID"
- then
- echo "boot: assembling RAID array (UUID)"
- mdadm -Acpartitions --auto=md --uuid="$MDUUID" $device
- else
- echo "boot: assembling RAID array (config file)"
- mdadm -As --auto=md $device
- fi
- fi
-
- # fire the boot
- echo "boot: rootfs: mount $* $device [$UUID]"
-
- # Mount read-write because before exec'ing init
- # If a UUID is given (in the environment) this
- # is used in preference to the device, but if
- # the UUID mount fails a standard device mount
- # is attempted.
- if test -n "$UUID" &&
- mount "$@" UUID="$UUID" /mnt ||
- mount "$@" "$device" /mnt
- then
- # checkmount checks for sh, chroot, init, /dev
- # and /mnt (i.e. /mnt/mnt in this case).
- # minimaldevnodes checks (and creates if required)
- # a few mandatory /dev nodes we may need.
- if checkmount /mnt && minimaldevnodes /mnt
- then
- # pivot to /initrd if available, else /mnt
- cd /
- if test -d /mnt/initrd
- then
- swivel mnt initrd
- else
- swivel mnt mnt
- fi
- # swivel failed
- fi
- # Failure: unmount the partition
- umount /mnt
- # Remount /proc and /sys if necessary
- [ -e /proc/cpuinfo ] || mount -t proc proc /proc
- [ -e /sys/class ] || mount -t sysfs sysfs /sys
- fi
-fi
-
-# fallback - use the flash boot
-leds beep -f 1000 -r 2
-exec /boot/flash
diff --git a/packages/slugos-init/files/boot/flash b/packages/slugos-init/files/boot/flash
deleted file mode 100644
index 01c20e963a..0000000000
--- a/packages/slugos-init/files/boot/flash
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-# boot from the current (flash) root partition
-# nothing need be done apart from setting the
-# system LED status correctly
-
-# Mount required filesystems if necessary
-[ -e /proc/cpuinfo ] || mount -t proc proc /proc
-[ -e /sys/class ] || mount -t sysfs sysfs /sys
-
-leds beep
-. /etc/default/functions
-leds boot system
-
-if [ -x /sbin/init ]
-then
- umount /proc 2>/dev/null
- umount /sys 2>/dev/null
- exec /sbin/init
-fi
-
-# fallback if /sbin/init has been deleted (bad!)
-# Mount required filesystems if necessary
-[ -e /proc/cpuinfo ] || mount -t proc proc /proc
-[ -e /sys/class ] || mount -t sysfs sysfs /sys
-leds boot system panic
-exec <>/dev/console >&0 2>&0
-test -x /sbin/sulogin && exec /sbin/sulogin
-test -x /bin/sh && exec /bin/sh
-exit 1
diff --git a/packages/slugos-init/files/boot/kexec b/packages/slugos-init/files/boot/kexec
deleted file mode 100644
index a60be03142..0000000000
--- a/packages/slugos-init/files/boot/kexec
+++ /dev/null
@@ -1,203 +0,0 @@
-#!/bin/sh
-#
-# Loads the specified kernel and kexecs it.
-
-# The access method and path from which to fetch the kernel
-# is specified in "$1" and "$2":
-#
-# flash /boot/zImage-ixp4xxbe
-# nfs spike:/home/slug/vmlinuz
-# wget http://devserv/kernels/vmlinuzbe
-# wget ftp://ftpserv/pub/zImage
-# /dev/sda1 /kernels/zImage-test
-# UUID /kernels/zImage-test
-# tftp server:/pub/kernels/vmlinuz
-#
-# Command-line options for the new kernel are in "$3".
-
-
-# In order to use this, you must exec this script from the /linuxrc file.
-#
-# This sample linuxrc script boots from external disk. The last line of
-# this example (exec /boot/flash) is a fallback; it will not normally be
-# executed unless /boot/kexec is missing or damaged.
-#--------------------
-# #!/bin/sh
-# sleep=8 exec /boot/kexec /dev/sda1 /boot/zImage-ixp4xxbe \
-# "console=ttyS0,115200n8 root=/dev/sda1 rootfstype=ext3 rw init=/linuxrc"
-# exec /boot/flash
-#--------------------
-#
-# This one boots from flash in the normal fashion, except the kernel is
-# loaded using wget. This is common for kernel debugging.
-#--------------------
-# #!/bin/sh
-# exec /boot/kexec wget http://myserver/boot/zImage-ixp4xxbe \
-# "console=ttyS0,115200n8 root=/dev/mtdblock4 rootfstype=jffs2 rw \
-# init=/boot/flash noirqdebug"
-# exec /boot/flash
-#--------------------
-
-
-# Use the standard init path (see /etc/init.d/rcS)
-export PATH=/sbin:/bin:/usr/sbin:/usr/bin
-
-# Wait at least a short while for the disks...
-if [ ! "$sleep" -gt 0 ] ; then
- sleep=1
-fi
-
-# Load the helper functions
-. /etc/default/functions
-. /etc/default/modulefunctions
-
-# Print a distinctive banner to make it easy to separate the in-flash
-# kernel boot from the kexec'd kernel boot when looking at logs, etc.
-echo '###########################################################'
-echo '###################### KEXEC ######################'
-
-leds boot system
-
-if [ -n "$1" -a -n "$2" ] ; then
-
- method="$1"
- shift
- kpath="$1"
- shift
- if [ -n "$1" ] ; then
- kcmdline="$1"
- shift
- fi
- kexec_image=
- need_umount=0
- do_kexec=0
-
- mount -t proc proc /proc
-
- case "$method" in
-
- flash )
- echo "Loading kexec kernel directly from \"$kpath\"..."
- kexec_image="$kpath"
- ;;
-
- wget )
- if /boot/network ; then
- echo "mounting tmpfs partition..."
- if mount -t tmpfs tmpfs /mnt ; then
- need_umount=1
- echo "Loading kexec kernel using wget \"$kpath\"..."
- wget -P /mnt "$kpath"
- t=`basename "$kpath"`
- kexec_image="/mnt/$t"
- fi
- fi
- ;;
-
- nfs )
- if /boot/network ; then
- echo "Loading kexec kernel using nfs \"$kpath\"..."
- echo "mounting nfs partition..."
- loadnfsmods
- if mount -o ro,nolock -t nfs `dirname "$kpath"` /mnt ; then
- need_umount=1
- t=`basename "$kpath"`
- kexec_image="/mnt/$t"
- fi
- fi
- ;;
-
- /dev/* )
- echo "Loading kexec kernel using disk \"$kpath\"..."
- loaddiskmods
- sleep "$sleep"
- echo "mounting partition \"$method\"..."
- if mount -o ro "$method" /mnt ; then
- need_umount=1
- kexec_image="/mnt/$kpath"
- fi
- ;;
-
- UUID )
- echo "Loading kexec kernel using disk UUID \"$kpath\"..."
- loaddiskmods
- sleep "$sleep"
- if [ -n "$UUID" ] ; then
- echo "mounting partition UUID \"$UUID\"..."
- if mount -o ro UUID="$UUID" /mnt ; then
- need_umount=1
- kexec_image="/mnt/$kpath"
- fi
- fi
- ;;
-
- tftp )
- if /boot/network ; then
- echo "mounting tmpfs partition..."
- if mount -t tmpfs tmpfs /mnt ; then
- need_umount=1
- t=`basename "$kpath"`
- kexec_image="/mnt/$t"
- echo "Loading kexec kernel using tftp \"$kpath\"..."
- tftp -g -l "$kexec_image" -r "${kpath#*:}" "${kpath%%:*}"
- fi
- fi
- ;;
-
- * )
- echo "Unrecognized method: \"$method\""
- ;;
-
- esac
-
- if [ -n "$kexec_image" -a -f "$kexec_image" ] ; then
- if kexec -l "$kexec_image" ; then
- do_kexec=1
- fi
- else
- echo "Unable to load \"$kexec_image\""
- fi
-
- if [ $do_kexec -eq 1 -a -n "$kcmdline" ] ; then
- echo "Attempting to mount /sys (sysfs)..."
- if mount -t sysfs sysfs /sys ; then
- echo "Setting command line:"
- echo " \"$kcmdline\""
- echo "$kcmdline" > /sys/kernel/kexec_cmdline
- echo "unmounting /sys..."
- umount /sys
- else
- do_kexec=0
- fi
- fi
-
- if [ $need_umount -eq 1 ] ; then
- echo "unmounting /mnt..."
- umount /mnt
- fi
-
- if [ $do_kexec -eq 1 ] ; then
- echo "Remounting root as read-only..."
- mount -o remount,ro /
- echo "Invoking \"kexec -f -e\" ..."
- kexec -f -e
- echo "ERROR!"
- # We should never return here! At this point, things are not
- # too well. Remount the root as rw, and fallback.
- echo "Remounting root as read-write..."
- mount -o remount,rw /
- fi
-else
- echo "Usage: $0 flash|nfs|wget|UUID|/dev/<partition> <path-or-URL> [cmdline]"
-fi
-
-# fallback - use the flash boot
-echo "Falling back to flash boot..."
-leds beep -f 1000 -r 2
-exec /boot/flash
-
-# fallback to the fallback
-leds boot system panic
-exec <>/dev/console >&0 2>&0
-test -x /bin/sh && exec /bin/sh
-exit 1 \ No newline at end of file
diff --git a/packages/slugos-init/files/boot/network b/packages/slugos-init/files/boot/network
deleted file mode 100644
index b8054a0056..0000000000
--- a/packages/slugos-init/files/boot/network
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-# bring up the network before boot, used to allow
-# netconsole logging and NFS boot. This runs out
-# of flash, but that's ok because the script doesn't
-# leave any process running.
-
-# NOTE: /etc/default/functions defines ifup as a shell
-# function!
-. /etc/default/functions
-
-# We may need to load the network driver modules here
-. /etc/default/modulefunctions
-loadnetmods
-
-# Now all the information for booting should be in the configuration
-# file. Config the loopback and network interfaces.
-ifconfig lo 127.0.0.1 up
-iface="$(config iface)"
-test -z "$iface" && exit 1
-
-# Fire up a process in the background to load the firmware if necessary.
-# If this system doesn't require the NPE-B firmware, no problem, the
-# background process will simply go away in two seconds. If it requires
-# some other firmware, then modification will be required. We probably
-# should replace this with mdev or some other hotplug-based technique...
-sysf="/sys/class/firmware/$iface"
-(
- # Wait for the firware to be requested, if required
- [ -f $sysf/loading ] || sleep 1
- [ -f $sysf/loading ] || sleep 1
- if [ -f $sysf/loading ] ; then
- echo "1" >$sysf/loading
- cat /lib/firmware/NPE-B >$sysf/data
- echo "0" >$sysf/loading
- fi
-) &
-# Trigger the firmware load proactively
-ifconfig "$iface" up
-
-ifup "$iface"
-# exit code is true only if the interface config has succeeded
diff --git a/packages/slugos-init/files/boot/nfs b/packages/slugos-init/files/boot/nfs
deleted file mode 100644
index 7f91889315..0000000000
--- a/packages/slugos-init/files/boot/nfs
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-# boot from the nfs partition "$1" (which
-# must be given) using options from the rest of
-# the command line.
-
-# Use the standard init path (see /etc/init.d/rcS)
-export PATH=/sbin:/bin:/usr/sbin:/usr/bin
-
-# Mount required fileystems if necessary
-[ -e /proc/cpuinfo ] || mount -t proc proc /proc
-[ -e /sys/class ] || mount -t sysfs sysfs /sys
-
-# Load the helper functions
-. /etc/default/functions
-. /etc/default/modulefunctions
-
-leds boot system
-
-if /boot/network
-then
- # load the nfs kernel module
- loadnfsmods
-
- # network is up and running, the NFS mount will
- # now succeed (possibly), use /boot/disk
- exec /boot/disk "$@"
-fi
-
-# fallback - use the flash boot
-leds beep -f 1000 -r 2
-exec /boot/flash
diff --git a/packages/slugos-init/files/boot/ram b/packages/slugos-init/files/boot/ram
deleted file mode 100644
index 0a8fe1d25d..0000000000
--- a/packages/slugos-init/files/boot/ram
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/sh
-# boot from the hard disk partition "$1" (which
-# must be given) using options from the rest of
-# the command line.
-
-# Use the standard init path (see /etc/init.d/rcS)
-export PATH=/sbin:/bin:/usr/sbin:/usr/bin
-
-# Mount required fileystems if necessary
-[ -e /proc/cpuinfo ] || mount -t proc proc /proc
-[ -e /sys/class ] || mount -t sysfs sysfs /sys
-
-# Load the helper functions
-. /etc/default/functions
-
-leds beep -r 2
-leds boot system
-
-if test -n "$1"
-then
- device="$1"
- shift
- echo "boot: rootfs: mount $* $device"
-
- # prepare the device. This uses tmpfs to avoid dependency
- # on non-built-in file systems and because tmpfs can expand
- # to bigger than the 10MByte ram0 partition used before.
- # The 'device' is currently unused.
- if mount -t tmpfs "$@" tmpfs /mnt
- then
- cd /
- # filter out boot (with zimage), linuxrc and anything
- # below /var, keep dev or the boot will fail. Take
- # care that nothing is mounted at this point!
- umount /proc
- umount /sys
- find . -xdev -print |
- sed '\@^./boot/@d;\@^./boot$@d;\@^./linuxrc@d;\@^./var/@d' |
- cpio -p -d -m -u /mnt
- # busybox find with -xdev will not print the name of the
- # mountpoint, so create the empty dir manually if required.
- test -d /mnt/mnt || mkdir /mnt/mnt
- # checkmount checks for sh, chroot, init, /dev
- # and /mnt (i.e. /mnt/mnt in this case).
- # minimaldevnodes checks (and creates if required)
- # a few mandatory /dev nodes we may need.
- if checkmount /mnt && minimaldevnodes /mnt
- then
- # pivot to /mnt
- cd /
- swivel mnt mnt
- # swivel failed
- fi
- # Failure: unmount the partition
- umount /mnt
- # Remount /proc and /sys if necessary
- [ -e /proc/cpuinfo ] || mount -t proc proc /proc
- [ -e /sys/class ] || mount -t sysfs sysfs /sys
- fi
-fi
-
-# fallback - use the flash boot
-leds beep -f 1000 -r 2
-exec /boot/flash
diff --git a/packages/slugos-init/files/boot/udhcpc.script b/packages/slugos-init/files/boot/udhcpc.script
deleted file mode 100644
index 3f437e3143..0000000000
--- a/packages/slugos-init/files/boot/udhcpc.script
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-# executed by udhcpc to do the real work of configuring an interface
-# writes the result (if any) to file descriptor 9
-case "$1" in
-deconfig) # ignored
- :;;
-renew|bound) # this gives the real information
- test -n "$ip" && {
- echo "ip='$ip'"
- echo "subnet='$subnet'"
- echo "broadcast='$broadcast'"
- echo "router='$router'"
- } >&9;;
-leasefail) # ignore - probably no dhcp server
- :;;
-*) echo "udhcpc: $*: command not recognised" >&2;;
-esac
diff --git a/packages/slugos-init/files/conffiles b/packages/slugos-init/files/conffiles
deleted file mode 100644
index 668f7467a8..0000000000
--- a/packages/slugos-init/files/conffiles
+++ /dev/null
@@ -1,55 +0,0 @@
-# conffiles
-# Known SlugOS configuration files. These files are preserved on
-# a flash upgrade. Other configuration files, found from:
-#
-# /usr/lib/opkg/*.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/slugos-init/files/functions b/packages/slugos-init/files/functions
deleted file mode 100644
index 38a3b4d166..0000000000
--- a/packages/slugos-init/files/functions
+++ /dev/null
@@ -1,427 +0,0 @@
-#!/bin/sh
-# . this file to load the following utility functions
-#
-# hardware
-# the 'Hardware' string from cpuinfo
-hardware(){
- sed -n 's!^Hardware *: !!p' /proc/cpuinfo
-}
-#
-# machine
-# outputs an identifier of the current machine - i.e. the board
-# slugos is running on.
-machine(){
- case "$(hardware)" in
- *Coyote*) echo coyote;;
- *IXDPG425*) echo ixdpg425;;
- *WRV54G*) echo wrv54g;;
- *IXDP425*) echo ixdp425;;
- *IXDP465*) echo ixdp465;;
- *IXCDP1100*) echo ixcdp1100*;;
- *Avila*) echo avila;;
- *Loft*) echo loft;;
- *NAS?100d*) echo nas100d;;
- *DSM?G600*) echo dsmg600;;
- *NSLU2*) echo nslu2;;
- *FSG?3*) echo fsg3;;
- *) echo unknown;;
- esac
-}
-#
-# single_user_ok
-# if the machine is capable of single user interaction return
-# true, else return false. The result of this function is
-# preempted by setting SULOGIN to 'yes' or 'ok' in /etc/default/rcS
-single_user_ok() {
- # list known good machines in the 'case'
- test "$SULOGIN" = yes -o "$SULOGIN" = ok ||
- case "$(machine)" in
- ixdp*|avila|loft)
- test "$SULOGIN" != never;;
- *) return 1;;
- esac
-}
-#
-# load_functions "source"
-# load the functions in '/sbin/source' - relies on /sbin/source being
-# a shell script and having support for this function.
-load_functions(){
- test -n "$1" -a -x "/sbin/$1" && . "/sbin/$1" || {
- echo "$0: /sbin/$1: script not found" >&2
- return 1
- }
-}
-#
-# mtdev "name"
-# return (output) the character device name for flash parition "name"
-# /proc/mtd has the general form:
-# dev: size erasesize name
-# mtd5: 00020000 00020000 "FIS directory"
-# use this rather than hard-wiring the device because the partition
-# table can change - looking in /proc/mtd is more reliable.
-mtdev(){
- sed -n 's!^\(mtd[0-9][0-9]*\):[^"]*"'"$1"'"$!/dev/\1!p' /proc/mtd
-}
-#
-# mtblockdev "name"
-# as mtdev but output the name of the block (not character) device
-mtblockdev(){
- sed -n 's!^mtd\([0-9][0-9]*\):[^"]*"'"$1"'"$!/dev/mtdblock\1!p' /proc/mtd
-}
-#
-# mtsize "name"
-# the size of the partition as a hexadecimal value (with 0x at the front)
-mtsize(){
- sed -n 's!^mtd[0-9][0-9]*: \([^ ]*\)[^"]*"'"$1"'"$!0x\1!p' /proc/mtd
-}
-#
-# sysvalmatch "section" "name" 'pattern' "configuration file"
-# sysvalof "section" "name" "configuration file"
-# sysval "section" "name"
-# outputs the value of the SysConf variable 'name' from section 'section',
-# if there are multiple definitions only the last is output
-# NOTE: these functions should only be used internally, add entries to 'config'
-# below if necessary. This is because 'config' does the defaulting.
-sysvalmatch(){
- sed -n '/^\['"$1"'\]$/,/^\[.*\]$/s/^'"$2"'=\('"$3"'\)$/\1/p' "$4" | sed -n '$p'
-}
-sysvalof(){
- sysvalmatch "$1" "$2" '.*' "$3"
-}
-sysval(){
- test -r "$config_root/etc/default/sysconf" &&
- sysvalof "$1" "$2" "$config_root/etc/default/sysconf"
-}
-#
-# syssection "section"
-# outputs all the values from the given section changed to the format "name value"
-# (i.e. the '=' is dropped).
-syssection(){
- test -r "$config_root/etc/default/sysconf" &&
- sed -n '/^\['"$1"'\]$/,/^\[.*\]$/s/^\([^=]*\)=\(.*\)$/\1 \2/p' "$config_root/etc/default/sysconf"
-}
-#
-# config "value"
-# convenience callers for specific values to avoid mis-typing in scripts
-# NOTE: this function does the defaulting, 'sysval' does not!
-# config_root: if set this will override the root where config/sysval
-# looks for /etc/default/sysconf
-config(){
- local mac
- mac="$(test -r /proc/net/maclist &&
- sed -n '/^[0-9A-Za-z][0-9A-Za-z]:[0-9A-Za-z][0-9A-Za-z]:[0-9A-Za-z][0-9A-Za-z]:[0-9A-Za-z][0-9A-Za-z]:[0-9A-Za-z][0-9A-Za-z]:[0-9A-Za-z][0-9A-Za-z]$/p' /proc/net/maclist |
- sed -n 1p)"
- #
- case "$1" in
- mac) test -n "$mac" && echo "$mac";;
- host) if test -n "$(sysval network disk_server_name)"
- then
- sysval network disk_server_name
- elif test -n "$(sysval network default_server_name)"
- then
- sysval network default_server_name
- elif test -n "$mac"
- then
- echo "$mac" | sed -n 's/^\(..\):\(..\):\(..\):\(..\):\(..\):\(..\)$/slug\1\2\3\4\5\6/p'
- else
- # because we want the name to remain constant:
- echo "brokenslug"
- fi;;
- domain) sysval network w_d_name;;
- iface) if test -n "$(sysval network lan_interface)"
- then
- sysval network lan_interface
- else
- echo eth0
- fi;;
- ip) if test -n "$(sysval network ip_addr)"
- then
- sysval network ip_addr
- else
- echo 192.168.1.77
- fi;;
- netmask)sysval network netmask;;
- gateway)sysval network gateway;;
- dns) sysval network dns_server1;;
- dns2) sysval network dns_server2;;
- dns3) sysval network dns_server3;;
- boot) if test -n "$(sysval network bootproto)"
- then
- sysval network bootproto
- else
- echo dhcp
- fi;;
- valid) test -r "$config_root/etc/default/sysconf" -a -n "$mac";;
- *) return 1;;
- esac
-}
-#
-# checkif "iface"
-# Validate an interface name by making sure that it exists
-# in /proc/net/dev (and is not lo). The listing outputs the
-# interface followed by a :, the check function looks for
-# something of the form '$1[a-zA-Z0-9]*:' and outputs the
-# part preceding the ':'
-checkif(){
- sed -n '/^[ ]*lo:/d;s/^[ ]*\('"$1"'[a-zA-Z0-9]*\):.*$/\1/p;tE;d;:E;q' /proc/net/dev
-}
-#
-# checkmount "mountpoint"
-# tests an already mounted mountpoint to see whether to attempt to
-# boot with this as root. Returns success if it appears ok.
-checkmount(){
- # basic test for init (the kernel will try to load this)
- # but require a shell in bin/sh too
- test \( -d "$1/mnt" \) -a \
- \( -d "$1/dev" \) -a \
- \( -x "$1/bin/sh" -o -h "$1/bin/sh" \) -a \
- \( -x "$1/usr/sbin/chroot" -o -h "$1/usr/sbin/chroot" -o \
- -x "$1/sbin/chroot" -o -h "$1/sbin/chroot" \) -a \
- \( -x "$1/sbin/init" -o -h "$1/sbin/init" -o \
- -x "$1/etc/init" -o -h "$1/etc/init" -o \
- -x "$1/bin/init" -o -h "$1/bin/init" \)
-}
-#
-# minimaldevnodes "mountpoint"
-# tests an already mounted mountpoint to see if a very minimal
-# set of devices exists or can be created in dev, and returns
-# failure if not. This is required for booting to an nfsroot
-# with an empty dev directory, as commonly occurs when the rootfs
-# is created from a tar.gz image. This is also required for mdev.
-minimaldevnodes(){
- [ -c "$1/dev/console" ] || mknod -m 600 "$1/dev/console" c 5 1 || return 1
- [ -c "$1/dev/null" ] || mknod -m 666 "$1/dev/null" c 1 3 || return 1
- [ -c "$1/dev/tty0" ] || mknod -m 644 "$1/dev/tty0" c 4 0 || return 1
- return 0
-}
-#
-# swivel "new root" "old root"
-# NOTE: the arguments must be paths relative to /, bad things
-# will happen if the arguments themselves start with /
-# Pivot to a new root. This does all the fancy pivot_root stuff
-# including closing streams and does a umount of /proc and /sys -
-# it doesn't matter if this fails (failure codes are ignored),
-# but if /proc and/or /sys was mounted it must be restored by the
-# caller on return. Normally this function never returns!
-# On return 0,1,2 are connected to /dev/console - this may not
-# have been true before!
-swivel(){
- cd "$1"
- exec <&- >&- 2>&-
- # This is just-in-case the caller mounted either /proc or
- # /sys, and was unable to close them
- umount /sys 2>/dev/null
- umount /proc 2>/dev/null
- if pivot_root . "$2"
- then
- # everything must move out of the old root, this process
- # is $2/bin/sh so it must die, IO is redirected
- # just in case - typically it will be to a device so it
- # won't hold the old root open.
- # the exec here is the first point at which the old root
- # is unused - before the exec regardless of the close of
- # 0,1,2 above ash still has *this* shell script open!
- # (it's on fd 10).
- # init closes all file descriptors, there's no point
- # supplying it with fds.
- # NOTE: this used to use $2/usr/sbin/chroot, however on
- # linux / is already . when the command is executed
- # therefore it is essential to use the local (new root)
- # chroot to ensure it gets the correct shared libraries.
- if test -x usr/sbin/chroot -o -h usr/sbin/chroot
- then
- chroot=usr/sbin/chroot
- elif test -x sbin/chroot -o -h sbin/chroot
- then
- chroot=sbin/chroot
- else
- chroot=chroot
- fi
- #
- exec "$chroot" . bin/sh -c "\
- test -x sbin/init && exec sbin/init
- test -x etc/init && exec etc/init
- test -x bin/init && exec bin/init
- # Problematic failure! The chroot worked, but the
- # exec failed. Nothing to do but blink the LEDs.
- # (Use a wildcard because the LED names depend on
- # the version of the kernel in use.)
- mount -t sysfs sysfs /mnt
- for i in /mnt/class/leds/*[ready\|status]
- do
- echo -n timer >$i/trigger
- echo -n 60 >$i/delay_on
- echo -n 30 >$i/delay_off
- done
- umount /mnt
- sync;sync;sync
- exit 1"
- fi
- #
- # recovery - must restore the old root
- cd "$2"
- sbin/pivot_root . "$1"
- # cd is back to $1 - either pivot_root doesn't change it and the
- # chroot above was not executed, or pivot_root does change it and
- # has just changed it back!
- exec <>/dev/console >&0 2>&0
-}
-#
-# ifup "interface"
-# bring that interface up with the configured ip and other
-# information
-ifup(){
- local ip hostname router subnet iface HOSTNAME NETMASK BROADCAST
-
- iface="$1"
- ip="$(config ip)"
- hostname="$(config host)"
- router="$(config gateway)"
- broadcast=
-
- if test -n "$ip"
- then
- # only if an ip was specified
- subnet="$(config netmask)"
- else
- ip=192.168.1.77
- fi
-
- # First try udhcpc - note that the /boot/udhcpc.script
- # simply records the values returned and the udhcpc
- # is not left running so this will only work for
- # the lease length time!
- ifconfig "$iface" up
- if test "$(config boot)" != static
- then
- test -n "$hostname" && HOSTNAME="-H $hostname"
- # Pause a moment in case link negotiation takes a while
- sleep 3
- # The script writes the required shell variable assignments
- # to file descriptor 9
- eval $(udhcpc -i "$iface" -n -q -r "$ip" $HOSTNAME -s /boot/udhcpc.script 9>&1 >/dev/null)
- fi
-
- test -n "$broadcast" && BROADCAST="broadcast $broadcast"
- test -n "$subnet" && NETMASK="netmask $subnet"
-
- if ifconfig "$iface" "$ip" $NETMASK $BROADCAST
- then
- for route in $router
- do
- route add default gw "$route" dev "$iface"
- done
- return 0
- else
- ifconfig "$iface" down
- return 1
- fi
-}
-#
-# ifdown "interface"
-# take the interface down
-ifdown(){
- ifconfig "$1" down
-}
-#
-# mountflash "flash device" "flash root directory" {mount options}
-# Finds and mounts the flash file system on the given directory
-mountflash(){
- local ffsdev ffsdir
-
- ffsdev="$1"
- test -n "$ffsdev" -a -b "$ffsdev" || {
- echo "$0: unable to find flash file system to copy ($ffsdev)" >&2
- return 1
- }
- shift
-
- ffsdir="$1"
- test -n "$ffsdir" -a -d "$ffsdir" || {
- echo "$0: mountflash $ffsdir: not a directory (internal error)" >&2
- return 1
- }
- shift
-
- mount -t jffs2 "$@" "$ffsdev" "$ffsdir" || {
- echo "$0: $ffsdev: unable to mount flash file system on $ffsdir" >&2
- return 1
- }
- return 0
-}
-#
-# umountflash [-r] "flash device"
-# unmount any instance of the given flash device, if -r is specified a mount on
-# root is an error, otherwise a mount on root is ignored (and remains).
-umountflash(){
- local rootok ffsno ffsdev
- rootok=1
- case "$1" in
- -r) rootok=
- shift;;
- esac
- #
- # The argument is ffsdev
- ffsdev="$1"
- ffsno="$(devio "<<$ffsdev" prd)"
- test -n "$ffsno" -a "$ffsno" -ge 0 || {
- echo "$0: $ffsdev: device number $ffsno is not valid, cannot continue." >&2
- return 1
- }
- #
- # Make sure that Flashdisk isn't mounted on /
- if test -z "$rootok" -a "$(devio "<</etc/init.d/sysconfsetup" prd)" -eq "$ffsno"
- then
- echo "$0: $ffsdev is mounted on /, use turnup ram" >&2
- return 1
- fi
- #
- # The function is currently always used interactively, so output
- echo "$0: umounting any existing mount of $ffsdev" >&2
- #
- # check each mount point, do this last first because otherwise nested
- # mounts of ffsdev cannot be umounted.
- ffs_umount() {
- local device mp type options stuff
-
- read device mp type options stuff
- test -z "$device" && return 0
-
- # handle following entries first
- ffs_umount || return 1
-
- # handle this entry, since this is currently only used for unmounting
- # the flash root partition we know a file which must exist...
- case "$mp/$type" in
- //jffs2);; # skip /
- */jffs2)test "$(devio "<<$mp/etc/init.d/sysconfsetup" prd 2>/dev/null)" -ne "$ffsno" ||
- umount "$mp" || {
- echo "$0: $mp: unable to umount $ffsdev" >&2
- return 1
- };;
- esac
-
- return 0
- }
- #
- ffs_umount </proc/mounts || {
- echo "$0: umount $ffsdev from all mount points then re-run $0" >&2
- return 1
- }
-
- return 0
-}
-
-#
-# uuid_by_partition
-# output a list of partitions and their UUIDs
-uuid_by_partition() {
- blkid -c /dev/null -s UUID | sed -n 's/^\([^:]*\): .*UUID="\([^"]*\)".*$/\1 \2/p'
-}
-
-#
-# partition_of uuid
-# return the partition corresponding to the UUID
-partition_of() {
- sed -n 's/^\([^ ]*\) '"$1"'$/\1/p'
-}
diff --git a/packages/slugos-init/files/initscripts/fixfstab b/packages/slugos-init/files/initscripts/fixfstab
deleted file mode 100644
index 67116a12fd..0000000000
--- a/packages/slugos-init/files/initscripts/fixfstab
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/sh
-# validate /etc/fstab against the current UUID list in
-# /etc/uuid_by_partition
-#
-. /etc/default/functions
-pfile=/etc/uuid_by_partition
-
-#
-# use debug to find out what is going on
-test "$1" = start -o "$1" = debug || exit 0
-
-#
-# obtain the current list of parititions with UUIDs
-newlist="$(uuid_by_partition)"
-
-if test -r "$pfile"
-then
- # read the old list
- oldlist="$(cat "$pfile")"
- #
- # if it hasn't changed nothing need be done
- test "$newlist" = "$oldlist" && exit 0
- #
- # it has changed, but this only matters if
- # a previously existing uuid has moved, build
- # a list of old device vs new device for every
- # uuid which has moved
- changedlist="$(
- { echo "$oldlist"
- echo "$newlist"
- } | awk 'device[$2] == ""{device[$2] = $1}
- device[$2] != $1{print device[$2], $1}')"
-
- if test -n "$changedlist"
- then
- # at least one partition has moved, scan the
- # current fstab to see if it has a reference
- # to this partition
- changedfstab="$(
- { echo "$changedlist"
- echo '#fstab'
- cat /etc/fstab
- } | awk 'BEGIN{list=1}
- list==1 && $0=="#fstab"{list=0; continue}
- list==1{new[$1] = $2; continue}
- new[$1] != ""{print $1, new[$1]}')"
-
- # if this list is not empty edit the fstab
- if test -n "$changedfstab"
- then
- rm -f /tmp/fstab.$$
- # if the edit fails then do not overwrite the old
- # partition list - just exit with an error
- { echo "$changedlist"
- echo '#fstab'
- cat /etc/fstab
- } | awk 'BEGIN{list=1}
- list==1 && $0=="#fstab"{list=0; continue}
- list==1{new[$1] = $2; continue}
- new[$1] != ""{$1 = new[$1]}
- {print}' >/tmp/fstab.$$ || {
- if test "$1" = start
- then
- logger -s "/etc/init.d/fixfstab: /tmp/fstab.$$: awk failed"
- else
- echo "debug: awk script failed with:" >&2
- echo "$changedlist" >&2
- echo "output in /tmp/fstab.$$" >&2
- fi
- exit 1
- }
-
- if test "$1" = start
- then
- mv /tmp/fstab.$$ /etc/fstab || {
- logger -s "/etc/init.d/fixfstab: /tmp/fstab.$$: update failed"
- exit 1
- }
- else
- echo "debug: fstab changed:"
- diff -u /etc/fstab /tmp/fstab.$$
- fi
- fi
- fi
-fi
-
-# write the new list to the file, only if we
-# are doing something...
-test "$1" = start && echo "$newlist" >"$pfile"
-
-exit 0
diff --git a/packages/slugos-init/files/initscripts/leds_startup b/packages/slugos-init/files/initscripts/leds_startup
deleted file mode 100644
index 945d75bd02..0000000000
--- a/packages/slugos-init/files/initscripts/leds_startup
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-# Bug fix: during the initial boot sysvinit sets PREVLEVEL to
-# nothing in rcS and to 'N' in the transition from rcS to the
-# user state. This script runs on that transition and, if
-# the PREVLEVEL is 'N', sets 'previous' (as in /etc/init.d/rc)
-# to 'S'
-if test "$PREVLEVEL" = N
-then
- previous=S exec /etc/init.d/zleds stop
-fi
-exit 0
diff --git a/packages/slugos-init/files/initscripts/loadmodules.sh b/packages/slugos-init/files/initscripts/loadmodules.sh
deleted file mode 100644
index e80f995598..0000000000
--- a/packages/slugos-init/files/initscripts/loadmodules.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-# This script is used for loading modules required by SlugOS
-# This script may not be necessary if udev is present, but is included
-# for 'backup' purposes in case udev is playing silly buggers
-
-. /etc/default/modulefunctions # Load module loading logic
-
-loadnetmods
-
-loaddiskmods
-
-loadmiscmods
-
-exit 0
diff --git a/packages/slugos-init/files/initscripts/rmrecovery b/packages/slugos-init/files/initscripts/rmrecovery
deleted file mode 100644
index eec822b154..0000000000
--- a/packages/slugos-init/files/initscripts/rmrecovery
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-# Run to remove /.recovery if the boot seems to have succeeded
-test -e /.recovery && rm -f /.recovery
-exit 0
diff --git a/packages/slugos-init/files/initscripts/sysconfsetup b/packages/slugos-init/files/initscripts/sysconfsetup
deleted file mode 100644
index a4f9074d9c..0000000000
--- a/packages/slugos-init/files/initscripts/sysconfsetup
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-# This script is run once when the system first boots. Its sole
-# purpose is to create /etc/default/sysconf (the overall system
-# configuration file) and other files derived from this.
-#
-# The script runs immediately after S10checkroot.sh - this is the
-# point at which the rootfs will be mounted rw even if the kernel
-# booted with it ro.
-#
-# rm or mv the file (/etc/default/sysconf) to recreate it, run this
-# script with the reload option to overwrite the system files. The
-# configuration files described in sysconf_reload (in
-# /sbin/sysconf) will be overwritten on reload.
-#
-# start: standard startup, do a complete (auto) restore if necessary
-# reinit: always do a complete auto restore
-# reload: just reload sysconf (no config files!)
-#
-# /etc/default/functions contains useful utility functions - it's
-# in a separate file so that it can be loaded by any script
-. /etc/default/functions
-load_functions sysconf || exit 1
-#
-case "$1" in
-start) test -s /etc/default/sysconf || {
- if sysconf_read
- then
- if sysconf_valid
- then
- sysconf_restore auto
- else
- sysconf_reload
- fi
- else
- sysconf_default
- sysconf_reload
- fi
- };;
-
-reload) test -s /etc/default/sysconf || sysconf_read || sysconf_default
- sysconf_reload;;
-
-reinit) sysconf_restore auto;;
-
-*) ;;
-esac
diff --git a/packages/slugos-init/files/initscripts/syslog.buffer b/packages/slugos-init/files/initscripts/syslog.buffer
deleted file mode 100644
index 9285c02946..0000000000
--- a/packages/slugos-init/files/initscripts/syslog.buffer
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-#
-# Invoke the syslog startup if the configuration
-# uses (only) 'buffer' as the DESTINATION
-DESTINATION=
-test -f /etc/syslog.conf && . /etc/syslog.conf
-doit=
-
-for d in $DESTINATION
-do
- case "$d" in
- buffer) doit=1;;
- file) exit 0;;
- remote) exit 0;;
- *) echo "/etc/syslog.conf: $d: unknown destination" >&2
- exit 1;;
- esac
-done
-
-test -n "$doit" -a -x /etc/init.d/syslog &&
- exec /etc/init.d/syslog "$@"
-
-exit 0
diff --git a/packages/slugos-init/files/initscripts/syslog.file b/packages/slugos-init/files/initscripts/syslog.file
deleted file mode 100644
index 80ee5f0174..0000000000
--- a/packages/slugos-init/files/initscripts/syslog.file
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-#
-# Invoke the syslog startup if the configuration
-# uses 'file' (and, optionally, buffer) as the DESTINATION
-DESTINATION=
-test -f /etc/syslog.conf && . /etc/syslog.conf
-doit=
-
-for d in $DESTINATION
-do
- case "$d" in
- buffer) :;;
- file) doit=1;;
- remote) exit 0;;
- *) echo "/etc/syslog.conf: $d: unknown destination" >&2
- exit 1;;
- esac
-done
-
-test -n "$doit" -a -x /etc/init.d/syslog &&
- exec /etc/init.d/syslog "$@"
-
-exit 0
diff --git a/packages/slugos-init/files/initscripts/syslog.network b/packages/slugos-init/files/initscripts/syslog.network
deleted file mode 100644
index 3d7f4ab8e6..0000000000
--- a/packages/slugos-init/files/initscripts/syslog.network
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# Invoke the syslog startup if the configuration
-# uses 'remote', or doesn't use 'buffer' or 'file'
-DESTINATION=
-test -f /etc/syslog.conf && . /etc/syslog.conf
-doit=
-doneit=
-
-for d in $DESTINATION
-do
- case "$d" in
- buffer) doneit=1;;
- file) doneit=1;;
- remote) doit=1;;
- *) doit=1
- echo "/etc/syslog.conf: $d: unknown destination" >&2
- exit 1;;
- esac
-done
-
-# One of doneit or doit is set unless the DESTINATION value
-# is empty (which is probably an error), let syslog handle
-# the error.
-test \( -n "$doit" -o -z "$doneit" \) -a -x /etc/init.d/syslog &&
- exec /etc/init.d/syslog "$@"
-
-exit 0
diff --git a/packages/slugos-init/files/initscripts/umountinitrd.sh b/packages/slugos-init/files/initscripts/umountinitrd.sh
deleted file mode 100644
index 93f05a00f6..0000000000
--- a/packages/slugos-init/files/initscripts/umountinitrd.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-#
-# umount /mnt, which is where the initrd ends up mounted
-# if the directory /initrd is not present, if this fails
-# then the /initrd is mounted and we want to remount that
-# ro - this works round the shutdown -r hang problem
-. /etc/default/functions
-
-case "$(machine)" in
-nslu2)
- ffspart="Flashdisk";;
-*)
- ffspart="filesystem";;
-esac
-
-while read device directory remainder
-do
- case "$directory" in
- /mnt) echo "InitRD: unmount initrd on /mnt" >&2
- umount /mnt;;
- /initrd)# need the device for a remount
- ffsdev="$(mtblockdev $ffspart)"
- [ -n "$ffsdev" ] || \
- ffsdev="$(mtblockdev rootfs)"
- echo "Remounting $ffsdev read-only on /initrd" >&2
- if test -n "$ffsdev" -a -b "$ffsdev"
- then
- mount -o remount,ro "$ffsdev" /initrd
- else
- echo "$ffspart: $ffsdev: flash device not found" >&2
- fi;;
- esac
-done </proc/mounts
diff --git a/packages/slugos-init/files/initscripts/zleds b/packages/slugos-init/files/initscripts/zleds
deleted file mode 100644
index 4c8277a53d..0000000000
--- a/packages/slugos-init/files/initscripts/zleds
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-#
-# This script is executed at the start and end of each run-level
-# transition. It is the first 'stop' script and the last 'start'
-# script.
-#
-# 'stop' indicates the start of a runlevel change
-# 'start' at the end of the runlevel change - we are in the new
-# runlevel.
-#
-# state outputs 'system', 'user' etc according the the nature of
-# the runlevel it is passed (the *new* runlevel is used).
-state(){
- case "$1" in
- S|N) echo system;;
- 0|6) echo shutdown;;
- 1) echo singleuser;;
- 2|3|4|5) echo user;;
- *) echo "led change: $runlevel: runlevel unknown" >&2
- echo system;;
- esac
-}
-
-# trumpet "beeps" an announcement on systems with such support.
-l=120 # Long beep time
-s=40 # Try to keep a 3:1 ratio
-trumpet(){
- case "$1" in
- k) leds beep -l $l; leds beep -l $s; leds beep -l $l;;
- n) leds beep -l $l; leds beep -l $s;;
- *) leds beep;;
- esac
-}
-
-case "$1" in
-start) leds "$(state "$runlevel")"
- if [ "$(state "$runlevel")" == "user" ]; then
- trumpet "k"
- fi
- ;;
-stop) leds boot "$(state "$runlevel")"
- ;;
-*) echo "led change: $1: command ignored" >&2
- ;;
-esac
diff --git a/packages/slugos-init/files/leds b/packages/slugos-init/files/leds
deleted file mode 100644
index b40d5d874e..0000000000
--- a/packages/slugos-init/files/leds
+++ /dev/null
@@ -1,269 +0,0 @@
-#!/bin/sh
-# leds
-#
-# utilities to manipulate the settings of the system leds
-#
-# load the utility functions unless this script is being called
-# just to load its own functions.
-case "$1" in
-leds) ;;
-*) . /etc/default/rcS
- . /etc/default/functions;;
-esac
-
-#
-# led_set led-dir off|on|slow|fast|panic|blink|flash|*
-# set the given LED (expressed as a directory) to the
-# given status.
-#
-led_set(){
- local setting
- # expect led-dir state
- if test -d "$1"
- then
- setting="$2"
- case "$setting" in
- off|on) echo -n none
-
- case "$setting" in
- on) echo -n 255;;
- off) echo -n 0;;
- esac >"$1/brightness";;
-
- slow|fast|panic|blink|flash)
- echo -n timer
-
- case "$setting" in
- flash) echo -n 60;;
- blink) echo -n 540;;
- slow) echo -n 500;;
- fast) echo -n 1500;;
- panic) echo -n 3000;;
- esac >"$1/delay_on"
-
- case "$setting" in
- flash) echo -n 540;;
- blink) echo -n 60;;
- slow) echo -n 500;;
- fast) echo -n 1500;;
- panic) echo -n 3000;;
- esac >"$1/delay_off";;
-
- *) echo -n "$setting";;
- esac >"$1/trigger"
- else
- echo "leds: $1: no such directory" >&2
- return 1
- fi
-}
-
-#
-# sysled [boot] system|user|singleuser|shutdown [error|panic|*]
-# set the system LEDs to indicate the given boot state, the function
-# will temporarily mount sysfs is necessary (using /mnt)
-#
-# the cases for two LEDs (ready+status)
-sysled_readystatus(){
- local ready status
- # expect dir [boot](system|user) [error|panic]
- case "$3" in
- error) ready=fast; status=off;;
- panic) ready=fast; status=fast;;
- *) case "$2" in
- bootsystem) ready=slow; status=slow;;
- system) ready=on; status=on;;
- bootuser) ready=on; status=slow;;
- user) ready=user; status=off;;
- bootsingleuser) ready=on; status=slow;;
- singleuser) ready=user; status=user;;
- bootshutdown) ready=on; status=slow;;
- shutdown) ready=slow; status=on;;
- esac;;
- esac
-
- led_set "$1/$ready_led_name" "$ready"
- led_set "$1/$status_led_name" "$status"
-}
-#
-# the cases for one LED (just ready)
-sysled_ready(){
- local ready
- # expect dir [boot](system|user) [error|panic]
- case "$3" in
- error) ready=fast;;
- panic) ready=panic;;
- *) case "$2" in
- bootsystem) ready=flash;;
- system) ready=blink;;
- bootuser) ready=slow;;
- user) ready=user;;
- bootsingleuser) ready=flash;;
- singleuser) ready=blink;;
- bootshutdown) ready=slow;;
- shutdown) ready=blink;;
- esac;;
- esac
-
- led_set "$1/$ready_led_name" "$ready"
-}
-#
-# the cases for one blue flashing LED (just power)
-sysled_power(){
- local power
- # expect dir [boot](system|user) [error|panic]
- case "$3" in
- error) power=off;;
- panic) power=off;;
- *) case "$2" in
- bootsystem) power=off;; # blinking
- system) power=off;; # blinking
- bootuser) power=on;;
- user) power=on;;
- bootsingleuser) power=off;; # blinking
- singleuser) power=off;; # blinking
- bootshutdown) power=off;; # blinking
- shutdown) power=off;; # blinking
- esac;;
- esac
-
- led_set "$1/$power_led_name" "$power"
-}
-#
-sysled(){
- local mp st boot isst
- mp=/sys
- st=1
- boot=
-
- # validate arguments
- if test "$1" = boot
- then
- shift
- boot=boot
- fi
- case "$1" in
- system|user|singleuser|shutdown) :;;
- *) echo "sysled: unknown option '$1'" >&2
- echo " usage: sysled [boot] system|user|singleuser|shutdown [error|panic|*]" >&2
- return 1;;
- esac
-
- if test ! -d "$mp/class/leds" && mount -t sysfs sysfs /mnt
- then
- mp=/mnt
- fi
- #
- # check for the 'ready' LED - otherwise check for a 'power' LED
- if test -d "$mp/class/leds/$ready_led_name"
- then
- if test -d "$mp/class/leds/$status_led_name"
- then
- sysled_readystatus "$mp/class/leds" $boot"$@"
- else
- sysled_ready "$mp/class/leds" $boot"$@"
- fi
- else
- if test -d "$mp/class/leds/$power_led_name"
- then
- sysled_power "$mp/class/leds" $boot"$@"
- fi
- fi
- #
- # clean up
- test "$mp" = /mnt && umount /mnt
- return "$st"
-}
-
-#
-# beep {arguments}
-# emit a beep
-# does nothing if there is no beep executable, is very
-# quiet in the presence of errors
-beep(){
- local arg devices module
- arg=
- test "$1" = beep && shift
- if test -x /bin/beep
- then
- devices=`ls -d /sys/class/input/event* 2>/dev/null`
- for device in $devices
- do
- module=`egrep PHYSDEVDRIVER $device'/uevent' | cut -d '=' -f 2`
- if test "$module" = "ixp4xx-beeper";
- then
- devnode=`echo "$device" | cut -d '/' -f 5`
- arg="-e /dev/input/"$devnode
- break
- fi
- done
- /bin/beep $arg "$@" 2>/dev/null
- fi
- return 0
-}
-
-#
-# leds_help
-# be helpful
-# leds <led> off|on|slow|fast|panic|blink|flash|user|*
-# leds [boot] system|user|singleuser|shutdown [error|panic|*]
-leds_help(){
- echo "leds: change the setting of the LEDs" >&2
- echo " usage:" >&2
- echo " leds [boot] system|user|singleuser|shutdown [error|panic|*]" >&2
- echo " set leds during system boot to indicate a particular boot" >&2
- echo " state. 'boot' means that the system is transitioning to" >&2
- echo " the new state. 'error' or 'panic' means a (potentially)" >&2
- echo " recoverable error or an unrecoverable error ('panic') has" >&2
- echo " occured." >&2
- echo " <led> off|on|slow|fast|panic|blink|flash" >&2
- echo " set the named led to the given display." >&2
- echo " beep {args}" >&2
- echo " if possible cause the machine to emit a beep" >&2
-}
-
-# Define the LED names based on kernel version.
-version=$(uname -r | cut -c -6)
-if [ "$version" \< "2.6.25" ]; then
- status_led_name="status"
- ready_led_name="ready"
- power_led_name="power"
-else
- case "$(machine)" in
- dsmg600)
- status_led_name="none"
- ready_led_name="none"
- power_led_name="dsmg600:green:power"
- ;;
- fsg3)
- status_led_name="none"
- ready_led_name="fsg:blue:sync"
- power_led_name="none"
- ;;
- nas100d)
- status_led_name="none"
- ready_led_name="none"
- power_led_name="nas100d:blue:power"
- ;;
- nslu2)
- status_led_name="nslu2:red:status"
- ready_led_name="nslu2:green:ready"
- power_led_name="none"
- ;;
- esac
-fi
-
-# the real command, if required
-case "$1" in
-boot|system|user|singleuser|shutdown)
- sysled "$@";;
-
-beep) beep "$@";;
-
-""|-*) leds_help;;
-help) leds_help;;
-
-leds) # just load the functions
- ;;
-
-*) led_set /sys/class/leds/"$@"
-esac
diff --git a/packages/slugos-init/files/links.conf b/packages/slugos-init/files/links.conf
deleted file mode 100644
index fdd1f3ce23..0000000000
--- a/packages/slugos-init/files/links.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file does not exist. Please do not ask the debian maintainer about it.
-# You may use it to do strange and wonderful things, at your risk.
-
-# The new RTC class does not create the /dev/rtc symlink, and udev rules don't get run for built-in modules.
-# So it looks like we have to do this here for the moment, until someone comes up with a better idea ...
-L rtc rtc0
diff --git a/packages/slugos-init/files/modulefunctions b/packages/slugos-init/files/modulefunctions
deleted file mode 100644
index 02bfccb500..0000000000
--- a/packages/slugos-init/files/modulefunctions
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-# . this file to load the functions for automatically loading modules
-# NB: /proc must be mounted for correct evaluation of "$(machine)".
-
-. /etc/default/functions
-
-loaddiskmods(){
- case "$(machine)" in
- nslu2)
- [ -d /sys/module/ehci_hcd ] || modprobe ehci-hcd
- [ -d /sys/module/ohci_hcd ] || modprobe ohci-hcd
- ;;
- nas100d)
- [ -d /sys/module/ehci_hcd ] || modprobe ehci-hcd
- [ -d /sys/module/uhci_hcd ] || modprobe uhci-hcd
- [ -d /sys/module/pata_artop ] || modprobe pata-artop
- ;;
- dsmg600)
- [ -d /sys/module/ehci_hcd ] || modprobe ehci-hcd
- [ -d /sys/module/uhci_hcd ] || modprobe uhci-hcd
- [ -d /sys/module/pata_artop ] || modprobe pata-artop
- ;;
-
- esac
-}
-
-loadnetmods(){
- case "$(machine)" in
- dsmg600)
- [ -d /sys/module/via_velocity ] || modprobe via-velocity
- ;;
- *)
- true
- ;;
- esac
-}
-
-loadnfsmods(){
- [ -d /sys/module/nfs ] || modprobe nfs
-}
-
-loadmiscmods(){
- true
-}
-
diff --git a/packages/slugos-init/files/modutils.txt b/packages/slugos-init/files/modutils.txt
deleted file mode 100644
index a73b480efe..0000000000
--- a/packages/slugos-init/files/modutils.txt
+++ /dev/null
@@ -1 +0,0 @@
-# Adding modules to be automatically loaded via update-modules
diff --git a/packages/slugos-init/files/reflash b/packages/slugos-init/files/reflash
deleted file mode 100644
index 22a18bb068..0000000000
--- a/packages/slugos-init/files/reflash
+++ /dev/null
@@ -1,658 +0,0 @@
-#!/bin/sh
-# reflash
-# ensure the flash disk is not mounted
-# save configuration files
-# update the kernel
-# update the flashdisk
-# restore the saved configuration files
-# the set of configuration files is described by
-# /etc/default/conffiles.
-#
-# /etc/default/functions contains useful utility functions
-. /etc/default/functions
-load_functions sysconf
-#
-# NSLU2 flash layout is non-standard.
-case "$(machine)" in
-nslu2)
- isnslu2=1
- isdsmg600=
- isnas100d=
- imageok=1
- apexpart="Loader"
- usrpart=
- kpart="Kernel"
- ffspart="Flashdisk";;
-nas100d)
- isnslu2=
- isdsmg600=
- isnas100d=1
- imageok=1
- apexpart=
- usrpart="usr"
- kpart="kernel"
- ffspart="filesystem";;
-dsmg600)
- isnslu2=
- isdsmg600=1
- isnas100d=
- imageok=1
- apexpart=
- usrpart="usr"
- kpart="kernel"
- ffspart="filesystem";;
-*)
- isnslu2=
- isdsmg600=
- isnas100d=
- imageok=
- apexpart=
- usrpart=
- kpart="kernel"
- ffspart="filesystem";;
-esac
-#
-# CHECKING FOR INPUT (ARGUMENTS ETC)
-# ----------------------------------
-#
-# find the kernel and the new flash file system, an image file can
-# be used to specify both images.
-ffsfile=
-kfile=
-imgfile=
-preserve_config=1
-while test $# -gt 0
-do
- case "$1" in
- -n) preserve_config=
- shift;;
- -k) shift
- test $# -gt 0 || {
- echo "reflash: -k: give the file containing the kernel image" >&2
- exit 1
- }
- kfile="$1"
- shift;;
- -[jr]) shift
- test $# -gt 0 || {
- echo "reflash: -j: give the file containing the root jffs2 image" >&2
- exit 1
- }
- ffsfile="$1"
- shift;;
- -i) shift
- test -n "$imageok" || {
- echo "reflash: -i: only supported on the LinkSys NSLU2," >&2
- echo " Iomega NAS 100d and D-Link DSM-G600 systems; use -k and -j" >&2
- echo " to specify the kernel and root file system instead." >&2
- exit 1
- }
- test $# -gt 0 || {
- echo "reflash: -i: give the file containing the complete flash image" >&2
- exit 1
- }
- imgfile="$1"
- shift;;
- *) if test -n "$imageok"
- then
- echo "reflash: usage: $0 [-n] [-k kernel] [-j rootfs] [-i image]" >&2
- else
- echo "reflash: usage: $0 [-n] [-k kernel] [-j rootfs]" >&2
- fi
- echo " -n: do not attempt to preserve the configuration" >&2
- echo " -k file: the new compressed kernel image ('zImage')" >&2
- echo " -j file: the new root file system (jffs2)" >&2
- test -n "$imageok" &&
- echo " -i file: a complete flash image (gives both kernel and jffs2)" >&2
- echo " The current jffs2 will be umounted if mounted." >&2
- exit 1;;
- esac
-done
-#
-# Sanity check on the arguments (note that the first case can only fire
-# on NSLU2 or DSM-G600 because of the check for -i above.)
-if test -n "$imgfile" -a -n "$ffsfile" -a -n "$kfile"
-then
- echo "reflash: specify at most two files" >&2
- echo " -i has both a kernel and rootfs, the kernel from -k and" >&2
- echo " the rootfs from -j override the one in the image (if given)" >&2
- exit 1
-elif test -z "$imgfile" -a -z "$ffsfile" -a -z "$kfile"
-then
- echo "reflash: specify at least one file to flash" >&2
- exit 1
-fi
-#
-# Perform basic checks on the input (must exist, size must be ok).
-if test -n "$imgfile"
-then
- if test -r "$imgfile" -a -n "$isnslu2"
- then
- # read the partition table and from this find the offset
- # and size of $kpart and $ffspart partitions. The following
- # devio command just dumps the partition table in a format
- # similar to /proc/mtd (but it outputs decimal values!)
- #NOTE: this uses a here document because this allows the while
- # loop to set the variables, a pipe would put the while in
- # a sub-shell and the variable settings would be lost. This
- # works in ash, no guarantees about other shells!
- while read size base name
- do
- if test "$name" = "$apexpart"
- then
- imgapexsize="$size"
- imgapexoffset="$base"
- elif test "$name" = "$kpart"
- then
- imgksize="$size"
- imgkoffset="$base"
- elif test "$name" = "$ffspart" -o "$name" = "rootfs"
- then
- imgffssize="$size"
- imgffsoffset="$base"
- fi
- done <<EOI
-$(devio "<<$imgfile" '
- <= $ 0x20000 -
- L= 0x1000
- $( 1
- # 0xff byte in name[0] ends the partition table
- $? @ 255 =
- # output size base name
- <= f15+
- .= b 0xfffffff &
- <= f4+
- .= b
- pf "%lu %lu "
- <= f28-
- cp 16
- pn
- <= f240+
- L= L256-
- $) L255>')
-EOI
- # check the result
- test "$imgksize" -gt 0 -a "$imgkoffset" -ge 0 || {
- echo "reflash: $imgfile: failed to find $kpart partition in image" >&2
- exit 1
- }
- # the kernel is after a 16 byte header which holds the
- # values length,0,0,0 Get the true size.
- ktmp="$(devio "<<$imgfile" "L=$imgksize" "O=$imgkoffset" '
- $( OL+$>!
- <= O
- A= b
- $( AL>!
- pr A
- $) 0
- $) 0')"
- test "$ktmp" -gt 0 || {
- echo "reflash: $imgfile($imgkoffset,$imgksize): invalid kernel offset/size" >&2
- exit 1
- }
- # update the size and offset to these values (the offset is 16+ because
- # of the header).
- imgksize="$ktmp"
- imgkoffset="$(devio "O=$imgkoffset" 'pr O16+')"
- # just test the size for the rootfs
- test "$imgffssize" -gt 0 -a "$imgffsoffset" -ge 0 || {
- echo "reflash: $imgfile: failed to find $ffspart" >&2
- exit 1
- }
- elif test -r "$imgfile" -a \( -n "$isdsmg600" -o -n "$isnas100d" \)
- then
- #
- # For the DSM-G600, this is really easy - the image is just
- # a tar file. So, extract the contents of the tar file, and
- # set the kernel and filesystem variables (if not already set)
- # to point to the extracted content. Content will look like:
- #
- # drwxr-xr-x 500/500 0 2006-11-25 23:47:59 firmupgrade
- # -rw-r--r-- 500/500 4718592 2006-12-02 16:32:51 firmupgrade/rootfs.gz
- # -rw-r--r-- 500/500 40 2006-11-25 22:15:41 firmupgrade/version.msg
- # -rw-r--r-- 500/500 0 2006-11-25 23:47:59 firmupgrade/usr.cramfs
- # -rw-rw-r-- 500/500 1306872 2006-12-02 16:33:37 firmupgrade/ip-ramdisk
- #
- # Heuristic: if the size of usr.cramfs is zero, the firmware
- # is not a D-Link firmware for the device. (The version.msg
- # file is not useful for this purpose; it describes the hardware,
- # not the firmware version in the image!)
- #
- # TODO: If usr.cramfs is non-zero, we should flash that, too, just
- # to make sure that it matches the native firmware's kernel
- # and rootfs that we're now flashing back onto the device.
-
- echo "reflash: unpacking DSM-G600/NAS-100d image file" >&2
- tar -x -f "$imgfile" -C /var/tmp || {
- echo "reflash: unable to unpack image file to be flashed" >&2
- exit 1
- }
-
- if test -z "$kfile"
- then
- kfile="/var/tmp/firmupgrade/ip-ramdisk"
- fi
-
- if test -z "$ffsfile"
- then
- ffsfile="/var/tmp/firmupgrade/rootfs.gz"
- fi
-
- if test -s "/var/tmp/firmupgrade/usr.cramfs"
- then
- echo "reflash: Native flash being restored" >&2
- usrfile="/var/tmp/firmupgrade/usr.cramfs"
- preserve_config=
- fi
-
- else
- echo "reflash: $imgfile: image file not found" >&2
- exit 1
- fi
-fi
-if test -n "$kfile"
-then
- if test ! -r "$kfile"
- then
- echo "reflash: $kfile: kernel file not found" >&2
- exit 1
- fi
- # the file values override anything from the image.
- imgksize="$(devio "<<$kfile" 'pr$')"
- imgkoffset=0
-else
- kfile="$imgfile"
-fi
-if test -n "$ffsfile"
-then
- if test ! -r "$ffsfile"
- then
- echo "reflash: $ffsfile: root file system image file not found" >&2
- exit 1
- fi
- # values override those from the image
- imgffssize="$(devio "<<$ffsfile" 'pr$')"
- imgffsoffset=0
-else
- ffsfile="$imgfile"
-fi
-if test -n "$usrfile"
-then
- if test ! -r "$usrfile"
- then
- echo "reflash: $usrfile: usr file system image file not found" >&2
- exit 1
- fi
- # values override those from the image
- imgusrsize="$(devio "<<$usrfile" 'pr$')"
- imgusroffset=0
-else
- usrfile=
-fi
-#
-# INPUTS OK, CHECKING THE ENVIRONMENT
-# -----------------------------------
-# basic setup. This could be parameterised to use different partitions!
-#
-kdev=
-ksize=0
-if test -n "$kfile"
-then
- # we have a new kernel
- kdev="$(mtblockdev $kpart)"
- test -n "$kdev" -a -b "$kdev" || {
- echo "reflash: $kpart($kdev): cannot find $kpart mtd partition." >&2
- echo " check /proc/mtd, either the partition does not exist or there is no" >&2
- echo " corresponding block device." >&2
- exit 1
- }
- ksize="$(devio "<<$kdev" 'pr$')"
- #
- # check the input file size
- test -n "$imgksize" -a "$imgksize" -gt 0 -a "$imgksize" -le "$ksize" || {
- echo "reflash: $kfile: bad $kpart size ($imgksize, max $ksize)" >&2
- exit 1
- }
-fi
-#
-ffsdev=
-ffssize=0
-if test -n "$ffsfile"
-then
- ffsdev="$(mtblockdev $ffspart)"
- [ -n "$ffsdev" ] || \
- ffsdev="$(mtblockdev rootfs)"
- test -n "$ffsdev" -a -b "$ffsdev" || {
- echo "reflash: $ffspart($ffsdev): cannot find $ffspart mtd partition." >&2
- echo " check /proc/mtd, either the partition does not exist or there is no" >&2
- echo " corresponding block device." >&2
- exit 1
- }
- ffssize="$(devio "<<$ffsdev" 'pr$')"
- #
- # check the input file size
- test -n "$imgffssize" -a "$imgffssize" -gt 0 -a "$imgffssize" -le "$ffssize" || {
- echo "reflash: $ffsfile: bad $ffspart size ($imgffsize, max $ffssize)" >&2
- exit 1
- }
-fi
-#
-usrdev=
-usrsize=0
-if test -n "$usrfile"
-then
- usrdev="$(mtblockdev $usrpart)"
- test -n "$usrdev" -a -b "$usrdev" || {
- echo "reflash: $usrpart($usrdev): cannot find $usrpart mtd partition." >&2
- echo " check /proc/mtd, either the partition does not exist or there is no" >&2
- echo " corresponding block device." >&2
- exit 1
- }
- usrsize="$(devio "<<$usrdev" 'pr$')"
- #
- # check the input file size
- test -n "$imgusrsize" -a "$imgusrsize" -gt 0 -a "$imgusrsize" -le "$usrsize" || {
- echo "reflash: $usrfile: bad $usrpart size ($imgusrsize, max $usrsize)" >&2
- exit 1
- }
-fi
-
-#
-# INPUTS OK, ENVIRONMENT OK, UMOUNT ANY EXISTING MOUNT OF THE FLASHDISK
-# ---------------------------------------------------------------------
-# This is only required if the device is going to be used
-if test -n "$ffsdev"
-then
- # -r causes this to fail if the flash device is mounted on /
- umountflash -r "$ffsdev" || exit 1
- #
- # Everything is umounted, now remount on a temporary directory.
- ffsdir="/tmp/flashdisk.$$"
- mkdir "$ffsdir" || {
- echo "reflash: $ffsdir: failed to create temporary directory" >&2
- exit 1
- }
- #
- mountflash "$ffsdev" "$ffsdir" -o ro || {
- rmdir "$ffsdir"
- exit 1
- }
- #
- # this is a utility function to make the cleanup easier
- errorexit() {
- umount "$ffsdir" && rmdir "$ffsdir" ||
- echo "reflash: $ffsdir: temporary directory cleanup failed" >&2
- exit 1
- }
- #
- test -r "$ffsdir/etc/default/conffiles" || {
- echo "reflash: [/initrd]/etc/default/conffiles: file not found" >&2
- errorexit
- }
-else
- errorexit() {
- exit 1
- }
-fi
-#
-# PRESERVE EXISTING CONFIGURATION
-# -------------------------------
-# Only required if the flash partition will be written
-if test -n "$ffsdev" -a -n "$preserve_config"
-then
- echo "reflash: preserving existing configuration file" >&2
- #
- # This step produces /tmp/preserve.$$ and /tmp/cpio.$$, the former is
- # a list of the preserved configuration files together with the processing
- # option, the latter is a directory tree of the preserved files (a directory
- # tree makes the restore step easier.)
- saved=/tmp/cpio.$$
- list=/tmp/preserve.$$
- mkdir "$saved" || {
- echo "reflash: $saved: could not create save directory" >&2
- errorexit
- }
- #
- # sysconf_save_conffiles <flash-directory> <dest> <list>
- sysconf_save_conffiles "$ffsdir" "$saved" "$list" || {
- echo "reflash: $saved: copy of saved configuration files failed" >&2
- rm -rf "$saved"
- rm "$list"
- errorexit
- }
- #
- # If this umount fails do not try to continue...
- umount "$ffsdir" || {
- echo "reflash: $ffsdir: temporary mount point umount failed" >&2
- echo " No changes have been made." >&2
- rm -rf "$saved"
- rm "$list"
- exit 1
- }
-fi
-#
-# FLASH THE NEW IMAGES
-# --------------------
-echo "reflash: about to flash new image" >&2
-#
-# There are four possibilities here - kernel only, flashdisk only, then
-# kernel&flashdisk in either one or two different files. The code used
-# to attempt to do everything in one step, but this complicates it,
-# so two steps are used (as required). A failure between the two
-# steps is a problem, but then so is a failure in a partial write.
-# Write the flashdisk first because this is larger (most likely to
-# fail).
-#
-# -p causes the progress indicator to be displayed
-progress=-p
-do_kernel() {
- local cmd
- if test -n "$isnslu2"
- then
- # NSLU2: write length,0,0,0 header, then fill
- cmd="wb L,4; fb 12,0; cpL"
- else
- # Other: just write the kernel bytes
- cmd="cpL"
- fi
- devio $progress "$@" "<<$kfile" ">>$kdev" '
- # kernel is at imgkoffset[imgksize]
- ' "<= $imgkoffset" "L=$imgksize" "$cmd" '
- # fill with 255
- fb #t-,255'
-}
-#
-do_ffs() {
- devio $progress "$@" "<<$ffsfile" ">>$ffsdev" '
- # rootfs is at imgffsoffset[imgffssize]
- ' "<= $imgffsoffset" "cp $imgffssize" '
- # fill with 255
- fb #t-,255'
-}
-#
-do_usr() {
- devio $progress "$@" "<<$usrfile" ">>$usrdev" '
- # usrfs is at imgusroffset[imgusrsize]
- ' "<= $imgusroffset" "cp $imgusrsize" '
- # fill with 255
- fb #t-,255'
-}
-#
-# check_status $? type file(offset,size) device
-# check the devio status code (given in $1)
-check_status() {
- case "$1" in
- 0) echo " done" >&2;;
- 1) echo " failed" >&2
- echo "reflash: $3: flash $2 failed, no changes have been made to $4" >&2
- if test "$2" = rootfs
- then
- rm -rf "$saved"
- rm "$list"
- exit 1
- else
- echo "reflash: $2: continuing with rootfs changes" >&2
- echo " NOTE: the old kernel is still in $4!" >&2
- fi;;
- 3) echo " failed" >&2
- echo "reflash: $3: WARNING: partial flash of $2 to $4 the system is unbootable" >&2
- echo " Reflash from RedBoot or correct the problem here." >&2
- if test "$2" = rootfs
- then
- exit 3
- else
- echo "reflash: $2: continuing with rootfs changes" >&2
- echo " NOTE: the kernel in $4 must be reflashed!" >&2
- fi;;
- *) echo " failed" >&2
- echo "reflash($1): $3: internal error flashing $2 to $4" >&2
- exit $1;;
- esac
-}
-#
-if test -n "$usrdev"
-then
- echo -n "reflash: writing usrfs to $usrdev " >&2
- do_usr
- check_status $? usrfs "$usrfile($imgusroffset,$imgusrsize)" "$usrdev"
-fi
-#
-if test -n "$ffsdev"
-then
- echo -n "reflash: writing rootfs to $ffsdev " >&2
- do_ffs
- check_status $? rootfs "$ffsfile($imgffsoffset,$imgffssize)" "$ffsdev"
-fi
-#
-if test -n "$kdev"
-then
- echo -n "reflash: writing kernel to $kdev " >&2
- do_kernel
- check_status $? kernel "$kfile($imgkoffset,$imgksize)" "$kdev"
-fi
-#
-# verify - this just produces a warning
-if test -n "$usrdev"
-then
- echo -n "reflash: verifying new usr image " >&2
- if do_usr -v
- then
- echo " done" >&2
- else
- echo " failed" >&2
- echo "reflash: WARNING: usrfs flash image verification failed" >&2
- echo " The system is may be bootable." >&2
- fi
-fi
-#
-if test -n "$ffsdev"
-then
- echo -n "reflash: verifying new flash image " >&2
- if do_ffs -v
- then
- echo " done" >&2
- else
- echo " failed" >&2
- echo "reflash: WARNING: rootfs flash image verification failed" >&2
- echo " The system is probably unbootable." >&2
- echo " System configuration files will be restored but this may fail" >&2
- echo " Starting a shell for user recovery (exit to continue)" >&2
- PS1='badflash$ ' sh -i <>/dev/tty >&0 2>&0
- fi
-fi
-#
-if test -n "$kdev"
-then
- echo -n "reflash: verifying new kernel image " >&2
- if do_kernel -v
- then
- echo " done" >&2
- else
- echo " failed" >&2
- echo "reflash: WARNING: kernel flash image verification failed" >&2
- echo " The system is probably unbootable." >&2
- echo " System configuration files will be restored in the rootfs." >&2
- fi
-fi
-#
-# RESTORE THE OLD CONFIGURATION
-# -----------------------------
-# If not write the rootfs none of the following is required - exit now.
-test -n "$ffsdev" -a -n "$preserve_config" || exit 0
-#
-echo "reflash: restoring saved configuration files" >&2
-#
-# the file /etc/.configured is the datestamp file used to ensure that
-# changed configuration files can be recognised. It is created by
-# /etc/rcS.d/S99finish on first boot (if it does not exist). We need
-# a timestamp earlier than any files we create so touch it here, this
-# also acts as a test on the mounted file system
-mountflash "$ffsdev" "$ffsdir" && :>"$ffsdir/etc/.configured" || {
- rmdir "$ffsdir"
- echo "reflash: mount of new flash root file system failed" >&2
- if test -d "$ffsdir/etc"
- then
- echo " The file system does not seem to be writeable." >&2
- echo " The mounted file system is in $ffsdir" >&2
- fi
- echo " WARNING: the kernel and root file system have been reflashed," >&2
- echo " HOWEVER the new root file system seems to be unuseable." >&2
- echo " Saved configuration files are in $saved" >&2
- echo " The list of saved configuration files is in $list" >&2
- echo " You should determine the reason for the failed mount, mount the new" >&2
- echo " file system and restore the configuration from $saved - it's just a" >&2
- echo " matter of copying the saved files where required." >&2
- exit 1
-}
-#
-# sysconf_restore_conffiles <flash-directory> <source-dir> <restore>
-restore="/tmp/restore.$$"
-sysconf_restore_conffiles "$ffsdir" "$saved" "$restore" <"$list" || {
- echo "reflash: $saved: restore of saved configuration files failed" >&2
- echo " The new flash file system is mounted on $ffsdir" >&2
- echo " The saved files are in $saved and the list in $list, the list of" >&2
- echo " files selected for restore is in $restore" >&2
- echo " You should restore any required configuration from $saved," >&2
- echo " then umount $ffsdir and reboot." >&2
- exit 1
-}
-#
-# remove the copied files (i.e. the ones which were preserved)
-( cd "$saved"
- exec rm $(cat "$restore")
-)
-rm "$restore"
-#
-# clean up, files left in $saved need to be handled by the user
-files="$(find "$saved" ! -type d -print)"
-if test -n "$files"
-then
- echo "reflash: the following saved configuration files remain:" >&2
- echo "$files" >&2
- echo "The full list of preserved files is in $list. To alter the" >&2
- echo "new root file system use the command:" >&2
- echo "" >&2
- echo " mount -t jffs2 $ffsdev /mnt" >&2
- echo "" >&2
- echo "The saved files are in the temporary directory, they will not" >&2
- echo "be retained across a system boot. Copy them elsewhere if you" >&2
- echo "are unsure whether they are needed" >&2
-else
- rm -rf "$saved"
- rm "$list"
-fi
-#
-# now the final umount
-if umount "$ffsdir"
-then
- rmdir "$ffsdir"
- echo "reflash: system upgrade complete. Reboot to continue." >&2
- exit 0
-else
- echo "reflash: $ffsdir: temporary mount point umount failed" >&2
- echo " ALL changes have been made successfully, however the umount of" >&2
- echo " the new root file system has failed. You should determine the" >&2
- echo " cause of the failure, umount $ffsdir, then reboot the system (this" >&2
- echo " will use the upgraded kernel and root file system)" >&2
- exit 1
-fi
diff --git a/packages/slugos-init/files/setup-optware.sh b/packages/slugos-init/files/setup-optware.sh
deleted file mode 100644
index d4ae619491..0000000000
--- a/packages/slugos-init/files/setup-optware.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-if test 0 != `id -u`; then
- echo 'Please run as root'
- exit 1
-fi
-
-optware_target=slugos5be
-feed=http://ipkg.nslu2-linux.org/feeds/optware/${optware_target}/cross/unstable
-latest_xsh=`wget -q -O- ${feed} | grep '\.xsh' | sed -e 's/.*xsh">//' -e 's/<.*//'`
-
-if test -n "${latest_xsh}"; then
- cd /tmp
- rm -f ${latest_xsh}
- wget ${feed}/${latest_xsh}
- sh ${latest_xsh}
-fi
diff --git a/packages/slugos-init/files/sysconf b/packages/slugos-init/files/sysconf
deleted file mode 100644
index 8d59d5d6f3..0000000000
--- a/packages/slugos-init/files/sysconf
+++ /dev/null
@@ -1,796 +0,0 @@
-#!/bin/sh
-# sysconf
-#
-# utility to manipulate system configuration information help
-# in a RedBoot SysConf partition
-#
-# load the utility functions (unless this is being called just
-# to load these functions!)
-test "$1" != sysconf && . /etc/default/functions
-
-case "$(machine)" in
-nslu2)
- kpart="Kernel"
- syspart="SysConf"
- ffspart="Flashdisk";;
-*)
- kpart="kernel"
- syspart="sysconfig"
- ffspart="filesystem";;
-esac
-#
-# sysconf_valid
-# return true if the SysConf partition exists and seems to be
-# potentially valid (it starts with a reasonable length).
-sysconf_valid(){
- local sysdev
- sysdev="$(mtblockdev $syspart)"
- test -n "$sysdev" -a -b "$sysdev" &&
- devio "<<$sysdev" '!! b.10>s32768<&!'
-}
-
-#
-# sysconf_read [prefix]
-# read the $syspart partition (if present) writing the result into
-# /etc/default/sysconf, if the result is empty it will be removed.
-sysconf_read(){
- local sysdev sedcmd mac config_root
- config_root="$1"
- rm -f /tmp/sysconf.new
- sysdev="$(mtblockdev $syspart)"
- if sysconf_valid
- then
- # Read the defined part of $syspart into /etc/default/sysconf.
- # $syspart has lines of two forms:
- #
- # [section]
- # name=value
- #
- # In practice $syspart also contains other stuff, use the command:
- #
- # devio '<</dev/mtd1;cpb'
- #
- # to examine the current settings. The badly formatted stuff
- # is removed (to be exact, the sed script selects only lines
- # which match one of the two above). The lan interface, which
- # on NSLU2 defaults to ixp0, is changed to the correct value for
- # slugos, eth0. The bootproto, which LinkSys sets to static in
- # manufacturing, is reset to dhcp if the IP is still the
- # original (192.168.1.77)
- sedcmd='/^\[[^][]*\]$/p;'
- # only do the ip_addr and lan_interface fixups on NSLU2
- if test "$(machine)" = nslu2
- then
- sedcmd="$sedcmd"'
- s/^lan_interface=ixp0$/lan_interface=eth0/;
- /^ip_addr=192\.168\.1\.77$/,/^bootproto/s/^bootproto=static$/bootproto=dhcp/;'
- fi
- # always fix up the hardware addr if it is present
- mac="$(config mac)"
- if test -n "$mac"
- then
- sedcmd="$sedcmd"'
- s/^hw_addr=.*$/hw_addr='"$mac"'/;'
- fi
- # and only print lines of the correct form
- sedcmd="$sedcmd"'
- /^[-a-zA-Z0-9_][-a-zA-Z0-9_]*=/p'
-
- devio "<<$sysdev" cpb fb1,10 | sed -n "$sedcmd" >/tmp/sysconf.new
- fi
- #
- # test the result - sysconf must be non-empty
- if test -s /tmp/sysconf.new
- then
- mv /tmp/sysconf.new "$config_root/etc/default/sysconf"
- else
- rm -f /tmp/sysconf.new
- return 1
- fi
-}
-
-#
-# sysconf_default [prefix]
-# Provde a default /etc/default/sysconf when there is no $syspart partition,
-# or when it is invalid, this function will read from an existing sysconf,
-# copying the values into the new one.
-# sysconf_line tag config-tag
-# write an appropriate line if the config value is non-empty
-sysconf_line(){
- config "$2" | {
- local value
- read value
- test -n "$value" && echo "$1"="$value"
- }
-}
-#
-sysconf_default(){
- local config_root
- config_root="$1"
- { echo '[network]'
- sysconf_line hw_addr mac
- sysconf_line disk_server_name host
- sysconf_line w_d_name domain
- sysconf_line lan_interface iface
- sysconf_line ip_addr ip
- sysconf_line netmask netmask
- sysconf_line gateway gateway
- sysconf_line dns_server1 dns
- sysconf_line dns_server2 dns2
- sysconf_line dns_server3 dns3
- sysconf_line bootproto boot
- } >/tmp/sysconf.new
- mv /tmp/sysconf.new "$config_root/etc/default/sysconf"
-}
-
-#
-# sysconf_reload [prefix]
-# read the values from /etc/default/sysconf and use these values to set
-# up the following system files:
-#
-# /etc/hostname
-# /etc/defaultdomain
-# /etc/resolv.conf
-# /etc/network/interfaces
-# /etc/motd
-#
-sysconf_reload(){
- local config_root host domain iface boot ip netmask gateway ifname iftype
- config_root="$1"
- host="$(config host)"
- test -n "$host" && echo "$host" >"$config_root/etc/hostname"
- domain="$(config domain)"
- test -n "$domain" && echo "$domain" >"$config_root/etc/defaultdomain"
- #
- # The DNS server information gives up to three nameservers,
- # but this currently only binds in the first.
- {
- test -n "$domain" && echo "search $domain"
- test -n "$(config dns)" && echo "nameserver $(config dns)"
- test -n "$(config dns2)" && echo "nameserver $(config dns2)"
- test -n "$(config dns3)" && echo "nameserver $(config dns3)"
- } >"$config_root/etc/resolv.conf"
- #
- # Ethernet information. This goes into /etc/network/interfaces,
- # however this is only used for static setup (and this is not
- # the default). With dhcp the slugos udhcp script,
- # /etc/udhcpc.d/50default, loads the values from sysconf.
- iface="$(config iface)"
- boot="$(config boot)"
- # Only dhcp and static are supported at present - bootp
- # support requires installation of appropriate packages
- # dhcp is the fail-safe
- case "$boot" in
- dhcp|static) ;;
- *) boot=dhcp;;
- esac
- #
- ip="$(config ip)"
- netmask="$(config netmask)"
- gateway="$(config gateway)"
- {
- echo "# /etc/network/interfaces"
- echo "# configuration file for ifup(8), ifdown(8)"
- echo "#"
- echo "# The loopback interface"
- echo "auto lo"
- echo "iface lo inet loopback"
- echo "#"
- echo "# The interface used by default during boot"
- echo "auto $iface"
- echo "# Automatically generated from /etc/default/sysconf"
- echo "# address, netmask and gateway are ignored for 'dhcp'"
- echo "# but required for 'static'"
- echo "iface $iface inet $boot"
- # The following are ignored for DHCP but are harmless
- test -n "$ip" && echo " address $ip"
- test -n "$netmask" && echo " netmask $netmask"
- test -n "$gateway" && echo " gateway $gateway"
- #
- # Now read all the other ARPHRD_ETHER (type=1) interfaces
- # and add an entry for each.
- for ifname in $(test -d /sys/class/net && ls /sys/class/net)
- do
- if test -r "/sys/class/net/$ifname/type" -a "$ifname" != "$iface"
- then
- read iftype <"/sys/class/net/$ifname/type"
- case "$iftype" in
- 1) echo "#"
- echo "# /sys/class/net/$ifname:"
- echo "auto $ifname"
- echo "iface $ifname inet dhcp";;
- esac
- fi
- done
- } >"$config_root/etc/network/interfaces"
- #
- # Finally rewrite /etc/motd
- { echo "Host name: $host"
- echo "Domain name: $domain"
- echo "Host MAC: $(config mac)"
- echo "Network boot method: $boot"
- case "$boot" in
- static) echo "Host IP address: $ip";;
- esac
- echo "Use 'turnup init' to reset the configuration"
- echo "Use 'turnup preserve' to save the configuration permanently"
- echo "Use 'turnup restore' to restore a previously saved configuration"
- echo "Use 'turnup disk|nfs -i <device> options to initialise a non-flash root"
- echo "Use 'turnup help' for more information"
- } >"$config_root/etc/motd"
-}
-
-#
-# sysconf_save_conffiles <flash-directory> <dest> <list>
-# preserve the configuration files in a directory or in a CPIO archive
-# (which is *not* compressed). If <dest> is a directory the files are
-# copied, otherwise a CPIO archive is made with that name. <list> is
-# the listing file giving the preserved files and the processing option.
-sysconf_save_conffiles(){
- local ffsdir dest list file
- ffsdir="$1"
- saved="$2"
- list="$3"
- test -n "$ffsdir" -a -r "$ffsdir/etc/default/conffiles" -a -n "$saved" -a -n "$list" || {
- echo "sysconf_save_conffiles: invalid arguments: '$*'" >&2
- echo " usage sysconf_save_conffiles <flash-directory> <dest> <list>" >&2
- return 1
- }
- #
- ( cd "$ffsdir"
- find etc/*.conf $(sed 's!^/!!' usr/lib/opkg/info/*.conffiles) ! -type d -newer etc/.configured -print |
- sed 's/^/diff /'
- exec sed 's/#.*$//;/^[ ]*$/d' etc/default/conffiles
- ) | sed 's!^/*!!' |
- awk '{ op=$1; $1=""; file[$0]=op }
- END{ for (f in file) if (file[f] != "ignore") print file[f] f }' |
- while read op file
- do
- if test -e "$ffsdir/$file"
- then
- echo "$op $file" >&3
- echo "$file"
- fi
- done 3>"$list" | (
- cd "$ffsdir"
- if test -d "$saved"
- then
- exec cpio -p -d -m -u "$saved"
- else
- exec cpio -o -H crc >"$saved"
- fi
- )
-}
-
-#
-# sysconf_verify file
-# this is called with the name of a 'diff' file which is, indeed,
-# different and with all the std streams connected to the tty. It
-# returns a status code to say whether (0) or not (1) to copy the
-# file over.
-#
-# globals: the following must be defined in the calling context!
-# saved: the directory containing the unpacked saved files
-# ffsdir: the flash directory to which the files are being restored (/)
-#
-sysconf_verify_help() {
- echo "Please specify how to handle this file or link, the options are as follows,"
- echo "two character abbreviations may be used:"
- echo
- echo " keep: retain the old file, overwrite the new flash image file"
- echo " upgrade: retain the new file, the old (saved) file is not used"
- echo " diff: display the differences between the old and the new using diff -u"
- echo " shell: temporarily start an interactive shell (sh -i), exit to continue"
- echo " skip: ignore this file for the moment. The file is left in the directory"
- echo " $saved and many be handled after this script has completed"
-}
-#
-sysconf_verify() {
- local command file
-
- # return 1 here causes the file not to be overwritten,
- # control should never get here!
- test -n "$sysconf_noninteractive" && {
- echo "$0: $*: changed file cannot be handled non-interactively" >&2
- return 1
- }
-
- file="$1"
- echo "$0: $file: configuration file changed."
- sysconf_verify_help "$file"
- while :
- do
- echo -n "option: "
- read command
- case "$command" in
- ke*) return 0;;
- up*) rm "$saved/$file"
- return 1;;
- di*) echo "DIFF OLD($saved) NEW($ffsdir)"
- diff -u "$saved/$file" "$ffsdir/$file";;
- sh*) PS1="$file: " sh -i;;
- sk*) return 1;;
- *) sysconf_verify_help "$file";;
- esac
- done
-}
-# the same, but for a link
-sysconf_verify_link() {
- local command link
-
- # return 1 here causes the file not to be overwritten,
- # control should never get here!
- test -n "$sysconf_noninteractive" && {
- echo "$0: $*: changed link cannot be handled non-interactively" >&2
- return 1
- }
-
- link="$1"
- echo "reflash: $link: configuration link changed."
- sysconf_verify_help "$link"
- while :
- do
- echo -n "option: "
- read command
- case "$command" in
- ke*) return 0;;
- up*) rm "$saved/$link"
- return 1;;
- di*) echo "DIFF:"
- echo "OLD($saved): $link -> $(readlink "$saved/$link")"
- echo "NEW($ffsdir): $link -> $(readlink "$ffsdir/$link")";;
- sh*) PS1="$link: " sh -i;;
- sk*) return 1;;
- *) sysconf_verify_help "$link";;
- esac
- done
-}
-
-#
-# sysconf_restore_conffiles <flash-directory> <source-dir> <restore>
-# restore the configuration files from a directory. 'source-dir'
-# If <source> is a directory of files from sysconf_save_conffiles. The
-# list of files restored is written to the third argument (restore),
-# but is not required (/dev/null would be ok).
-#
-# the list of files to restore is read from stdin, along with the
-# processing option for each file (the format is as produced by
-# sysconf_save_conffiles in the 'list' output).
-sysconf_restore_conffiles(){
- local ffsdir saved restore
- # these are the globals used by the above function
- ffsdir="$1"
- saved="$2"
- restore="$3"
- test -n "$ffsdir" -a -r "$ffsdir/etc/default/conffiles" -a -d "$saved" -a -n "$restore" || {
- echo "restore_conffiles: invalid arguments: '$*'" >&2
- echo " usage sysconf_restore_conffiles <flash-directory> <source-dir> <list>" >&2
- return 1
- }
- #
- # read the list and process each given file
- while read op file
- do
- # handle .configured specially (to preserve the original datestamp)
- if test "$file" = "etc/.configured"
- then
- # this should definately not fail because of the test above!
- if cp -a "$saved/$file" "$ffsdir/$file"
- then
- echo "$file" >&3
- else
- echo "sysconf_restore_conffiles: $file: timestamp copy failed (ignored)" >&2
- fi
- elif test -h "$saved/$file" -o -h "$ffsdir/$file"
- then
- # new or old symbolic link
- if test -h "$saved/$file" -a -h "$ffsdir/$file" &&
- test "$(readlink "$saved/$file")" = "$(readlink "$ffsdir/$file")"
- then
- # no change
- echo "$file" >&3
- else
- # assume a change regardless
- case "$op" in
- preserve)
- echo "$file"
- echo "$file" >&3;;
- diff) # need user input
- if sysconf_verify_link "$file" </dev/tty >/dev/tty 2>&1
- then
- echo "$file"
- echo "$file" >&3
- fi;;
- esac
- fi
- else
- # only overwrite if necessary
- if test -e "$ffsdir/$file" && cmp -s "$saved/$file" "$ffsdir/$file"
- then
- # do not overwrite
- echo "$file" >&3
- elif test ! -e "$ffsdir/$file"
- then
- # always preserve
- echo "$file"
- echo "$file" >&3
- else
- case "$op" in
- preserve)
- echo "$file"
- echo "$file" >&3;;
- diff) # the files are different, get user input
- if sysconf_verify "$file" </dev/tty >/dev/tty 2>&1
- then
- echo "$file"
- echo "$file" >&3
- fi;;
- esac
- fi
- fi
- done 3>"$restore" | (cd "$saved"; exec cpio -p -d -u "$ffsdir")
-}
-
-#
-# sysconf_test_restore <flash-directory> <source-dir>
-# return true only if the restore does not need to do an interactive
-# compare
-sysconf_test_restore(){
- local ffsdir saved
- # these are the globals used by the above function
- ffsdir="$1"
- saved="$2"
- # this is an error case, but return 0 so that the error is
- # detected later
- test -n "$ffsdir" -a -r "$ffsdir/etc/default/conffiles" -a -d "$saved" ||
- return 0
- #
- # read the list and check each diff file (this is just a copy of the
- # logic above with all the work removed!)
- while read op file
- do
- # handle .configured specially (to preserve the original datestamp)
- if test "$op" != diff
- then
- : # no diff required
- elif test "$file" = "etc/.configured"
- then
- : # special handling
- elif test -h "$saved/$file" -o -h "$ffsdir/$file"
- then
- # new or old symbolic link
- if test -h "$saved/$file" -a -h "$ffsdir/$file" &&
- test "$(readlink "$saved/$file")" = "$(readlink "$ffsdir/$file")"
- then
- : # no change
- else
- # assume a change regardless
- return 1
- fi
- else
- # only overwrite if necessary
- if test -e "$ffsdir/$file" && cmp -s "$saved/$file" "$ffsdir/$file"
- then
- : # do not overwrite
- elif test ! -e "$ffsdir/$file"
- then
- : # always preserve
- else
- # a change
- return 1
- fi
- fi
- done
-
- return 0
-}
-
-#
-# sysconf_save
-# save the system configuration to $syspart - $syspart must exist and
-# there must be a writeable device for it.
-sysconf_save(){
- local sysdev ffsdev ffsdir saved list size status
- ffsdev="$(mtblockdev $ffspart)"
- [ -n "$ffsdev" ] || \
- ffsdev="$(mtblockdev rootfs)"
- sysdev="$(mtblockdev $syspart)"
- status=1
- if test -n "$sysdev" -a -b "$sysdev" -a -n "$ffsdev" -a -b "$ffsdev"
- then
- # this will succeed silently if the flash device is on /
- umountflash "$ffsdev" || exit 1
- #
- # Everything is umounted, now remount on a temporary directory.
- ffsdir="/tmp/flashdisk.$$"
- mkdir "$ffsdir" || {
- echo "$0: $ffsdir: failed to create temporary directory" >&2
- exit 1
- }
- #
- mountflash "$ffsdev" "$ffsdir" -o ro || {
- rmdir "$ffsdir"
- exit 1
- }
- # need temporary files for the cpio output and the listing
- saved=/tmp/cpio.$$
- list=/tmp/preserve.$$
- rm -rf "$saved" "$list"
- sysconf_save_conffiles "$ffsdir" "$saved" "$list" || {
- echo "$0: $saved: archive of saved configuration files failed" >&2
- rm -rf "$saved"
- rm "$list"
- umount "$ffsdir" && rmdir "$ffsdir" ||
- echo "$0: $ffsdir: temporary directory cleanup failed" >&2
- return 1
- }
- # ignore the error in this case:
- umount "$ffsdir" && rmdir "$ffsdir" ||
- echo "$0: $ffsdir: temporary directory cleanup failed" >&2
- #
- # we now have:
- # /etc/default/sysconf the basic config
- # /tmp/preserve.$$ the list of saved files
- # /tmp/cpio.$$ the CPIO archive of those files
- #
- # make one big file with the sysconf data followed by the
- # compressed archive in /tmp/sysconf.$$
- { { cat /etc/default/sysconf
- echo '[preserve]'
- } | sed -n '1,/^\[preserve\]^/p'
- while read op file
- do
- echo "$op"="$file"
- done <"$list"
- } >/tmp/sysconf.$$
- size="$(devio "<</tmp/sysconf.$$" 'pr$')"
- gzip -9 <"$saved" >>/tmp/sysconf.$$
- #
- # more cleanup, then try to write the new sysconf to $syspart
- # the format is a 4 byte big-endian length then the text data
- # if the data won't fit exit with error code 7
- rm "$saved" "$list"
- devio -p "<</tmp/sysconf.$$" ">>$sysdev" '
- $( $4+ # >
- !! 7
- $) 0
- wb '"$size"',4
- cp $'
- case $? in
- 0) echo " done" >&2
- status=0;;
- 1) echo " failed" >&2
- echo " $syspart could not be written (no changes made)" >&2;;
- 3) echo " failed" >&2
- echo " $syspart partially written, you may want to reset it" >&2;;
- 7) echo " failed" >&2
- echo " $syspart is too small: $size bytes required" >&2
- echo " No change made" >&2;;
- *) echo " failed" >&2
- echo " Internal error writing $syspart" >&2;;
- esac
- #
- rm -f /tmp/sysconf.$$
- else
- echo "sysconf save: $syspart or $ffspart partition not found" >&2
- echo " A RedBoot partition named '$syspart' must exist in the system" >&2
- echo " flash memory for this command to work, and there must be a" >&2
- echo " block device to access this partition (udev will normally" >&2
- echo " create this automatically. The flash partition contents must" >&2
- echo " also be accessible in a partition called '$ffspart'" >&2
- echo
- echo " To create the $syspart partition use the 'fis create' command" >&2
- echo " in the RedBoot boot loader, it is sufficient to make the" >&2
- echo " partition one erase block in size unless you have substantially" >&2
- echo " increased the size of the files listed in /etc/default/conffiles" >&2
- fi
-
- return $status
-}
-
-#
-# sysconf_restore [auto]
-# restore previously saved configuration information from $syspart
-sysconf_restore_error(){
- local root
- root="$1"
- shift
- # -------------------------------------------------------------------------------
- { echo " WARNING: saved configuration files not restored"
- test -n "$1" && echo "$*"
- echo
- echo "The configuration of this machine has been reinitialised using the values"
- echo "from /etc/default/sysconf, however configuration files saved in the $syspart"
- echo "partition have not been restored."
- echo
- echo "You can restore these files by correcting any reported errors then running"
- echo
- echo " sysconf restore"
- echo
- echo "from the command line. This will completely reinitialise the configuration"
- echo "using the information in the $syspart partition."
- } >"$root/etc/motd"
- cat "$root/etc/motd" >&2
-}
-#
-sysconf_restore(){
- local sysdev ffsdev ffsdir saved restore size status sysconf_noninteractive config_root
-
- # if set this means 'do no diff' - this avoids the code above which
- # would open /dev/tty and therefore allows this stuff to be done from
- # an init script
- sysconf_noninteractive=
- test "$1" = auto && sysconf_noninteractive=1
-
- ffsdev="$(mtblockdev $ffspart)"
- [ -n "$ffsdev" ] || \
- ffsdev="$(mtblockdev rootfs)"
- sysdev="$(mtblockdev $syspart)"
- status=1
- if test -n "$sysdev" -a -b "$sysdev" -a -n "$ffsdev" -a -b "$ffsdev" &&
- sysconf_valid
- then
- # this will succeed silently if the flash device is on /
- umountflash "$ffsdev" || exit 1
- #
- # Everything is umounted, now remount on a temporary directory.
- ffsdir="/tmp/flashdisk.$$"
- config_root="$ffsdir"
- mkdir "$ffsdir" || {
- echo "$0: $ffsdir: failed to create temporary directory" >&2
- exit 1
- }
- #
- mountflash "$ffsdev" "$ffsdir" || {
- rmdir "$ffsdir"
- exit 1
- }
- #
- # first restore the $syspart section
- sysconf_read "$ffsdir" || sysconf_default "$ffsdir"
- #
- # now use this to regenerate the system files
- sysconf_reload "$ffsdir"
- #
- # now examine the [preserve] section, if it is there restore
- # it if possible.
- if test -n "$(syssection preserve)"
- then
- # 'saved' is a directory, 'restore' is a file (which is
- # used to detect unrestored files). The directory needs
- # to be populated with files.
- saved=/tmp/cpio.$$
- restore=/tmp/restore.$$
- rm -rf "$saved" "$restore"
- #
- mkdir "$saved" || {
- sysconf_restore_error "$ffsdir" "$saved: failed to create temporary directory"
- umount "$ffsdir" && rmdir "$ffsdir" ||
- echo "$0: $ffsdir: temporary directory cleanup failed" >&2
- return 1
- }
- #
- # the CPIO archive is gzip compressed after the text part
- # of sysconf, gzip will handle the LZ stream termination
- # correctly (and break the pipe) so we don't need to know
- # the real length of the data
- devio "<<$sysdev" '<=b4+.' 'cp $s-' | gunzip | (
- cd "$saved"
- exec cpio -i -d -m -u
- ) || {
- rm -rf "$saved"
- sysconf_restore_error "$ffsdir" "$saved: cpio -i failed"
- umount "$ffsdir" && rmdir "$ffsdir" ||
- echo "$0: $ffsdir: temporary directory cleanup failed" >&2
- return 1
- }
- # either there must be no 'diff' files or it must
- # be possible to interact with a real user.
- if test -z "$sysconf_noninteractive" ||
- syssection preserve | sysconf_test_restore "$ffsdir" "$saved"
- then
- #
- # remove the 'init' motd from sysconf_reload
- rm "$ffsdir/etc/motd"
- #
- # now restore from the directory, using the information in
- # the preserve section, if this fails in a non-interactive
- # setting the system might not reboot
- syssection preserve |
- sysconf_restore_conffiles "$ffsdir" "$saved" "$restore" || {
- # there is a chance of the user cleaning this up
-#------------------------------------------------------------------------------
- sysconf_restore_error "$ffsdir" \
-"$0: $saved: restore of saved configuration files failed.
- The flash file system is mounted on $ffsdir.
- The saved files are in $saved and the list of files selected for
- restore is in $restore.
- You should restore any required configuration from $saved, then umount
- $ffsdir and reboot."
- # this prevents cleanup/umount
- return 1
- }
- #
- # remove the copied files (i.e. the ones which were preserved)
- ( cd "$saved"
- exec rm $(cat "$restore")
- )
- rm "$restore"
- #
- # clean up, files left in $saved need to be handled by the user
- files="$(find "$saved" ! -type d -print)"
- if test -n "$files"
- then
-#------------------------------------------------------------------------------
- sysconf_restore_error "$ffsdir" \
-"$0: some saved configuration files have not been handled:
-
-$files
-
-These files can be examined in $saved and restored to
-$ffsdir if required. The saved files are in a temporary
-directory and will not be retained across a reboot - copy then elsewhere if
-you are unsure whether they are needed."
- return 1
- fi
- #
- # so this is safe now (no files, links etc)
- rm -rf "$saved"
- else
- rm -rf "$saved"
- # non-interactive and some changed diff files
- sysconf_restore_error "$ffsdir" \
-"$0: some of the saved configuration files must be
-examined before restoration"
- # but continue to the umount
- fi
- fi
- #
- # ignore the error in this case:
- umount "$ffsdir" && rmdir "$ffsdir" ||
- echo "$0: $ffsdir: temporary directory cleanup failed" >&2
- status=0
- else
- echo "sysconf restore: $syspart or $ffspart partition not found" >&2
- echo " You must have used 'sysconf save' to save configuration data" >&2
- echo " into the $syspart partition before using this command. The command" >&2
- echo " will restore the configuration data to the flash root partition" >&2
- echo " named '$ffspart' - this must also be accessible." >&2
- fi
-
- return $status
-}
-
-#
-# sysconf_help
-# help text
-sysconf_help(){
- # -------------------------------------------------------------------------------
- echo "sysconf: usage: sysconf read|default|reload|save|restore" >&2
- echo " read: the current $syspart partition is read into /etc/default/sysconf" >&2
- echo " default: a default /etc/default/sysconf is created" >&2
- echo " reload: system configuration files are recreated from /etc/default/sysconf" >&2
- echo " save: /etc/default/sysconf and the files listed in /etc/default/conffiles" >&2
- echo " are written to the $syspart partition" >&2
- echo " restore: the configuration information in the $syspart partition saved by" >&2
- echo " 'sysconf save' is restored" >&2
-}
-
-#
-# the real commands
-sysconf_command="$1"
-test $# -gt 0 && shift
-case "$sysconf_command" in
-read) sysconf_read "$@";;
-default)sysconf_default "$@";;
-reload) sysconf_reload "$@";;
-save) sysconf_save "$@";;
-restore)sysconf_restore "$@";;
-valid) sysconf_valid "$@";;
-
-sysconf)# just load the functions
- ;;
-
-*) # help text
- sysconf_help "$@";;
-esac
diff --git a/packages/slugos-init/files/turnup b/packages/slugos-init/files/turnup
deleted file mode 100644
index 118a57d808..0000000000
--- a/packages/slugos-init/files/turnup
+++ /dev/null
@@ -1,965 +0,0 @@
-#!/bin/sh
-# turnup
-# See the help block at the end for documentation.
-#
-. /etc/default/functions
-
-#
-# configuration
-# The following variables control which directories in /var end
-# up on the rootfs and which end up in a temporary file system.
-INRAM_MEMSTICK="\
-### SlugOS from-memory-stick boot.
-d root root 0755 /var/backups none
-d root root 0755 /var/volatile/cache none
-l root root 0755 /var/cache /var/volatile/cache
-d root root 0755 /var/lib none
-d root root 2755 /var/local none
-d root root 1777 /var/volatile/lock none
-l root root 1777 /var/lock /var/volatile/lock
-d root root 0755 /var/volatile/log none
-l root root 0755 /var/log /var/volatile/log
-d root root 0755 /var/volatile/run none
-l root root 0755 /var/run /var/volatile/run
-d root root 0755 /var/spool none
-d root root 1777 /var/volatile/tmp none
-l root root 1777 /var/tmp /var/volatile/tmp
-d root root 0755 /var/lock/subsys none
-d root root 0755 /var/lib/dropbear none
-d root root 0755 /var/lib/misc none
-f root root 0664 /var/log/wtmp none
-f root root 0664 /var/log/lastlog none
-f root root 0664 /var/run/utmp none"
-
-INRAM_NFS="\
-### SlugOS from-NFS boot.
-d root root 0755 /var/backups none
-d root root 0755 /var/volatile/cache none
-l root root 0755 /var/cache /var/volatile/cache
-d root root 0755 /var/lib none
-d root root 2755 /var/local none
-d root root 1777 /var/volatile/lock none
-l root root 1777 /var/lock /var/volatile/lock
-d root root 0755 /var/log none
-d root root 0755 /var/volatile/run none
-l root root 0755 /var/run /var/volatile/run
-d root root 0755 /var/spool none
-d root root 1777 /var/volatile/tmp none
-l root root 1777 /var/tmp /var/volatile/tmp
-d root root 0755 /var/lock/subsys none
-d root root 0755 /var/lib/dropbear none
-d root root 0755 /var/lib/misc none
-d root root 0755 /var/lib/opkg none
-f root root 0664 /var/log/wtmp none
-f root root 0664 /var/log/lastlog none
-f root root 0664 /var/run/utmp none"
-
-INRAM_DISK="\
-### SlugOS from-disk boot.
-d root root 0755 /var/backups none
-d root root 0755 /var/cache none
-d root root 0755 /var/lib none
-d root root 2755 /var/local none
-d root root 1777 /var/lock none
-d root root 0755 /var/log none
-d root root 0755 /var/run none
-d root root 0755 /var/spool none
-d root root 1777 /var/tmp none
-d root root 0755 /var/lock/subsys none
-d root root 0755 /var/lib/dropbear none
-d root root 0755 /var/lib/misc none
-d root root 0755 /var/lib/opkg none
-f root root 0664 /var/log/wtmp none
-f root root 0664 /var/log/lastlog none
-f root root 0664 /var/run/utmp none"
-
-INRAM_HEADER="\
-# This configuration file lists filesystem objects that should get verified
-# during startup and be created if missing.
-#
-# Every line must either be a comment starting with #
-# or a definition of format:
-# <type> <owner> <group> <mode> <path> <linksource>
-# where the items are separated by whitespace !
-#
-# <type> : d|f|l : (d)irectory|(f)ile|(l)ink
-#
-# A linking example:
-# l root root 0777 /var/test /tmp/testfile
-# f root root 0644 /var/test none
-#
-# Understanding links:
-# When populate-volatile is to verify/create a directory or file, it will first
-# check it's existence. If a link is found to exist in the place of the target,
-# the path of the target is replaced with the target the link points to.
-# Thus, if a link is in the place to be verified, the object will be created
-# in the place the link points to instead.
-# This explains the order of \"link before object\" as in the example above, where
-# a link will be created at /var/test pointing to /tmp/testfile and due to this
-# link the file defined as /var/test will actually be created as /tmp/testfile.
-#"
-
-#
-# force: override certain checks
-force=
-
-#
-# pfile: the uuid/partition file
-pfile=/etc/uuid_by_partition
-
-#
-# fstype new
-# The type of the file system mounted on "new" Outputs the last
-# piece of information found, which should be the one for the
-# currently visible mount!
-fstype() {
- local cwd dev mp type options pass freq result
- cwd="$(cd "$1"; /bin/pwd)"
- result=
- while read dev mp type options pass freq
- do
- case "$mp" in
- "$cwd") result="$type";;
- esac
- done </proc/mounts
- echo "$result"
-}
-
-#
-# fsoptions arguments
-# Collapses the mount (-o) options into a single list which is
-# printed on stdout. Accepts an arbitrary list of options and
-# just joins them together.
-fsoptions() {
- local options
- options=
- while test $# -gt 1
- do
- case "$1" in
- -t) shift;;
- -o) if test -n "$2"
- then
- if test -n "$options"
- then
- options="$options,$2"
- else
- options="$2"
- fi
- fi
- shift;;
- esac
- shift
- done
- if test -n "$options"
- then
- echo "$options"
- else
- echo defaults
- fi
-}
-
-#
-# get_flash <directory> {mount options}
-# mount the flash device, writeable, on the given directory
-get_flash() {
- local ffsdir ffspart ffsdev
-
- ffsdir="$1"
- shift
- test -n "$ffsdir" -a -d "$ffsdir" || {
- echo "$0: $ffsdir: internal error, flash mount point not a directory" >&2
- return 1
- }
-
- case "$(machine)" in
- nslu2) ffspart="Flashdisk";;
- *) ffspart="filesystem";;
- esac
- ffsdev="$(mtblockdev $ffspart)"
- [ -n "$ffsdev" ] || \
- ffsdev="$(mtblockdev rootfs)"
- umountflash "$ffsdev" &&
- mountflash "$ffsdev" "$ffsdir" "$@"
-}
-
-#
-# check_rootfs [-i] <root fs directory>
-# Make sure the candidate rootfs is empty
-# Environment: rootdev=device or NFS root path
-check_rootfs() {
- local fcount
-
- case "$1" in
- -i) shift
- case "$force" in
- -f) return 0;;
- esac
-
- fcount="$(find "$1" ! -type d -print | wc -l)"
- test "$fcount" -eq 0 && return 0
-
- echo "turnup: $rootdev: partition contains existing files, specify -f to overwrite" >&2
- return 1;;
- *) checkmount "$1" && return 0
-
- echo "turnup: $rootdev: partition does not seem to be a valid root partition" >&2
- echo " The partition must contain a full operating system. To ensure that" >&2
- echo " this is the case it is checked for the following, all of which must" >&2
- echo " exist for the bootstrap to work:" >&2
- echo
- echo " 1) A directory /mnt." >&2
- echo " 2) A command line interpreter program in /bin/sh." >&2
- echo " 3) The program chroot in /sbin or /usr/sbin." >&2
- echo " 4) The program init in /sbin, /etc or /bin." >&2
- echo
- echo " One or more of these items is missing. Mount $rootdev on /mnt" >&2
- echo " and examine its contents. You can use turnup disk|nfs -i -f" >&2
- echo " to copy this operating system onto the disk, but it may overwrite" >&2
- echo " files on the disk." >&2
- return 1;;
- esac
-}
-
-#
-# copy_rootfs old new
-# Make a copy of the given root file system, copying only the
-# directories needed. The root must be the flash file system
-copy_rootfs() {
- local old new
- old="$1"
- new="$2"
- test -d "$old" -a -d "$new" || {
- echo "turnup: rootfs: copy $old $new: not a directory" >&2
- return 1
- }
- #
- # There are no problem file names in the flash file system, so
- # it is possible to use -print, not -print0. The following
- # files and directories are not copied:
- #
- # /dev/*
- # /boot, /boot/*
- # /linuxrc*
- # /var/*
- echo "turnup: copying root file system" >&2
- ( cd "$1"
- find . -xdev -print |
- sed '\@^./dev/@d;\@^./boot/@d;\@^./boot$@d;\@^./linuxrc@d;\@^./var/@d' |
- cpio -p -d -m -u "$2"
- ) || {
- echo "turnup: rootfs: cpio $old $new failed" >&2
- return 1
- }
- echo "done" >&2
-}
-
-#
-# setup_dev new device_table
-# In flash file systems /dev is in ramfs, in disk systems /dev
-# can be populated permanently. This is done by creating a
-# single entry '.noram' in /dev - the devices init script will
-# then populate the directory without overmounting it. The
-# devices in the passed in device table are also created, but
-# note that this is insufficient, /etc/init.d/devices must
-# also run.
-setup_dev() {
- test -n "$1" -a -d "$1"/dev -a -r "$2" || {
- echo "turnup: setup_dev($1,$2): expected a directory and a file" >&2
- return 1
- }
- echo "turnup: initialising dev file system" >&2
- # init tries to open the following devices:
- # /dev/console
- # /dev/tty0
- # /dev/null
- # syslog, and maybe other things, only work if fd 1 is valid, therefore
- # we must create these devices here...
- # (if makedevs is a symlink, it's the busybox version, different syntax)
- if [ -h /sbin/makedevs ]
- then
- makedevs -d "$2" "$1"
- else
- makedevs --root="$1" --devtable="$2"
- fi
- :>"$1"/dev/.noram
- return 0
-}
-
-#
-# setup_bootdev new device_table
-# As above but actually uses the supplied device table - this is possible if
-# the table is just used for boot because the extra setup is not required.
-setup_bootdev() {
- test -n "$1" -a -d "$1"/dev -a -r "$2" || {
- echo "turnup: setup_bootdev($1,$2): expected a directory and a file" >&2
- return 1
- }
- # NOTE: this fails silently with 0 return code(!) when a directory
- # does not exist yet things are created within it.
- # (if makedevs is a symlink, it's the busybox version, different syntax)
- if [ -h /sbin/makedevs ]
- then
- makedevs -d "$2" "$1"
- else
- makedevs -r "$1" -D "$2"
- fi
-}
-
-#
-# setup_var new type
-# Populates /var.
-# Removes the /var tmpfs entry from /etc/fstab.
-# Creates links from /var into /media/ram for NFS and Memstick.
-setup_var() {
-
- test -n "$1" -a -d "$1"/var || {
- echo "turnup: setup_var($1,$2): expected a directory" >&2
- return 1
- }
- case "$2" in
- disk|nfs|memstick);;
- *) echo "turnup: setup_var($1,$2): expected 'disk', 'nfs' or 'memstick'" >&2
- return 1;;
- esac
-
- # populate /var. We just need to create the /var/volatile mount
- # point, the populate-volatile script does the work at boot time.
- #QUIET: echo "turnup: ensuring /var/volatile mountpoint exists" >&2
- test -d "$1"/var/volatile || mkdir "$1"/var/volatile
-
- # we need to put in place the correct configuration file for
- # the populate-volatile script to use at boot time. The config
- # file is already in place for the flash boot, and it's the same
- # file for the ram boot.
- case "$2" in
- disk) echo "$INRAM_HEADER" > "$1"/etc/default/volatiles/00_core
- echo "$INRAM_DISK" >>"$1"/etc/default/volatiles/00_core;;
- nfs) echo "$INRAM_HEADER" > "$1"/etc/default/volatiles/00_core
- echo "$INRAM_NFS" >>"$1"/etc/default/volatiles/00_core;;
- memstick) echo "$INRAM_HEADER" > "$1"/etc/default/volatiles/00_core
- echo "$INRAM_MEMSTICK" >>"$1"/etc/default/volatiles/00_core;;
- esac
-
- # remove the /var tmpfs entry from the new /etc/fstab, if it is
- # present in the first place.
- sed -i '\@[ ]/var[ ][ ]*tmpfs[ ]@d' "$1"/etc/fstab
- #QUIET: echo "turnup: ensuring tmpfs will not be mounted on /var" >&2
- #
- return 0
-}
-
-#
-# setup_syslog new
-# Moves the syslog to a file - appropriate for disk and nfs types, not
-# otherwise.
-setup_syslog() {
- test -n "$1" -a -d "$1"/etc || {
- echo "turnup: setup_syslog($1): expected a directory" >&2
- return 1
- }
- #
- # if the syslog is to the buffer redirect it to a file
- if egrep -q '^DESTINATION="buffer"' "$1"/etc/syslog.conf
- then
- if cp "$1"/etc/syslog.conf "$1"/etc/syslog.conf.sav
- then
- # the busybox syslog will fail with ROTATESIZE and ROTATEGENS
- sed -i 's!DESTINATION="buffer"!DESTINATION="file"!
- /^ROTATESIZE=/d
- /^ROTATEGENS=/d' "$1"/etc/syslog.conf
- #QUIET: echo "turnup: /etc/syslog.conf: changed to file buffering" >&2
- #QUIET: echo " Old (buffer) version in /etc/syslog.conf.sav" >&2
- #QUIET: echo " Log messages will be in /var/log/messages" >&2
- else
- echo "turnup: /etc/syslog.conf: failed to make a copy" >&2
- echo " syslog will log to a buffer" >&2
- fi
- fi
- return 0
-}
-
-#
-# setup_rootfs type new device_table
-# Populates the /dev and /var directories, alters the startup to
-# not mount or populate them further. Does the right thing according
-# to the given $type
-setup_rootfs() {
- local type new table
- type="$1"
- new="$2"
- table="$3"
-
- test -n "$new" -a -d "$new" -a -f "$table" || {
- echo "turnup: setup_rootfs($type,$new,$table): expected a directory and a file" >&2
- return 1
- }
-
- case "$type" in
- flash) return 0;;
- disk) setup_dev "$new" "$table" &&
- setup_var "$new" "$type" &&
- setup_syslog "$new";;
- memstick)
- setup_bootdev "$new" "$table" &&
- setup_var "$new" "$type" ;;
- nfs) setup_dev "$new" "$table" &&
- setup_var "$new" "$type" &&
- setup_syslog "$new";;
- *) echo "turnup: setup_rootfs: $type: unknown rootfs type" >&2
- return 1;;
- esac
- # return code of last setup function
-}
-
-#
-# setup_fstab new fsdev fstype fsoptions
-# Alters the /etc/fstab entry for / to refer to the correct device and
-# have the correct type and options. Essential for checkroot to remount
-# / with the correct options. Writes the initial uuid file.
-# bad, since sed won't fail even if it changes nothing.
-setup_fstab() {
- sed -i '\@^[^ ]*[ ][ ]*/[ ]@s@^.*$@'"$2 / $3 $4 1 1"'@' "$1"/etc/fstab
- egrep -q "^$2 / $3 $4 1 1\$" "$1"/etc/fstab || {
- echo "turnup: /etc/fstab: root(/) entry not changed" >&2
- echo " you probably need to check the options in /etc/fstab" >&2
- echo " to ensure that the root partition is mounted correctly" >&2
- return 1
- }
- #
- # build $pfile
- uuid_by_partition >"$1""$pfile" ||
- echo "turnup: $pfile: blkid failed (ignored)" >&2
- return 0
-}
-
-#
-# boot_rootfs <boot type> <flash file system> <sleep time> (<device> <uuid>|<nfsroot>) [options]
-# Change the flash partition (not the current root!) to boot off
-# the new root file system
-boot_rootfs() {
- local type ffs sleep device uuid opt
-
- type="$1"
- ffs="$2"
- sleep="$3"
- device="$4"
- uuid=
- mduuid=
-
- # test this first as the test does not depend on the correctness
- # of the other arguments
- test -n "$ffs" -a -d "$ffs" || {
- echo "turnup: boot_rootfs($type, $ffs, $device): expected directory" >&2
- return 1
- }
- test -x "$ffs"/boot/"$type" || {
- echo "turnup: boot_rootfs($type, $ffs, $device): invalid boot type $type" >&2
- return 1
- }
- shift
- shift
-
- case "$type" in
- disk) test -n "$device" -a -b "$device" || {
- echo "turnup: boot_rootfs($ffs, $type, $device): expected block device" >&2
- return 1
- }
- uuid="$3"
- if (echo "$device" | grep -q '^/dev/md')
- then
- # FIXME: should use awk to do the below extraction
- mduuid=`mdadm --detail --brief "$device" | sed 's/^.*UUID=//'`
- fi
- shift 3;;
- nfs) shift 2;;
- flash) ;;
- ram) ;;
- *) echo "turnup: boot_rootfs($type, $ffs, $device): unknown type" >&2
- return 1;;
- esac
-
- #
- # The /linuxrc records the correct options to mount the device,
- # since we have already mounted if correctly with these options
- # we can be sure (maybe) that the boot will work. If not /boot/disk
- # falls back to flash.
- #
- # This modifies the boot process, until this point no harm has been
- # done to the system, but at this point the boot rootfs will change
- rm -f "$ffs"/linuxrc.new || {
- echo "turnup: boot_rootfs: failed to remove $ffs/linuxrc.new" >&2
- return 1
- }
- case "$type" in
- flash) ln -s "boot/flash" "$ffs"/linuxrc.new || {
- echo "turnup: boot_rootfs: failed to create $ffs/linuxrc.new" >&2
- return 1
- };;
- ram) { echo '#!/bin/sh'
- echo 'mount -t proc proc /proc'
- echo 'mount -t sysfs sysfs /sys'
- echo 'leds beep'
- echo 'rm -f /linuxrc.new'
- echo 'ln -s boot/flash /linuxrc.new'
- echo 'mv /linuxrc.new /linuxrc'
- echo 'exec /boot/ram /dev/ram0'
- echo 'exec /boot/flash'
- } >"$ffs"/linuxrc.new &&
- chmod 744 "$ffs"/linuxrc.new || {
- echo "turnup: boot_rootfs: failed to write $ffs/linuxrc.new" >&2
- return 1
- };;
- *) { echo '#!/bin/sh'
- echo 'mount -t proc proc /proc'
- echo 'mount -t sysfs sysfs /sys'
- echo 'leds beep'
- test "$sleep" -gt 0 && echo -n "sleep='$sleep' "
- test -n "$uuid" && echo -n "UUID='$uuid' "
- test -n "$mduuid" && echo -n "MDUUID='$mduuid' "
- echo -n "exec '/boot/$type' '$device'"
- for opt in "$@"
- do
- echo -n " '$opt'"
- done
- echo
- echo 'exec /boot/flash'
- } >"$ffs"/linuxrc.new &&
- chmod 744 "$ffs"/linuxrc.new || {
- echo "turnup: boot_rootfs: failed to write $ffs/linuxrc.new" >&2
- return 1
- };;
- esac
- rm -f "$ffs"/linuxrc.sav || {
- echo "turnup: boot_rootfs: failed to remove $ffs/linuxrc.sav" >&2
- return 1
- }
- ln "$ffs"/linuxrc "$ffs"/linuxrc.sav || {
- echo "turnup: boot_rootfs: failed to save /linuxrc.sav" >&2
- return 1
- }
- mv -f "$ffs"/linuxrc.new "$ffs"/linuxrc || {
- echo "turnup: boot_rootfs: failed to install new /linuxrc" >&2
- return 1
- }
- return 0
-}
-
-#
-# disk [-m] [-i] [-s<time>] <device> {options}
-# Carefully copy the flash file system to the named device.
-disk() {
- local setup_type sleep init device uuid new ffs fst fso
-
- setup_type=disk
- sleep=10
- init=
- while test $# -gt 0
- do
- case "$1" in
- -f) force="$1"
- shift;;
- -m) setup_type=memstick
- shift;;
- -i) init="$1"
- shift;;
- -s*) sleep="${1#-s}"
- sleep="${sleep:-10}"
- shift;;
- *) break;;
- esac
- done
-
- device="$1"
- test -n "$device" -a -b "$device" || {
- echo "turnup disk: $device: block device required" >&2
- return 1
- }
- shift
-
- # find the uuid if available
- uuid="$(blkid -c /dev/null -s UUID -o value "$device")"
-
- # make temporary directories for the mount points
- new="/tmp/rootfs.$$"
- ffs="/tmp/flashdisk.$$"
- mkdir "$new" "$ffs" || {
- echo "turnup: disk: failed to create temporary directories" >&2
- return 1
- }
-
- # make sure we can get to the flash file system first
- get_flash "$ffs" || {
- rmdir "$new" "$ffs"
- return 1
- }
-
- # Now mount the device with the given options, note that specifying
- # read only is *not* an option, this is important because the boot/disk
- # script needs a rw file system
- status=1
- fst=
- fso="$(fsoptions "$@")"
- if if test -n "$uuid"
- then
- mount "$@" UUID="$uuid" "$new"
- else
- mount "$@" "$device" "$new"
- fi
- then
- fst="$(fstype "$new")"
- umount "$new" ||
- echo "turnup disk: $device($new): umount does not seem to work" >&2
- fi
-
- if test -n "$fst" &&
- if test -n "$uuid"
- then
- mount -t "$fst" -o "$fso" UUID="$uuid" "$new"
- else
- mount -t "$fst" -o "$fso" "$device" "$new"
- fi
- then
- if rootdev="$device" check_rootfs $init "$new" && {
- test -z "$init" || {
- copy_rootfs "$ffs" "$new" &&
- setup_rootfs "$setup_type" "$new" "$ffs"/etc/device_table
- }
- }
- then
- setup_fstab "$new" "$device" "$fst" "$fso"
- status=0
- fi
-
- # clean up the disk. It is worrying if this umount fails!
- umount "$new" || test "$force" = "-f" || {
- echo "turnup disk: $device: umount failed" >&2
- echo " you must unmount this device cleanly yourself, then use" >&2
- if test -z "$init"
- then
- echo " turnup with the -f option to boot from the device" >&2
- else
- echo " turnup without the -i option to boot from the device" >&2
- fi
- status=1
- }
-
- # if everything went ok boot from this disk
- if test $status -eq 0
- then
- # memsticks boot like disks, so ignore the -m
- boot_rootfs disk "$ffs" "$sleep" "$device" "$uuid" -t "$fst" -o "$fso"
- fi
- else
- echo "turnup disk: $device($*): unable to mount device on $new" >&2
- # If it worked first time
- if test -n "$fst"
- then
- echo " options used: -t $fst -o $fso [error in this script]" >&2
- test -n "$uuid" &&
- echo " uuid: $uuid (passed with UUID=<uuid>)" >&2
- fi
- fi
-
- # clean up the flash file system
- umount "$ffs"
- rmdir "$new" "$ffs"
- return $status
-}
-
-#
-# boot_reset <type>
-# Resets the boot type to flash or ram, as appropriate
-boot_reset() {
- local ffs typ status
-
- case "$1" in
- flash|ram)type="$1"
- shift;;
- *) echo "turnup: boot_reset($1): invalid type" >&2
- return 1;;
- esac
-
- ffs="/tmp/flashdisk.$$"
- mkdir "$ffs" || {
- echo "turnup: $1: failed to create temporary directory" >&2
- return 1
- }
-
- get_flash "$ffs" || {
- rmdir "$ffs"
- return 1
- }
-
- # now try to set the /linuxrc appropriately
- boot_rootfs "$type" "$ffs"
- status=$?
-
- # clean up
- umount "$ffs"
- rmdir "$ffs"
- return $status
-}
-
-#
-# nfs [-i] <root partition> {options}
-# Copy the flash file system to the given NFS root partition.
-nfs() {
- local init nfsroot new ffs
-
- init=
- while test $# -gt 0
- do
- case "$1" in
- -i) init="$1"
- shift;;
- -f) force="$1"
- shift;;
- *) break;;
- esac
- done
-
- nfsroot="$1"
- test -n "$nfsroot" || {
- echo "turnup nfs: $nfsroot: NFS root file system required" >&2
- return 1
- }
- shift
-
- # make temporary directories for the mount points
- new="/tmp/rootfs.$$"
- ffs="/tmp/flashdisk.$$"
- mkdir "$new" "$ffs" || {
- echo "turnup nfs: failed to create temporary directories" >&2
- return 1
- }
-
- # make sure we can get to the flash file system first
- get_flash "$ffs" || {
- rmdir "$new" "$ffs"
- return 1
- }
-
- # Now mount the device with the given options, note that specifying
- # read only is *not* an option, this is important because the boot/disk
- # script needs a rw file system
- status=1
- fst=
- # These settings for for NFS, something better will probably have to
- # be done to support other network file systems.
- nfsopt="nolock,noatime,hard,intr,rsize=1024,wsize=1024"
- fso="$(fsoptions -o "$nfsopt" "$@")"
- if mount -o "$nfsopt" "$@" "$nfsroot" "$new"
- then
- fst="$(fstype "$new")"
- umount "$new" ||
- echo "turnup nfs: $nfsroot($new): umount does not seem to work" >&2
- fi
-
- if test -n "$fst" && mount -t "$fst" -o "$fso" "$nfsroot" "$new"
- then
- if :>"$new"/ttt && test -O "$new"/ttt && rm "$new"/ttt
- then
- if rootdev="$nfsroot" check_rootfs $init "$new" && {
- test -z "$init" || {
- copy_rootfs "$ffs" "$new" &&
- setup_rootfs nfs "$new" "$ffs"/etc/device_table
- }
- }
- then
- setup_fstab "$new" "$nfsroot" "$fst" "$fso"
- status=0
- fi
- else
- echo "turnup nfs: $nfsroot: partition must be exported no_root_squash" >&2
- fi
-
- # clean up the disk. It is worrying if this umount fails!
- umount "$new" || test "$force" = "-f" || {
- echo "turnup nfs: $nfsroot: umount failed" >&2
- if test $status -eq 0
- then
- echo " you must unmount this partition cleanly yourself, then use" >&2
- if test -z "$init"
- then
- echo " turnup with the -f option to boot from the NFS root" >&2
- else
- echo " turnup without the -i option to boot from the NFS root" >&2
- fi
- status=1
- fi
- }
-
- # if everything went ok boot from this disk
- if test $status -eq 0
- then
- # the options used are exactly those which worked before.
- boot_rootfs nfs "$ffs" 0 "$nfsroot" -t nfs -o "$fso"
- fi
- else
- echo "turnup nfs: $nfsroot($*): unable to mount device on $new" >&2
- # If it worked first time
- if test -n "$fst"
- then
- echo " options obtained: -t $fst -o $fso" >&2
- fi
- fi
-
- # clean up the flash file system
- umount "$ffs"
- rmdir "$new" "$ffs"
- return $status
-}
-
-#
-# read_one 'prompt' 'group' 'name'
-# read a single value
-read_one() {
- local n o
- o="$(sysval "$2" "$3")"
- echo -n "$1 [$o]: " >/dev/tty
- read n </dev/tty
- test -z "$n" && n="$o"
- eval "$3='$n'"
-}
-
-#
-# init_network
-# Change the network initialisation
-init_network() {
- # fix the root password
- echo "Please enter a new password for 'root'." >/dev/tty
- echo "The password must be non-empty for ssh login to succeed!" >/dev/tty
- passwd
- # now the network configuration
- read_one "Host name" network disk_server_name
- read_one "Domain name" network w_d_name
- read_one "Boot protocol (dhcp|static)" network bootproto
- case "$bootproto" in
- static) read_one "IP address" network ip_addr
- read_one "IP netmask" network netmask
- read_one "IP gateway" network gateway
- read_one "First DNS server" network dns_server1
- read_one "Second DNS server" network dns_server2
- read_one "Third DNS server" network dns_server3
- echo "$ip_addr $disk_server_name" >> /etc/hosts
- ;;
- dhcp) sed -i -e "s/localhost\$/localhost $disk_server_name/" /etc/hosts
- ;;
- *) bootproto=dhcp;;
- esac
- #
- # The other stuff which cannot be changed
- hw_addr="$(config mac)"
- lan_interface="$(config iface)"
- #
- # Write this out to a new sysconf
- { echo "[network]"
- echo "hw_addr=$hw_addr"
- echo "lan_interface=$lan_interface"
- test -n "$disk_server_name" && echo "disk_server_name=$disk_server_name"
- test -n "$w_d_name" && echo "w_d_name=$w_d_name"
- echo "bootproto=$bootproto"
- case "$bootproto" in
- static) echo "ip_addr=$ip_addr"
- test -n "$netmask" && echo "netmask=$netmask"
- test -n "$gateway" && echo "gateway=$gateway"
- test -n "$dns_server1" && echo "dns_server1=$dns_server1"
- test -n "$dns_server2" && echo "dns_server2=$dns_server2"
- test -n "$dns_server3" && echo "dns_server3=$dns_server3"
- ;;
- esac
- } >/etc/default/sysconf
- #
- # And reload the result
- sysconf reload
- #
- # The remove the spurious 'init' motd
- rm /etc/motd
-}
-
-#
-# Basic command switch (this should be the only thing in this
-# script which actually does anything!)
-case "$1" in
-init) shift
- if init_network "$@"
- then
- echo "turnup init: you must reboot for the changes to take effect" >&2
- echo " You may want to run 'turnup preserve' to save these settings," >&2
- echo " after making any additional configuration changes which you" >&2
- echo " require." >&2
- else
- exit 1
- fi;;
-disk) shift
- disk "$@";;
-memstick)
- shift
- disk -m "$@" -o noatime;;
-nfs) shift
- nfs "$@";;
-flash) boot_reset flash;;
-ram) boot_reset ram;;
-preserve)
- shift
- sysconf save "$@";;
-restore)
- shift
- sysconf restore "$@";;
-*) echo "\
-usage: turnup command [options]
- commands:
- help
- output this help
- init
- correct errors in network information
- initialise network information when DHCP is not available
- change network information
- disk [-i] [-s<seconds>] <device>|<uuid> [mount options]
- With -i make <device> a bootable file system then (with or
- without -i) arrange for the next reboot to use that device.
- The device must already be formatted as a file system, with
- -i it must be completely empty, without it must contain an
- apparently bootable file system. -s (for example -s5)
- specifies a delay in seconds to wait at boot time before
- mounting the device.
- memstick [-i] <device>|<uuid> [mount options]
- Behaves as disk however options appropriate to a flash memory
- stick are automatically added
- nfs [-i] <nfs mount path> [mount options]
- <nfs mount path> must be a mountable NFS file system. With
- -i the partition must be empty and is initialised with a
- bootable file system. Without -i the partition must already
- contain a bootable file system. In either case the NFS
- partition must be available to be mounted without root id
- sqashing (i.e. root must be root) and it will be selected
- as the root file system for subsequent reboots.
- A default set of -o options are provided, additional options
- may be given on the command line (multiple -o options will
- be combined into a single -o).
- flash
- Revert to booting from the flash disk on next reboot.
- ram
- Boot (once) into a ramdisk, subsequent boots will be to
- the flash file system.
- preserve
- Save the system configuration to the SysConf partition, you
- will need to create the SysConf partition from the boot loader
- before using this if SysConf does not already exist. This
- just runs 'sysconf save'.
- restore
- Restore a previously saved system configuration. This just
- runs 'sysconf restore'.
- disk formatting:
- The argument to 'nfs' or 'disk' must be an empty partition
- of sufficient size to hold the root file system (at least
- 16MByte but more is recommended to allow package installation).
- An appropriate ext3 partition can be made using the command:
-
- mke2fs -j <device> # for example: /dev/sda1
-
- An appropriate NFS partition can be emptied using 'rm', but
- must be set up (exported) on the NFS server." >&2
- exit 0;;
-esac
-# Exit with return code from command.
diff --git a/packages/slugos-init/files/usb b/packages/slugos-init/files/usb
deleted file mode 100644
index b641113137..0000000000
--- a/packages/slugos-init/files/usb
+++ /dev/null
@@ -1,2 +0,0 @@
-install uhci-hcd /sbin/modprobe ehci-hcd ; /sbin/modprobe -i uhci-hcd
-install ohci-hcd /sbin/modprobe ehci-hcd ; /sbin/modprobe -i ohci-hcd
diff --git a/packages/slugos-init/slugos-init_0.10.bb b/packages/slugos-init/slugos-init_0.10.bb
deleted file mode 100644
index 2523e2e703..0000000000
--- a/packages/slugos-init/slugos-init_0.10.bb
+++ /dev/null
@@ -1,149 +0,0 @@
-DESCRIPTION = "SlugOS initial network config via sysconf"
-SECTION = "base"
-PRIORITY = "required"
-LICENSE = "GPL"
-DEPENDS = "base-files devio"
-RDEPENDS = "busybox devio"
-PR = "r90"
-
-SRC_URI = "file://boot/flash \
- file://boot/disk \
- file://boot/nfs \
- file://boot/ram \
- file://boot/kexec \
- file://boot/network \
- file://boot/udhcpc.script \
- file://initscripts/fixfstab \
- file://initscripts/syslog.buffer \
- file://initscripts/syslog.file \
- file://initscripts/syslog.network \
- file://initscripts/zleds \
- file://initscripts/leds_startup \
- file://initscripts/rmrecovery \
- file://initscripts/sysconfsetup \
- file://initscripts/umountinitrd.sh \
- file://initscripts/loadmodules.sh \
- file://functions \
- file://modulefunctions \
- file://conffiles \
- file://sysconf \
- file://leds \
- file://turnup \
- file://reflash \
- "
-
-SBINPROGS = ""
-USRSBINPROGS = ""
-CPROGS = "${USRSBINPROGS} ${SBINPROGS}"
-SCRIPTS = "turnup reflash leds sysconf"
-BOOTSCRIPTS = "flash disk nfs ram kexec network udhcpc.script"
-INITSCRIPTS = "syslog.buffer syslog.file syslog.network zleds\
- leds_startup rmrecovery sysconfsetup umountinitrd.sh\
- fixfstab loadmodules.sh"
-
-# This just makes things easier...
-S="${WORKDIR}"
-
-do_compile() {
- set -ex
- for p in ${CPROGS}
- do
- ${CC} ${CFLAGS} -o $p $p.c
- done
- set +ex
-}
-
-do_install() {
- set -ex
-
- # Directories
- install -d ${D}${sysconfdir} \
- ${D}${sysconfdir}/default \
- ${D}${sysconfdir}/init.d \
- ${D}${sysconfdir}/modutils \
- ${D}${sysconfdir}/udev \
- ${D}${sbindir} \
- ${D}${base_sbindir} \
- ${D}/initrd \
- ${D}/boot
-
- # linuxrc
- rm -f ${D}/linuxrc
- ln -s boot/flash ${D}/linuxrc
-
- # C programs
- for p in ${USRSBINPROGS}
- do
- install -m 0755 $p ${D}${sbindir}/$p
- done
- for p in ${SBINPROGS}
- do
- install -m 0755 $p ${D}${base_sbindir}/$p
- done
-
- # Shell scripts
- for p in ${SCRIPTS}
- do
- install -m 0755 $p ${D}${base_sbindir}/$p
- done
-
- #
- # Init scripts
- install -m 0644 functions ${D}${sysconfdir}/default
- install -m 0644 modulefunctions ${D}${sysconfdir}/default
- for s in ${INITSCRIPTS}
- do
- install -m 0755 initscripts/$s ${D}${sysconfdir}/init.d/
- done
-
- #
- # Boot scripts
- for p in ${BOOTSCRIPTS}
- do
- install -m 0755 boot/$p ${D}/boot
- done
-
- # Configuration files
- install -m 0644 conffiles ${D}${sysconfdir}/default
-
- set +ex
-}
-
-# If the package is installed on an NSLU2 $D will be empty, in that
-# case it is normal to run 'start' and 'stop', but because the conf
-# files installed don't actually start or stop anything this is
-# unnecessary, so the package postfoo handling is simplified here.
-#NB: do not use '08' (etc) for the first argument after start/stop,
-# the value is interpreted as an octal number if there is a leading
-# zero.
-pkg_postinst_slugos-init() {
- opt=
- test -n "$D" && opt="-r $D"
- update-rc.d $opt hwclock.sh start 8 S . start 45 0 6 .
- update-rc.d $opt umountinitrd.sh start 9 S .
- update-rc.d $opt fixfstab start 10 S .
- update-rc.d $opt syslog.buffer start 11 S . start 49 0 6 .
- update-rc.d $opt sysconfsetup start 12 S .
- update-rc.d $opt loadmodules.sh start 21 S .
- update-rc.d $opt syslog.file start 39 S . start 47 0 6 .
- update-rc.d $opt syslog.network start 44 S . start 39 0 6 .
- update-rc.d $opt zleds start 99 S 1 2 3 4 5 . start 89 0 6 . stop 5 0 1 2 3 4 5 6 .
- update-rc.d $opt rmrecovery start 99 1 2 3 4 5 .
- # bug fix for startup
- update-rc.d $opt leds_startup start 1 1 2 3 4 5 .
-}
-
-pkg_postrm_slugos-init() {
- opt=
- test -n "$D" && opt="-r $D"
- for s in ${INITSCRIPTS}
- do
- update-rc.d $opt "$s" remove
- done
-}
-
-FILES_${PN} = "/"
-
-# It is bad to overwrite /linuxrc as it puts the system back to
-# a flash boot (and the flash has potentially not been upgraded!)
-CONFFILES_${PN} = "/linuxrc ${sysconfdir}/default/conffiles"
diff --git a/packages/slugos-init/slugos-init_4.8.bb b/packages/slugos-init/slugos-init_4.8.bb
deleted file mode 100644
index 37b82c582c..0000000000
--- a/packages/slugos-init/slugos-init_4.8.bb
+++ /dev/null
@@ -1,148 +0,0 @@
-DESCRIPTION = "SlugOS initial network config via sysconf"
-SECTION = "base"
-PRIORITY = "required"
-LICENSE = "GPL"
-DEPENDS = "base-files devio"
-RDEPENDS = "busybox devio"
-PR = "r5"
-
-SRC_URI = "file://boot/flash \
- file://boot/disk \
- file://boot/nfs \
- file://boot/ram \
- file://boot/kexec \
- file://boot/network \
- file://boot/udhcpc.script \
- file://initscripts/fixfstab \
- file://initscripts/syslog.buffer \
- file://initscripts/syslog.file \
- file://initscripts/syslog.network \
- file://initscripts/zleds \
- file://initscripts/leds_startup \
- file://initscripts/rmrecovery \
- file://initscripts/sysconfsetup \
- file://initscripts/umountinitrd.sh \
- file://initscripts/loadmodules.sh \
- file://functions \
- file://modulefunctions \
- file://conffiles \
- file://sysconf \
- file://leds \
- file://turnup \
- "
-
-SBINPROGS = ""
-USRSBINPROGS = ""
-CPROGS = "${USRSBINPROGS} ${SBINPROGS}"
-SCRIPTS = "turnup leds sysconf"
-BOOTSCRIPTS = "flash disk nfs ram kexec network udhcpc.script"
-INITSCRIPTS = "syslog.buffer syslog.file syslog.network zleds\
- leds_startup rmrecovery sysconfsetup umountinitrd.sh\
- fixfstab loadmodules.sh"
-
-# This just makes things easier...
-S="${WORKDIR}"
-
-do_compile() {
- set -ex
- for p in ${CPROGS}
- do
- ${CC} ${CFLAGS} -o $p $p.c
- done
- set +ex
-}
-
-do_install() {
- set -ex
-
- # Directories
- install -d ${D}${sysconfdir} \
- ${D}${sysconfdir}/default \
- ${D}${sysconfdir}/init.d \
- ${D}${sysconfdir}/modutils \
- ${D}${sysconfdir}/udev \
- ${D}${sbindir} \
- ${D}${base_sbindir} \
- ${D}/initrd \
- ${D}/boot
-
- # linuxrc
- rm -f ${D}/linuxrc
- ln -s boot/flash ${D}/linuxrc
-
- # C programs
- for p in ${USRSBINPROGS}
- do
- install -m 0755 $p ${D}${sbindir}/$p
- done
- for p in ${SBINPROGS}
- do
- install -m 0755 $p ${D}${base_sbindir}/$p
- done
-
- # Shell scripts
- for p in ${SCRIPTS}
- do
- install -m 0755 $p ${D}${base_sbindir}/$p
- done
-
- #
- # Init scripts
- install -m 0644 functions ${D}${sysconfdir}/default
- install -m 0644 modulefunctions ${D}${sysconfdir}/default
- for s in ${INITSCRIPTS}
- do
- install -m 0755 initscripts/$s ${D}${sysconfdir}/init.d/
- done
-
- #
- # Boot scripts
- for p in ${BOOTSCRIPTS}
- do
- install -m 0755 boot/$p ${D}/boot
- done
-
- # Configuration files
- install -m 0644 conffiles ${D}${sysconfdir}/default
-
- set +ex
-}
-
-# If the package is installed on an NSLU2 $D will be empty, in that
-# case it is normal to run 'start' and 'stop', but because the conf
-# files installed don't actually start or stop anything this is
-# unnecessary, so the package postfoo handling is simplified here.
-#NB: do not use '08' (etc) for the first argument after start/stop,
-# the value is interpreted as an octal number if there is a leading
-# zero.
-pkg_postinst_slugos-init() {
- opt=
- test -n "$D" && opt="-r $D"
- update-rc.d $opt hwclock.sh start 8 S . start 45 0 6 .
- update-rc.d $opt umountinitrd.sh start 9 S .
- update-rc.d $opt fixfstab start 10 S .
- update-rc.d $opt syslog.buffer start 11 S . start 49 0 6 .
- update-rc.d $opt sysconfsetup start 12 S .
- update-rc.d $opt loadmodules.sh start 21 S .
- update-rc.d $opt syslog.file start 39 S . start 47 0 6 .
- update-rc.d $opt syslog.network start 44 S . start 39 0 6 .
- update-rc.d $opt zleds start 99 S 1 2 3 4 5 . start 89 0 6 . stop 5 0 1 2 3 4 5 6 .
- update-rc.d $opt rmrecovery start 99 1 2 3 4 5 .
- # bug fix for startup
- update-rc.d $opt leds_startup start 1 1 2 3 4 5 .
-}
-
-pkg_postrm_slugos-init() {
- opt=
- test -n "$D" && opt="-r $D"
- for s in ${INITSCRIPTS}
- do
- update-rc.d $opt "$s" remove
- done
-}
-
-FILES_${PN} = "/"
-
-# It is bad to overwrite /linuxrc as it puts the system back to
-# a flash boot (and the flash has potentially not been upgraded!)
-CONFFILES_${PN} = "/linuxrc ${sysconfdir}/default/conffiles"
diff --git a/packages/slugos-init/slugos-init_5.0.bb b/packages/slugos-init/slugos-init_5.0.bb
deleted file mode 100644
index beeaa34135..0000000000
--- a/packages/slugos-init/slugos-init_5.0.bb
+++ /dev/null
@@ -1,157 +0,0 @@
-DESCRIPTION = "SlugOS initial network config via sysconf"
-SECTION = "base"
-PRIORITY = "required"
-LICENSE = "GPL"
-DEPENDS = "base-files devio"
-RDEPENDS = "busybox devio"
-PR = "r10"
-
-SRC_URI = "file://boot/flash \
- file://boot/disk \
- file://boot/nfs \
- file://boot/ram \
- file://boot/network \
- file://boot/udhcpc.script \
- file://initscripts/fixfstab \
- file://initscripts/syslog.buffer \
- file://initscripts/syslog.file \
- file://initscripts/syslog.network \
- file://initscripts/zleds \
- file://initscripts/leds_startup \
- file://initscripts/rmrecovery \
- file://initscripts/sysconfsetup \
- file://initscripts/umountinitrd.sh \
- file://initscripts/loadmodules.sh \
- file://functions \
- file://modulefunctions \
- file://conffiles \
- file://sysconf \
- file://leds \
- file://setup-optware.sh \
- file://turnup \
- file://reflash \
- file://usb \
- "
-
-SBINPROGS = ""
-USRSBINPROGS = ""
-CPROGS = "${USRSBINPROGS} ${SBINPROGS}"
-SCRIPTS = "turnup leds sysconf setup-optware.sh"
-BOOTSCRIPTS = "flash disk nfs ram network udhcpc.script"
-INITSCRIPTS = "syslog.buffer syslog.file syslog.network zleds\
- leds_startup rmrecovery sysconfsetup umountinitrd.sh\
- fixfstab loadmodules.sh"
-
-# This just makes things easier...
-S="${WORKDIR}"
-
-do_compile() {
- set -ex
- for p in ${CPROGS}
- do
- ${CC} ${CFLAGS} -o $p $p.c
- done
- set +ex
-}
-
-do_install() {
- set -ex
-
- # Directories
- install -d ${D}${sysconfdir} \
- ${D}${sysconfdir}/default \
- ${D}${sysconfdir}/init.d \
- ${D}${sysconfdir}/modutils \
- ${D}${sysconfdir}/modprobe.d \
- ${D}${sysconfdir}/udev \
- ${D}${sbindir} \
- ${D}${base_sbindir} \
- ${D}/initrd \
- ${D}/boot
-
- # linuxrc
- rm -f ${D}/linuxrc
- ln -s boot/flash ${D}/linuxrc
-
- # C programs
- for p in ${USRSBINPROGS}
- do
- install -m 0755 $p ${D}${sbindir}/$p
- done
- for p in ${SBINPROGS}
- do
- install -m 0755 $p ${D}${base_sbindir}/$p
- done
-
- # Shell scripts
- for p in ${SCRIPTS}
- do
- install -m 0755 $p ${D}${base_sbindir}/$p
- done
-
- #
- # Init scripts
- install -m 0644 functions ${D}${sysconfdir}/default
- install -m 0644 modulefunctions ${D}${sysconfdir}/default
- for s in ${INITSCRIPTS}
- do
- install -m 0755 initscripts/$s ${D}${sysconfdir}/init.d/
- done
-
- #
- # Boot scripts
- for p in ${BOOTSCRIPTS}
- do
- install -m 0755 boot/$p ${D}/boot
- done
-
- # Configuration files
- install -m 0644 conffiles ${D}${sysconfdir}/default
-
- # Developer-only tools, tucked away
- install -m 0755 reflash ${D}${sysconfdir}/default
-
- # Modprobe configuration files
- install -m 0644 usb ${D}${sysconfdir}/modprobe.d
-
- set +ex
-}
-
-# If the package is installed on an NSLU2 $D will be empty, in that
-# case it is normal to run 'start' and 'stop', but because the conf
-# files installed don't actually start or stop anything this is
-# unnecessary, so the package postfoo handling is simplified here.
-#NB: do not use '08' (etc) for the first argument after start/stop,
-# the value is interpreted as an octal number if there is a leading
-# zero.
-pkg_postinst_slugos-init() {
- opt=
- test -n "$D" && opt="-r $D"
- update-rc.d $opt hwclock.sh start 8 S . start 45 0 6 .
- update-rc.d $opt umountinitrd.sh start 9 S .
- update-rc.d $opt fixfstab start 10 S .
- update-rc.d $opt syslog.buffer start 11 S . start 49 0 6 .
- update-rc.d $opt sysconfsetup start 12 S .
- update-rc.d $opt loadmodules.sh start 21 S .
- update-rc.d $opt syslog.file start 39 S . start 47 0 6 .
- update-rc.d $opt syslog.network start 44 S . start 39 0 6 .
- update-rc.d $opt zleds start 99 S 1 2 3 4 5 . start 89 0 6 . stop 5 0 1 2 3 4 5 6 .
- update-rc.d $opt rmrecovery start 99 1 2 3 4 5 .
- # bug fix for startup
- update-rc.d $opt leds_startup start 1 1 2 3 4 5 .
-}
-
-pkg_postrm_slugos-init() {
- opt=
- test -n "$D" && opt="-r $D"
- for s in ${INITSCRIPTS}
- do
- update-rc.d $opt "$s" remove
- done
-}
-
-FILES_${PN} = "/"
-
-# It is bad to overwrite /linuxrc as it puts the system back to
-# a flash boot (and the flash has potentially not been upgraded!)
-CONFFILES_${PN} = "/linuxrc ${sysconfdir}/default/conffiles"