diff options
22 files changed, 208 insertions, 225 deletions
diff --git a/packages/busybox/busybox_1.00.bb b/packages/busybox/busybox_1.00.bb index 97ad82ae56..b15d568aef 100644 --- a/packages/busybox/busybox_1.00.bb +++ b/packages/busybox/busybox_1.00.bb @@ -54,6 +54,9 @@ INITSCRIPT_NAME_${PN}-httpd = "busybox-httpd" INITSCRIPT_NAME_${PN}-udhcpd = "busybox-udhcpd" INITSCRIPT_NAME_${PN} = "syslog" +# This disables the syslog startup links in openslug (see openslug-init) +INITSCRIPT_PARAMS_${PN}_openslug = "start 20 ." + inherit cml1 update-rc.d do_configure () { diff --git a/packages/openslug-init/openslug-init-0.10/leds_startup b/packages/initscripts/initscripts-1.0/openslug/alignment.sh index e69de29bb2..e69de29bb2 100644 --- a/packages/openslug-init/openslug-init-0.10/leds_startup +++ b/packages/initscripts/initscripts-1.0/openslug/alignment.sh diff --git a/packages/openslug-init/openslug-init-0.10/rmrecovery b/packages/initscripts/initscripts-1.0/openslug/devices.patch index e69de29bb2..e69de29bb2 100644 --- a/packages/openslug-init/openslug-init-0.10/rmrecovery +++ b/packages/initscripts/initscripts-1.0/openslug/devices.patch diff --git a/packages/initscripts/initscripts-1.0/openslug/domainname.sh b/packages/initscripts/initscripts-1.0/openslug/domainname.sh new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/initscripts/initscripts-1.0/openslug/domainname.sh diff --git a/packages/initscripts/initscripts-1.0/openslug/rootopts.patch b/packages/initscripts/initscripts-1.0/openslug/rootopts.patch new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/initscripts/initscripts-1.0/openslug/rootopts.patch diff --git a/packages/initscripts/initscripts-1.0/openslug/umountfs b/packages/initscripts/initscripts-1.0/openslug/umountfs new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/initscripts/initscripts-1.0/openslug/umountfs diff --git a/packages/initscripts/initscripts-1.0/openslug/umountnfs.sh b/packages/initscripts/initscripts-1.0/openslug/umountnfs.sh new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/initscripts/initscripts-1.0/openslug/umountnfs.sh diff --git a/packages/initscripts/initscripts-openslug_1.0.bb b/packages/initscripts/initscripts-openslug_1.0.bb new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/initscripts/initscripts-openslug_1.0.bb diff --git a/packages/meta/openslug-image.bb b/packages/meta/openslug-image.bb index d2bf3bb7c3..6ab8bc73b5 100644 --- a/packages/meta/openslug-image.bb +++ b/packages/meta/openslug-image.bb @@ -1,4 +1,4 @@ -PR = "r12" +PR = "r13" IMAGE_BASENAME = "openslug" @@ -9,7 +9,7 @@ OPENSLUG_HIDDEN_PACKAGES = "ipkg-native ipkg-utils-native fakeroot-native ${PATC virtual/libc makedevs-native mtd-utils-native slugimage-native nslu2-linksys-firmware " DEPENDS = "virtual/kernel base-files base-passwd \ - busybox dropbear hotplug-ng initscripts netbase \ + busybox dropbear hotplug-ng initscripts-openslug netbase \ sysvinit tinylogin portmap \ ixp4xx-csr ixp425-eth openslug-init \ module-init-tools modutils-initscripts \ @@ -21,7 +21,7 @@ DEPENDS = "virtual/kernel base-files base-passwd \ # (OPENSLUG_EXTRA_FILESYSTEMS, included in OPENSLUG_EXTRA_INSTALL) # kernel-module-af-packet must be in the image for DHCP to work IPKG_INSTALL = "base-files base-passwd \ - busybox dropbear hotplug-ng initscripts netbase \ + busybox dropbear hotplug-ng initscripts-openslug netbase \ update-modules sysvinit tinylogin portmap \ ixp4xx-csr ixp425-eth openslug-init \ module-init-tools modutils-initscripts \ diff --git a/packages/netbase/netbase_4.21.bb b/packages/netbase/netbase_4.21.bb index e69de29bb2..06e3a3c1b9 100644 --- a/packages/netbase/netbase_4.21.bb +++ b/packages/netbase/netbase_4.21.bb @@ -0,0 +1,42 @@ +SECTION = "base" +DESCRIPTION = "This package provides the necessary \ +infrastructure for basic TCP/IP based networking." +LICENSE = "GPL" +PR = "r6" + +inherit update-rc.d + +INITSCRIPT_NAME = "networking" +INITSCRIPT_PARAMS = "start 40 S . stop 40 0 6 1 ." +# On MNCI, start very late so that our own apps come up faster +INITSCRIPT_PARAMS_ramses = "start 85 1 2 3 4 5 . stop 85 0 6 1 ." +# On OpenSlug delay the stop until after network apps have exited +# Do not stop in single user - there's no way to sulogin! +INITSCRIPT_PARAMS_openslug = "start 40 S 0 6 ." + +SRC_URI = "${DEBIAN_MIRROR}/main/n/netbase/netbase_${PV}.tar.gz \ + file://options \ + file://init \ + file://hosts \ + file://interfaces" + +do_install () { + install -d ${D}${sysconfdir}/init.d \ + ${D}${sbindir} \ + ${D}${mandir}/man8 \ + ${D}${sysconfdir}/network/if-pre-up.d \ + ${D}${sysconfdir}/network/if-up.d \ + ${D}${sysconfdir}/network/if-down.d \ + ${D}${sysconfdir}/network/if-post-down.d + install -m 0644 ${WORKDIR}/options ${D}${sysconfdir}/network/options + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/networking + install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}/hosts + install -m 0644 etc-rpc ${D}${sysconfdir}/rpc + install -m 0644 etc-protocols ${D}${sysconfdir}/protocols + install -m 0644 etc-services ${D}${sysconfdir}/services + install -m 0755 update-inetd ${D}${sbindir}/ + install -m 0644 update-inetd.8 ${D}${mandir}/man8/ + install -m 0644 ${WORKDIR}/interfaces ${D}${sysconfdir}/network/interfaces +} + +CONFFILES_${PN} = "${sysconfdir}/network/options ${sysconfdir}/hosts ${sysconfdir}/network/interfaces" diff --git a/packages/openslug-init/openslug-init-0.10/initscripts/leds_startup b/packages/openslug-init/openslug-init-0.10/initscripts/leds_startup new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openslug-init/openslug-init-0.10/initscripts/leds_startup diff --git a/packages/openslug-init/openslug-init-0.10/initscripts/rmrecovery b/packages/openslug-init/openslug-init-0.10/initscripts/rmrecovery new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openslug-init/openslug-init-0.10/initscripts/rmrecovery diff --git a/packages/openslug-init/openslug-init-0.10/initscripts/sysconfsetup b/packages/openslug-init/openslug-init-0.10/initscripts/sysconfsetup new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openslug-init/openslug-init-0.10/initscripts/sysconfsetup diff --git a/packages/openslug-init/openslug-init-0.10/initscripts/syslog.buffer b/packages/openslug-init/openslug-init-0.10/initscripts/syslog.buffer new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openslug-init/openslug-init-0.10/initscripts/syslog.buffer diff --git a/packages/openslug-init/openslug-init-0.10/initscripts/syslog.file b/packages/openslug-init/openslug-init-0.10/initscripts/syslog.file new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openslug-init/openslug-init-0.10/initscripts/syslog.file diff --git a/packages/openslug-init/openslug-init-0.10/initscripts/syslog.network b/packages/openslug-init/openslug-init-0.10/initscripts/syslog.network new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openslug-init/openslug-init-0.10/initscripts/syslog.network diff --git a/packages/openslug-init/openslug-init-0.10/initscripts/umountinitrd.sh b/packages/openslug-init/openslug-init-0.10/initscripts/umountinitrd.sh new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openslug-init/openslug-init-0.10/initscripts/umountinitrd.sh diff --git a/packages/openslug-init/openslug-init-0.10/initscripts/zleds b/packages/openslug-init/openslug-init-0.10/initscripts/zleds new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openslug-init/openslug-init-0.10/initscripts/zleds diff --git a/packages/openslug-init/openslug-init-0.10/leds_rs_green b/packages/openslug-init/openslug-init-0.10/leds_rs_green deleted file mode 100644 index c3ad3d2d64..0000000000 --- a/packages/openslug-init/openslug-init-0.10/leds_rs_green +++ /dev/null @@ -1,38 +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' sets the correct colour power LED to flash between the -# two colours of the previous and next runlevel. -# 'start' sets the LED to steady -# -# 'red' is the initial setting on kernel boot -# -# 'amber' is used for run levels S (from /linuxrc), 0 (halt), -# 1 (single user) and 6 (reboot). halt and reboot do not -# terminate therefore the LED remains flashing until the -# kernel terminates. -# -# 'green' is used for run levels 2-5 - the normal user run levels. -# -# colours are 'g' (green), 'r' (red) or 'gr' (amber). -colour() { - case "$1" in - S|0|1|6) echo gr;; - 2|3|4|5) echo g;; - N) echo r;; - *) echo "led change: $runlevel: runlevel unknown" >&2 - echo r;; - esac -} - -# leds syntax is -A +<init state> /<new state> -case "$1" in -start) leds -A +"$(colour "$runlevel")";; -stop) leds -A +"$(colour "$previous")" /"$(colour "$runlevel")";; -*) echo "led change: $1: command ignored" >&2;; -esac - -exit 0 diff --git a/packages/openslug-init/openslug-init-0.10/sysconfsetup b/packages/openslug-init/openslug-init-0.10/sysconfsetup deleted file mode 100644 index 8d2ecdca09..0000000000 --- a/packages/openslug-init/openslug-init-0.10/sysconfsetup +++ /dev/null @@ -1,146 +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 to run this again. If this is done the -# following configuration files will be rewritten: -# -# /etc/default/sysconf -# /etc/hostname -# /etc/defaultdomain -# /etc/network/interfaces -# /etc/resolv.conf -# -test -r /etc/default/sysconf && exit 0 -# -# /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 -# -# Utility to deal with absence of DNS configuration -echodns(){ - local dns - if test $# -gt 0 - then - for dns in "$@" - do - echo "nameserver $dns" - done - fi -} -# -# The SysConf device must exist in /dev at this point for this script -# to work. -# -# It is important not to hard-wire the name of the device because of -# the posibility of changing the flash partition layout. -# -# The block device is used here because at present udev does not -# show the character devices -sysdev="$(mtblockdev SysConf)" -if test -n "$sysdev" -a -b "$sysdev" -then - # Read the defined part of SysConf into /etc/default/sysconf. - # SysConf has lines of two forms: - # - # [section] - # name=value - # - # In practice SysConf 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 - # defaults to ixp0, is changed to the correct value for openslug, - # eth0 - devio '<<'"$sysdev"';cpb;fb1,10' | sed -n '/^\[[^][]*\]$/p; - s/^lan_interface=ixp0$/lan_interface=eth0/; - /^[-a-zA-Z0-9_][-a-zA-Z0-9_]*=/p' >/etc/default/sysconf - # - # Now take the result and set up the 'standard' files in the - # root file system (these couldn't be set up before because - # they depend on stuff which RedBoot puts into SysConf from the - # ID info on the specific machine - in particular the hardware - # address of eth0, which must be the one assigned for *this* - # box!) - # - # HOSTNAME: defaults to LGK<mac> i.e. something derived from - # the ethernet hardware. LinkSys documentation explains how - # to determine this. Set by the user in linksys setup software. - # DOMAINNAME: LinkSys puts this in w_d_name. - test -n "$(config host)" && config host >/etc/hostname - domain="$(config domain)" - test -n "$domain" && echo "$domain" >/etc/defaultdomain - # - # 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 openslug udhcp script, - # /etc/udhcpc.d/50default, loads the values from sysconf. The - # lan_interface config value must exist for the file to be - # overwritten here. - iface="$(config iface)" - if test -n "$iface" - then - 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 - # - mac="$(config mac)" - 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 NSLU2 built-in ethernet" - echo "auto eth0" - echo "# Automatically generated from /etc/default/sysconf" - if test -n "$mac" - then - echo "# The pre-up option must always be supplied, regardless" - echo "# of configuration, to set the hardware correctly." - echo "# Severe network problems may result if this option is" - echo "# removed." - c= - else - echo "# WARNING: improperly configured network interface." - echo "# WARNING: the pre-up line must be corrected or severe" - echo "# WARNING: network problems may result." - c='#' - mac='<WARNING: unknown hardware address>' - fi - echo "iface $iface inet $boot" - echo "${c} pre-up ifconfig $iface hw ether $mac" - # 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" - } >/etc/network/interfaces - fi - # - # The DNS server information gives up to three nameservers, but this - # currently only binds in the first. - { - test -n "$domain" && echo "search $domain" - echodns $(config dns) $(config dns1) $(config dns2) - } >/etc/resolv.conf -fi - -exit 0 diff --git a/packages/openslug-init/openslug-init-0.10/turnup b/packages/openslug-init/openslug-init-0.10/turnup index b688bc3051..d22e15c208 100644 --- a/packages/openslug-init/openslug-init-0.10/turnup +++ b/packages/openslug-init/openslug-init-0.10/turnup @@ -8,6 +8,55 @@ # force: override certain checks force= # +# 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 +} +# # check_rootfs [-i] <root fs directory> # Make sure the candidate rootfs is empty check_rootfs() { @@ -87,8 +136,8 @@ setup_dev() { return 1 } echo "done" >&2 - # now remove the startup links which mount the ramfs on /dev - rm "$1"/etc/rc?.d/[KS]??devices + # now prevent this being done each time + :>"$1"/dev/.permanent return 0 } @@ -128,8 +177,8 @@ setup_var() { echo "turnup: /var: could not populate directory" >&2 return 1 } - # and remove the startup links - rm "$1"/etc/rc?.d/[KS]??populate-var.sh + # the startup link is left for the moment, this seems safer + #rm "$1"/etc/rc?.d/[KS]??populate-var.sh # remove the /var tmpfs entry from the new /etc/fstab case "$2" in disk) sed -i '\@\s/var\s\s*tmpfs\s@d' "$1"/etc/fstab @@ -138,10 +187,9 @@ setup_var() { echo "turnup: tmpfs /var mount moved to /var/tmp" >&2;; esac # - # warn the user - it's not enough to put the /var mount back, it - # is necessary to reinsert the populate-var.sh links! - echo " If you remount tmpfs on /var it must be populated at boot, use:" >&2 - echo " update-rc.d populate-var.sh start 37 S ." >&2 + # Previous versions of turnup removed populate-var.sh from the + # startup links, this one doesn't, so /var can be made back into + # a tmpfs just by a change to /etc/fstab. return 0 } @@ -225,6 +273,23 @@ setup_rootfs() { } # +# 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. +# bad, since sed won't fail even if it changes nothing. +setup_fstab() { + sed -i '\@^[^ ]*\s\s*/\s@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 + } +} + + +# # boot_rootfs <boot type> <flash file system> <sleep time> <device> [options] # Change the flash partition (not the current root!) to boot off # the new root file system @@ -342,7 +407,7 @@ mountflash() { # disk [-m] [-i] [-s<time>] <device> {options} # Carefully copy the flash file system to the named device. disk() { - local setup_type sleep init device new ffs + local setup_type sleep init device new ffs fst fso setup_type=disk sleep=0 @@ -388,8 +453,17 @@ disk() { # 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 mount "$@" "$device" "$new" then + fst="$(fstype "$new")" + umount "$new" || + echo "turnup disk: $device($new): umount does not seem to work" >&2 + fi + + if test -n "$fst" && mount -t "$fst" -o "$fso" "$device" "$new" + then if check_rootfs $init "$new" && { test -z "$init" || { copy_rootfs "$ffs" "$new" && @@ -397,14 +471,20 @@ disk() { } } then + setup_fstab "$new" "$device" "$fst" "$fso" status=0 fi # clean up the disk. It is worrying if this umount fails! - umount "$new" || { + umount "$new" || test "$force" = "-f" || { echo "turnup disk: $device: umount failed" >&2 echo " you must unmount this device cleanly yourself, then use" >&2 - echo " the -i option to boot from the device" >&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 } @@ -412,10 +492,15 @@ disk() { if test $status -eq 0 then # memsticks boot like disks, so ignore the -m - boot_rootfs disk "$ffs" "$sleep" "$device" "$@" + boot_rootfs disk "$ffs" "$sleep" "$device" -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 + fi fi # clean up the flash file system @@ -501,7 +586,19 @@ nfs() { # read only is *not* an option, this is important because the boot/disk # script needs a rw file system status=1 - if mount -t nfs -o nolock,noatime,hard,intr,rsize=1024,wsize=1024,"$@" "$nfsroot" "$new" + 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 @@ -512,19 +609,25 @@ nfs() { } } then + setup_fstab "$new" "$nfsroot" "$fst" "$fso" status=0 fi else - echo "turnup nfs: $nfsroot: partition must be mounted no_root_squash" >&2 + 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" || { + 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 - echo " the -i option to boot from the NFS root" >&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 } @@ -533,11 +636,15 @@ nfs() { if test $status -eq 0 then # the options used are exactly those which worked before. - boot_rootfs nfs "$ffs" 0 "$nfsroot" -t nfs \ - -o nolock,noatime,hard,intr,rsize=1024,wsize=1024,"$@" + boot_rootfs nfs "$ffs" 0 "$nfsroot" -t nfs -o "$fso" fi else - echo "turnup disk: $nfsroot($*): unable to mount device on $new" >&2 + 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 @@ -588,10 +695,9 @@ usage: turnup command [options] 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. - The options are added to the -o list, therefore to give - additional flag arguments specify an empty first option. - The options may be used to override the defaults just by - specifying the new value. + 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 diff --git a/packages/openslug-init/openslug-init_0.10.bb b/packages/openslug-init/openslug-init_0.10.bb index be4f02714a..7414a23e99 100644 --- a/packages/openslug-init/openslug-init_0.10.bb +++ b/packages/openslug-init/openslug-init_0.10.bb @@ -2,7 +2,8 @@ DESCRIPTION = "Openslug initial network config via sysconf" SECTION = "console/network" LICENSE = "GPL" DEPENDS = "base-files" -PR = "r26" +RDEPENDS = "busybox" +PR = "r27" SRC_URI = "file://linuxrc \ file://boot/flash \ @@ -11,13 +12,17 @@ SRC_URI = "file://linuxrc \ file://boot/ram \ file://boot/network \ file://boot/udhcpc.script \ + 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://functions \ - file://rmrecovery \ - file://sysconfsetup \ file://turnup \ file://modprobe.conf \ - file://leds_rs_green \ - file://leds_startup \ file://leds.h \ file://leds.c \ file://kern_header.c \ @@ -29,6 +34,8 @@ USRSBINPROGS = "kern_header" CPROGS = "${USRSBINPROGS} ${SBINPROGS}" SCRIPTS = "turnup update-kernel" BOOTSCRIPTS = "flash disk nfs ram network udhcpc.script" +INITSCRIPTS = "syslog.buffer syslog.file syslog.network zleds\ + leds_startup rmrecovery sysconfsetup umountinitrd.sh" # This just makes things easier... S="${WORKDIR}" @@ -78,10 +85,10 @@ do_install() { # # Init scripts install -m 0644 functions ${D}${sysconfdir}/default - install -m 0755 rmrecovery ${D}${sysconfdir}/init.d/ - install -m 0755 sysconfsetup ${D}${sysconfdir}/init.d/ - install -m 0755 leds_startup ${D}${sysconfdir}/init.d/ - install -m 0755 leds_rs_green ${D}${sysconfdir}/init.d/zleds_rs + for s in ${INITSCRIPTS} + do + install -m 0755 initscripts/$s ${D}${sysconfdir}/init.d/ + done # # Boot scripts @@ -100,21 +107,30 @@ do_install() { # 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_openslug-init() { opt= test -n "$D" && opt="-r $D" - update-rc.d $opt sysconfsetup start 11 S . - update-rc.d $opt zleds_rs start 99 S 1 2 3 4 5 . stop 05 0 1 2 3 4 5 6 . + 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 syslog.buffer start 11 S . start 49 0 6 . + update-rc.d $opt sysconfsetup start 12 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 . stop 5 0 1 2 3 4 5 6 . # bug fix for startup - update-rc.d $opt leds_startup start 01 1 2 3 4 5 . + update-rc.d $opt leds_startup start 1 1 2 3 4 5 . } pkg_postrm_openslug-init() { opt= test -n "$D" && opt="-r $D" - update-rc.d $opt sysconfsetup remove - update-rc.d $opt zleds_rs remove - update-rc.d $opt leds_startup remove + for s in ${INITSCRIPTS} + do + update-rc.d $opt "$s" remove + done } PACKAGES = "${PN}" |