summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorFlorian Boor <florian.boor@kernelconcepts.de>2006-02-01 13:09:32 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-02-01 13:09:32 +0000
commit57a0ea251c99054f1da88f4ae0233010a7a062e1 (patch)
tree2782d6222bcd0e7ca92724de4d5691dcc6ca791f /packages
parent1301f1dfdeeee12f1638386f161b0bac630f8e1c (diff)
parent4f53bb2d58aba4a382057369405e00b165b95f42 (diff)
merge of 6287535c46a3cdb7bc8a84eaeead326756fd3f98
and 99edbe0f3af53904ca2cb45c0849c1580b274a1d
Diffstat (limited to 'packages')
-rw-r--r--packages/altboot/altboot.bb4
-rw-r--r--packages/altboot/files/altboot-menu/15-bootSD15
-rw-r--r--packages/altboot/files/altboot.func8
-rw-r--r--packages/altboot/files/altboot.rc/disable_printk.sh4
-rw-r--r--packages/altboot/files/altboot.rc/loadkeymap.sh5
-rw-r--r--packages/altboot/files/init.altboot10
-rw-r--r--packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch29
-rw-r--r--packages/binutils/binutils_2.16.bb3
-rw-r--r--packages/linux/ixp4xx-kernel_2.6.15.2.bb (renamed from packages/linux/ixp4xx-kernel_2.6.15.1.bb)2
-rw-r--r--packages/slugos-init/files/functions14
-rw-r--r--packages/slugos-init/files/initscripts/fixfstab91
-rw-r--r--packages/slugos-init/files/turnup11
-rw-r--r--packages/slugos-init/slugos-init_0.10.bb7
13 files changed, 183 insertions, 20 deletions
diff --git a/packages/altboot/altboot.bb b/packages/altboot/altboot.bb
index 46a95ac5d6..a6b2bcb524 100644
--- a/packages/altboot/altboot.bb
+++ b/packages/altboot/altboot.bb
@@ -6,7 +6,7 @@ MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>"
LICENSE = "GPL"
IGNORE_STRIP_ERRORS = "1"
-PR = "r15"
+PR = "r16"
SRC_URI = "file://altboot-menu \
@@ -30,6 +30,8 @@ do_install() {
install -m 0755 ${WORKDIR}/init.altboot ${D}/sbin
install -m 0755 ${WORKDIR}/altboot-menu/*-* ${D}/etc/altboot-menu
install -m 0755 ${WORKDIR}/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced
+ install -m 0755 ${WORKDIR}/altboot.rc/*.sh ${D}/etc/altboot.rc
+ install -m 0644 ${WORKDIR}/altboot.rc/*.txt ${D}/etc/altboot.rc
}
diff --git a/packages/altboot/files/altboot-menu/15-bootSD b/packages/altboot/files/altboot-menu/15-bootSD
index 6ce0cdc9b3..d086cde344 100644
--- a/packages/altboot/files/altboot-menu/15-bootSD
+++ b/packages/altboot/files/altboot-menu/15-bootSD
@@ -24,23 +24,24 @@ run_module() {
/etc/init.d/devices start && echo ok >/dev/tty0|| die "FAILED"
# We can't trust that the SD device file is there when running kernel 2.6 w/ udev
- # Starting udev at this point may not be the best idea...
-# echo "*1*"
+ # and starting udev at this point may not be the best idea...
+
if `uname -r | grep -q "2.6"`
then
- #echo "***"
+ #Let's just assume the device file name never changes...
dev_no="`echo "$SD_DEVICE" | sed -n "s/\/dev\/mmcblk\(.*\)p\(.*\)/\1/p"`"
part_no="`echo "/dev/mmcblk0p1" | sed -n "s/\/dev\/mmcblk\(.*\)p\(.*\)/\2/p"`"
! test -e /dev/mmcblk${dev_no} && mknod /dev/mmcblk${dev_no} b 254 0
- ! test -e /dev/mmcblk${dev_no}p${part_no} && mknod /dev/mmcblk${dev_no}p${part_no} b 254 $part_no
-
- #echo "[mknod /dev/mmcblk${dev_no}p${part_no}]"
+ ! test -e /dev/mmcblk${dev_no}p${part_no} && mknod /dev/mmcblk${dev_no}p${part_no} b 254 $part_no
fi
- if test -n "$SD_KERNEL_MODULE"
+ # Kernel 2.6 has the SD driver compiled into the kernel
+ if test -n "$SD_KERNEL_MODULE"
then
echo -n "Loading SD kernel module..."
/sbin/insmod $SD_KERNEL_MODULE >/dev/null 2>&1 && echo ok || die "insmod failed"
+ else
+ echo "No SD kernel module, configured, assuming it's build-in"
fi
echo -n "Mounting $SD_MOUNTPOINT..." >/dev/tty0
diff --git a/packages/altboot/files/altboot.func b/packages/altboot/files/altboot.func
index e1196ecc7f..ceee6abae2 100644
--- a/packages/altboot/files/altboot.func
+++ b/packages/altboot/files/altboot.func
@@ -205,14 +205,14 @@ set_password() {
then
crypt_pw="`echo "$junk1" | md5sum | awk '{print $1}'`"
- if test -e /etc/altboot.cfg
+ if test -e "${ALTBOOT_CFG_FILE}"
then
- sed "/^MASTER_PASSWORD/s/\(.*\=\).*/\1\"$crypt_pw\"/" /etc/altboot.cfg > /etc/altboot.cfg_
- mv /etc/altboot.cfg_ /etc/altboot.cfg
+ sed "/^MASTER_PASSWORD/s/\(.*\=\).*/\1\"$crypt_pw\"/" "${ALTBOOT_CFG_FILE}" > ${ALTBOOT_CFG_FILE}_
+ mv ${ALTBOOT_CFG_FILE}_ ${ALTBOOT_CFG_FILE}
MASTER_PASSWORD="$crypt_pw"
echo "Password changed."
else
- echo "/etc/altboot.cfg is missing, no password saved"
+ echo "${ALTBOOT_CFG_FILE} is missing, no password saved"
fi
break
diff --git a/packages/altboot/files/altboot.rc/disable_printk.sh b/packages/altboot/files/altboot.rc/disable_printk.sh
new file mode 100644
index 0000000000..9d5f918c1e
--- /dev/null
+++ b/packages/altboot/files/altboot.rc/disable_printk.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+echo 0 > /proc/sys/kernel/printk
+
diff --git a/packages/altboot/files/altboot.rc/loadkeymap.sh b/packages/altboot/files/altboot.rc/loadkeymap.sh
new file mode 100644
index 0000000000..f9a7774549
--- /dev/null
+++ b/packages/altboot/files/altboot.rc/loadkeymap.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+# Note: With kernel 2.6 the standard keymap is unusable
+test -x /etc/init.d/keymap && /etc/init.d/keymap start >/dev/null 2>&1
+
diff --git a/packages/altboot/files/init.altboot b/packages/altboot/files/init.altboot
index 2de4ba247c..cd8b6b8929 100644
--- a/packages/altboot/files/init.altboot
+++ b/packages/altboot/files/init.altboot
@@ -18,11 +18,15 @@ INIT_RUNLEVEL="`cat /etc/inittab | sed -n "/^id\:/s/id\:\([0-9]\)\:.*$/\1/p"`"
test -z "$INIT_RUNLEVEL" && INIT_RUNLEVEL=5
case "`uname -r`" in
-2.6*) test -e /etc/altboot-2.6.cfg && . /etc/altboot-2.6.cfg || echo "WARNING: No altboot-2.6.cfg found! Check your installation of Altboot!" > /dev/tty1;;
-2.4*) test -e /etc/altboot-2.4.cfg && . /etc/altboot-2.4.cfg || echo "WARNING: No altboot-2.4.cfg found! Check your installation of Altboot!" > /dev/tty1;;
-*) die "Unknown kernel [uname -r], no configuration found.";;
+2.6*) ALTBOOT_CFG_FILE="/etc/altboot-2.6.cfg";;
+2.4*) ALTBOOT_CFG_FILE="/etc/altboot-2.4.cfg";;
+*) echo "Warning: Unknown kernel [`uname -r`], using kernel 2.6 configuration!"
+ ALTBOOT_CFG_FILE="/etc/altboot-2.6.cfg";;
esac
+echo "Using [${ALTBOOT_CFG_FILE}]"
+test -e "$ALTBOOT_CFG_FILE" && . "$ALTBOOT_CFG_FILE" || echo "WARNING: No $ALTBOOT_CFG_FILE found! Check your installation of Altboot!" > /dev/tty1
+
C_RED="\033[31m"
C_BLUE="\033[34m"
C_WHITE="\033[37m"
diff --git a/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch b/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch
new file mode 100644
index 0000000000..e4372de88f
--- /dev/null
+++ b/packages/binutils/binutils-2.16/binutils-2.16-objcopy-rename-errorcode.patch
@@ -0,0 +1,29 @@
+# strip (and objcopy) fail to set the error code if there is no
+# output file name and the rename of the stripped (or copied) file
+# fails, yet the command fails to do anything. This fixes both
+# objcopy and strip.
+#
+#Signed-off-by: John Bowler <jbowler@acm.org>
+
+--- binutils-2.16/binutils/objcopy.c.orig 2006-01-31 11:15:38.797318519 -0800
++++ binutils-2.16/binutils/objcopy.c 2006-01-31 11:15:40.463318516 -0800
+@@ -2434,7 +2434,8 @@ strip_main (int argc, char *argv[])
+ if (preserve_dates)
+ set_times (tmpname, &statbuf);
+ if (output_file == NULL)
+- smart_rename (tmpname, argv[i], preserve_dates);
++ if (smart_rename (tmpname, argv[i], preserve_dates))
++ hold_status = 1;
+ status = hold_status;
+ }
+ else
+@@ -3013,7 +3014,8 @@ copy_main (int argc, char *argv[])
+ {
+ if (preserve_dates)
+ set_times (tmpname, &statbuf);
+- smart_rename (tmpname, input_filename, preserve_dates);
++ if (smart_rename (tmpname, input_filename, preserve_dates))
++ status = 1;
+ }
+ else
+ unlink (tmpname);
diff --git a/packages/binutils/binutils_2.16.bb b/packages/binutils/binutils_2.16.bb
index 994c2d4db8..9cca585cae 100644
--- a/packages/binutils/binutils_2.16.bb
+++ b/packages/binutils/binutils_2.16.bb
@@ -3,13 +3,14 @@ HOMEPAGE = "http://www.gnu.org/software/binutils/"
SECTION = "devel"
LICENSE = "GPL"
MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
-PR = "r5"
+PR = "r6"
SRC_URI = \
"http://ftp.gnu.org/gnu/binutils/binutils-${PV}.tar.bz2 \
file://ld_makefile.patch;patch=1 \
file://better_file_error.patch;patch=1 \
file://signed_char_fix.patch;patch=1 \
+ file://binutils-2.16-objcopy-rename-errorcode.patch;patch=1 \
file://binutils-100_cflags_for_build.patch;patch=1"
# uclibc patches
diff --git a/packages/linux/ixp4xx-kernel_2.6.15.1.bb b/packages/linux/ixp4xx-kernel_2.6.15.2.bb
index f7b919052b..86eec02957 100644
--- a/packages/linux/ixp4xx-kernel_2.6.15.1.bb
+++ b/packages/linux/ixp4xx-kernel_2.6.15.2.bb
@@ -8,7 +8,7 @@ PR_CONFIG = "0"
# Increment the number below (i.e. the digits after PR) when
# making changes within this file or for changes to the patches
# applied to the kernel.
-PR = "r17.${PR_CONFIG}"
+PR = "r0.${PR_CONFIG}"
include ixp4xx-kernel.inc
diff --git a/packages/slugos-init/files/functions b/packages/slugos-init/files/functions
index d631579966..ef10d65fb2 100644
--- a/packages/slugos-init/files/functions
+++ b/packages/slugos-init/files/functions
@@ -372,3 +372,17 @@ umountflash(){
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
new file mode 100644
index 0000000000..67116a12fd
--- /dev/null
+++ b/packages/slugos-init/files/initscripts/fixfstab
@@ -0,0 +1,91 @@
+#!/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/turnup b/packages/slugos-init/files/turnup
index d27648680f..f7fe0e7960 100644
--- a/packages/slugos-init/files/turnup
+++ b/packages/slugos-init/files/turnup
@@ -17,6 +17,10 @@ INRAM_DISK=""
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
@@ -312,7 +316,7 @@ 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.
+# / 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
@@ -322,6 +326,11 @@ setup_fstab() {
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
}
#
diff --git a/packages/slugos-init/slugos-init_0.10.bb b/packages/slugos-init/slugos-init_0.10.bb
index 179e5a735e..6a31fca367 100644
--- a/packages/slugos-init/slugos-init_0.10.bb
+++ b/packages/slugos-init/slugos-init_0.10.bb
@@ -4,7 +4,7 @@ PRIORITY = "required"
LICENSE = "GPL"
DEPENDS = "base-files devio"
RDEPENDS = "busybox devio"
-PR = "r51"
+PR = "r52"
SRC_URI = "file://boot/flash \
file://boot/disk \
@@ -12,6 +12,7 @@ SRC_URI = "file://boot/flash \
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 \
@@ -35,7 +36,8 @@ CPROGS = "${USRSBINPROGS} ${SBINPROGS}"
SCRIPTS = "turnup reflash leds sysconf"
BOOTSCRIPTS = "flash disk nfs ram network udhcpc.script"
INITSCRIPTS = "syslog.buffer syslog.file syslog.network zleds\
- leds_startup rmrecovery sysconfsetup umountinitrd.sh"
+ leds_startup rmrecovery sysconfsetup umountinitrd.sh\
+ fixfstab"
# This just makes things easier...
S="${WORKDIR}"
@@ -120,6 +122,7 @@ pkg_postinst_slugos-init() {
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 syslog.file start 39 S . start 47 0 6 .