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