busybox-initramfs: add support for renamed KERNEL and SYSTEM

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2012-05-04 07:17:07 +02:00
parent 79d6369d99
commit a9fa8a5dd9

View File

@ -23,10 +23,13 @@
################################################################################ ################################################################################
MODULE_DIR=/lib/modules MODULE_DIR=/lib/modules
UPDATE_DIR=/storage/.update
IMAGE_SYSTEM="SYSTEM" UPDATE_DIR=/storage/.update
UPDATE_KERNEL="KERNEL"
UPDATE_SYSTEM="SYSTEM"
IMAGE_KERNEL="KERNEL" IMAGE_KERNEL="KERNEL"
IMAGE_SYSTEM="SYSTEM"
REBOOT="0" REBOOT="0"
MD5_FAILED="0" MD5_FAILED="0"
MD5_NOCHECK="0" MD5_NOCHECK="0"
@ -48,6 +51,12 @@ NBD_DEVS="0"
# parse command line arguments # parse command line arguments
for arg in $(cat /proc/cmdline); do for arg in $(cat /proc/cmdline); do
case $arg in case $arg in
BOOT_IMAGE=*)
IMAGE_KERNEL="${arg#*=}"
;;
SYSTEM_IMAGE=*)
IMAGE_SYSTEM="${arg#*=}"
;;
boot=*) boot=*)
boot="${arg#*=}" boot="${arg#*=}"
;; ;;
@ -283,7 +292,6 @@ NBD_DEVS="0"
$IONICE /bin/busybox mv $UPDATE_DIR/$2 $3 $IONICE /bin/busybox mv $UPDATE_DIR/$2 $3
$IONICE /bin/busybox mount -o remount,ro /flash $IONICE /bin/busybox mount -o remount,ro /flash
$IONICE /bin/busybox sync $IONICE /bin/busybox sync
[ "$2" = "$IMAGE_KERNEL" ] && REBOOT="1"
fi fi
} }
@ -375,43 +383,44 @@ NBD_DEVS="0"
check_update() { check_update() {
progress "Checking for updates" progress "Checking for updates"
if [ -f "/flash/MACH_KERNEL" ]; then # if [ -f "/flash/MACH_KERNEL" ]; then
IMAGE_KERNEL="MACH_KERNEL" # IMAGE_KERNEL="MACH_KERNEL"
fi # fi
if [ -f "$UPDATE_DIR/$IMAGE_KERNEL" -a -f "$UPDATE_DIR/$IMAGE_SYSTEM" ] ; then if [ -f "$UPDATE_DIR/$UPDATE_KERNEL" -a -f "$UPDATE_DIR/$UPDATE_SYSTEM" ] ; then
if [ -f "$UPDATE_DIR/.nocheck" ] ; then if [ -f "$UPDATE_DIR/.nocheck" ] ; then
MD5_NOCHECK="1" MD5_NOCHECK="1"
fi fi
# check md5 sums if .nocheck doesn't exist # check md5 sums if .nocheck doesn't exist
if [ "$MD5_NOCHECK" -eq "0" -a -f "$UPDATE_DIR/${IMAGE_KERNEL}.md5" -a -f "$UPDATE_DIR/${IMAGE_SYSTEM}.md5" ] ; then if [ "$MD5_NOCHECK" -eq "0" -a -f "$UPDATE_DIR/${UPDATE_KERNEL}.md5" -a -f "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" ] ; then
/bin/busybox sed -i 's#target#/storage/.update#g' "$UPDATE_DIR/${IMAGE_KERNEL}.md5" /bin/busybox sed -i 's#target#/storage/.update#g' "$UPDATE_DIR/${UPDATE_KERNEL}.md5"
/bin/busybox sed -i 's#target#/storage/.update#g' "$UPDATE_DIR/${IMAGE_SYSTEM}.md5" /bin/busybox sed -i 's#target#/storage/.update#g' "$UPDATE_DIR/${UPDATE_SYSTEM}.md5"
echo "Checking ${IMAGE_KERNEL}.md5..." echo "Checking ${UPDATE_KERNEL}.md5..."
/bin/busybox md5sum -c "$UPDATE_DIR/${IMAGE_KERNEL}.md5" || MD5_FAILED="1" /bin/busybox md5sum -c "$UPDATE_DIR/${UPDATE_KERNEL}.md5" || MD5_FAILED="1"
echo "Checking ${IMAGE_SYSTEM}.md5..." echo "Checking ${UPDATE_SYSTEM}.md5..."
/bin/busybox md5sum -c "$UPDATE_DIR/${IMAGE_SYSTEM}.md5" || MD5_FAILED="1" /bin/busybox md5sum -c "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" || MD5_FAILED="1"
else else
echo "missing ${IMAGE_KERNEL}.md5 or ${IMAGE_SYSTEM}.md5..." echo "missing ${UPDATE_KERNEL}.md5 or ${UPDATE_SYSTEM}.md5..."
MD5_FAILED="1" MD5_FAILED="1"
fi fi
# update if md5 check is ok or .nocheck exists # update if md5 check is ok or .nocheck exists
if [ "$MD5_FAILED" -eq "0" -o "$MD5_NOCHECK" -eq "1" ] ; then if [ "$MD5_FAILED" -eq "0" -o "$MD5_NOCHECK" -eq "1" ] ; then
update "Kernel" "$IMAGE_KERNEL" "/flash/$IMAGE_KERNEL" update "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL"
update "System" "$IMAGE_SYSTEM" "/flash/$IMAGE_SYSTEM" update "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM"
REBOOT="1"
else else
/bin/busybox rm "$UPDATE_DIR/$IMAGE_KERNEL" /bin/busybox rm "$UPDATE_DIR/$UPDATE_KERNEL"
/bin/busybox rm "$UPDATE_DIR/$IMAGE_SYSTEM" /bin/busybox rm "$UPDATE_DIR/$UPDATE_SYSTEM"
echo "md5 check failed. normal startup in 30s..." echo "md5 check failed. normal startup in 30s..."
/bin/busybox sync /bin/busybox sync
/bin/busybox usleep 30000000 /bin/busybox usleep 30000000
fi fi
/bin/busybox rm "$UPDATE_DIR/${IMAGE_KERNEL}.md5" &>/dev/null /bin/busybox rm "$UPDATE_DIR/${UPDATE_KERNEL}.md5" &>/dev/null
/bin/busybox rm "$UPDATE_DIR/${IMAGE_SYSTEM}.md5" &>/dev/null /bin/busybox rm "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" &>/dev/null
fi fi
if test "$REBOOT" -eq "1"; then if test "$REBOOT" -eq "1"; then